Use Django messages module for showing messages

This commit is contained in:
Sunil Mohan Adapa 2014-06-22 11:49:39 +02:00
parent fc37293ac6
commit b76a74e684
21 changed files with 96 additions and 131 deletions

View File

@ -20,6 +20,7 @@ Plinth module for configuring timezone, hostname etc.
""" """
from django import forms from django import forms
from django.contrib import messages
from django.core import validators from django.core import validators
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from gettext import gettext as _ from gettext import gettext as _
@ -100,14 +101,13 @@ def index(request):
status = get_status() status = get_status()
form = None form = None
messages = []
is_expert = cfg.users.expert(request=request) is_expert = cfg.users.expert(request=request)
if request.method == 'POST' and is_expert: if request.method == 'POST' and is_expert:
form = ConfigurationForm(request.POST, prefix='configuration') form = ConfigurationForm(request.POST, prefix='configuration')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_changes(status, form.cleaned_data, messages) _apply_changes(request, status, form.cleaned_data)
status = get_status() status = get_status()
form = ConfigurationForm(initial=status, form = ConfigurationForm(initial=status,
prefix='configuration') prefix='configuration')
@ -117,7 +117,6 @@ def index(request):
return TemplateResponse(request, 'config.html', return TemplateResponse(request, 'config.html',
{'title': _('General Configuration'), {'title': _('General Configuration'),
'form': form, 'form': form,
'messages_': messages,
'is_expert': is_expert}) 'is_expert': is_expert})
@ -127,27 +126,27 @@ def get_status():
'time_zone': util.slurp('/etc/timezone').rstrip()} 'time_zone': util.slurp('/etc/timezone').rstrip()}
def _apply_changes(old_status, new_status, messages): def _apply_changes(request, old_status, new_status):
"""Apply the form changes""" """Apply the form changes"""
if old_status['hostname'] != new_status['hostname']: if old_status['hostname'] != new_status['hostname']:
if not set_hostname(new_status['hostname']): if not set_hostname(new_status['hostname']):
messages.append(('error', _('Setting hostname failed'))) messages.error(request, _('Setting hostname failed'))
else: else:
messages.append(('success', _('Hostname set'))) messages.success(request, _('Hostname set'))
else: else:
messages.append(('info', _('Hostname is unchanged'))) messages.info(request, _('Hostname is unchanged'))
if old_status['time_zone'] != new_status['time_zone']: if old_status['time_zone'] != new_status['time_zone']:
output, error = actions.superuser_run('timezone-change', output, error = actions.superuser_run('timezone-change',
[new_status['time_zone']]) [new_status['time_zone']])
del output # Unused del output # Unused
if error: if error:
messages.append(('error', messages.error(request,
_('Error setting time zone - %s') % error)) _('Error setting time zone - %s') % error)
else: else:
messages.append(('success', _('Time zone set'))) messages.success(request, _('Time zone set'))
else: else:
messages.append(('info', _('Time zone is unchanged'))) messages.info(request, _('Time zone is unchanged'))
def set_hostname(hostname): def set_hostname(hostname):

View File

@ -24,8 +24,6 @@
{% if is_expert %} {% if is_expert %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -1,4 +1,5 @@
from django import forms from django import forms
from django.contrib import messages
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from gettext import gettext as _ from gettext import gettext as _
@ -24,13 +25,12 @@ def index(request):
status = get_status(request) status = get_status(request)
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = ExpertsForm(request.POST, prefix='experts') form = ExpertsForm(request.POST, prefix='experts')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_changes(request, form.cleaned_data, messages) _apply_changes(request, form.cleaned_data)
status = get_status(request) status = get_status(request)
form = ExpertsForm(initial=status, prefix='experts') form = ExpertsForm(initial=status, prefix='experts')
else: else:
@ -38,8 +38,7 @@ def index(request):
return TemplateResponse(request, 'expert_mode.html', return TemplateResponse(request, 'expert_mode.html',
{'title': _('Expert Mode'), {'title': _('Expert Mode'),
'form': form, 'form': form})
'messages_': messages})
def get_status(request): def get_status(request):
@ -47,20 +46,20 @@ def get_status(request):
return {'expert_mode': cfg.users.expert(request=request)} return {'expert_mode': cfg.users.expert(request=request)}
def _apply_changes(request, new_status, messages): def _apply_changes(request, new_status):
"""Apply expert mode configuration""" """Apply expert mode configuration"""
message = ('info', _('Settings unchanged')) message = (messages.info, _('Settings unchanged'))
user = cfg.users.current(request=request) user = cfg.users.current(request=request)
if new_status['expert_mode']: if new_status['expert_mode']:
if not 'expert' in user['groups']: if not 'expert' in user['groups']:
user['groups'].append('expert') user['groups'].append('expert')
message = ('success', _('Expert mode enabled')) message = (messages.success, _('Expert mode enabled'))
else: else:
if 'expert' in user['groups']: if 'expert' in user['groups']:
user['groups'].remove('expert') user['groups'].remove('expert')
message = ('success', _('Expert mode disabled')) message = (messages.success, _('Expert mode disabled'))
cfg.users.set(user['username'], user) cfg.users.set(user['username'], user)
messages.append(message) message[0](request, message[1])

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<p>The {{ cfg.box_name }} can be administered in two modes, 'basic' <p>The {{ cfg.box_name }} can be administered in two modes, 'basic'
and 'expert'. Basic mode hides a lot of features and configuration and 'expert'. Basic mode hides a lot of features and configuration
options that most users will never need to think about. Expert mode options that most users will never need to think about. Expert mode

View File

@ -19,6 +19,7 @@ The Plinth first-connection process has several stages:
""" """
from django import forms from django import forms
from django.contrib import messages
from django.core import validators from django.core import validators
from django.http.response import HttpResponseRedirect from django.http.response import HttpResponseRedirect
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
@ -101,13 +102,12 @@ def state0(request):
status = get_state0() status = get_state0()
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = State0Form(request.POST, prefix='firstboot') form = State0Form(request.POST, prefix='firstboot')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
success = _apply_state0(status, form.cleaned_data, messages) success = _apply_state0(request, status, form.cleaned_data)
if success: if success:
# Everything is good, permanently mark and move to page 2 # Everything is good, permanently mark and move to page 2
@ -119,8 +119,7 @@ def state0(request):
return TemplateResponse(request, 'firstboot_state0.html', return TemplateResponse(request, 'firstboot_state0.html',
{'title': _('First Boot!'), {'title': _('First Boot!'),
'form': form, 'form': form})
'messages_': messages})
def get_state0(): def get_state0():
@ -131,7 +130,7 @@ def get_state0():
'box_key': database.get('box_key', None)} 'box_key': database.get('box_key', None)}
def _apply_state0(old_state, new_state, messages): def _apply_state0(request, old_state, new_state):
"""Apply changes in state 0 form""" """Apply changes in state 0 form"""
success = True success = True
with sqlite_db(cfg.store_file, table="thisbox", autocommit=True) as \ with sqlite_db(cfg.store_file, table="thisbox", autocommit=True) as \
@ -149,11 +148,11 @@ def _apply_state0(old_state, new_state, messages):
error = add_user(new_state['username'], new_state['password'], error = add_user(new_state['username'], new_state['password'],
'First user, please change', '', True) 'First user, please change', '', True)
if error: if error:
messages.append( messages.error(
('error', _('User account creation failed: %s') % error)) request, _('User account creation failed: %s') % error)
success = False success = False
else: else:
messages.append(('success', _('User account created'))) messages.success(request, _('User account created'))
return success return success

View File

@ -24,8 +24,6 @@
<h2>Welcome to Your FreedomBox!</h2> <h2>Welcome to Your FreedomBox!</h2>
{% include 'messages.html' %}
<p>Welcome. It looks like this FreedomBox isn't set up yet. We'll <p>Welcome. It looks like this FreedomBox isn't set up yet. We'll
need to ask you a just few questions to get started.</p> need to ask you a just few questions to get started.</p>

View File

@ -1,4 +1,5 @@
from django import forms from django import forms
from django.contrib import messages
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from gettext import gettext as _ from gettext import gettext as _
@ -34,13 +35,12 @@ def index(request):
status = get_status() status = get_status()
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = OwnCloudForm(request.POST, prefix='owncloud') form = OwnCloudForm(request.POST, prefix='owncloud')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_changes(status, form.cleaned_data, messages) _apply_changes(request, status, form.cleaned_data)
status = get_status() status = get_status()
form = OwnCloudForm(initial=status, prefix='owncloud') form = OwnCloudForm(initial=status, prefix='owncloud')
else: else:
@ -48,8 +48,7 @@ def index(request):
return TemplateResponse(request, 'owncloud.html', return TemplateResponse(request, 'owncloud.html',
{'title': _('ownCloud'), {'title': _('ownCloud'),
'form': form, 'form': form})
'messages_': messages})
def get_status(): def get_status():
@ -61,17 +60,17 @@ def get_status():
return {'enabled': 'enable' in output.split()} return {'enabled': 'enable' in output.split()}
def _apply_changes(old_status, new_status, messages): def _apply_changes(request, old_status, new_status):
"""Apply the changes""" """Apply the changes"""
if old_status['enabled'] == new_status['enabled']: if old_status['enabled'] == new_status['enabled']:
messages.append(('info', _('Setting unchanged'))) messages.info(request, _('Setting unchanged'))
return return
if new_status['enabled']: if new_status['enabled']:
messages.append(('success', _('ownCloud enabled'))) messages.success(request, _('ownCloud enabled'))
option = 'enable' option = 'enable'
else: else:
messages.append(('success', _('ownCloud disabled'))) messages.success(request, _('ownCloud disabled'))
option = 'noenable' option = 'noenable'
actions.superuser_run('owncloud-setup', [option], async=True) actions.superuser_run('owncloud-setup', [option], async=True)

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -1,4 +1,5 @@
from django import forms from django import forms
from django.contrib import messages
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from gettext import gettext as _ from gettext import gettext as _
@ -51,13 +52,12 @@ def index(request):
status = get_status() status = get_status()
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = PackagesForm(request.POST, prefix='packages') form = PackagesForm(request.POST, prefix='packages')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_changes(status, form.cleaned_data, messages) _apply_changes(request, status, form.cleaned_data)
status = get_status() status = get_status()
form = PackagesForm(initial=status, prefix='packages') form = PackagesForm(initial=status, prefix='packages')
else: else:
@ -65,8 +65,7 @@ def index(request):
return TemplateResponse(request, 'packages.html', return TemplateResponse(request, 'packages.html',
{'title': _('Add/Remove Plugins'), {'title': _('Add/Remove Plugins'),
'form': form, 'form': form})
'messages_': messages})
def get_status(): def get_status():
@ -78,7 +77,7 @@ def get_status():
for module in modules_available} for module in modules_available}
def _apply_changes(old_status, new_status, messages): def _apply_changes(request, old_status, new_status):
"""Apply form changes""" """Apply form changes"""
for field, enabled in new_status.items(): for field, enabled in new_status.items():
if not field.endswith('_enabled'): if not field.endswith('_enabled'):
@ -96,13 +95,13 @@ def _apply_changes(old_status, new_status, messages):
# TODO: need to get plinth to load the module we just # TODO: need to get plinth to load the module we just
# enabled # enabled
if error: if error:
messages.append( messages.error(
('error', _('Error enabling module - {module}').format( request, _('Error enabling module - {module}').format(
module=module))) module=module))
else: else:
messages.append( messages.success(
('success', _('Module enabled - {module}').format( request, _('Module enabled - {module}').format(
module=module))) module=module))
else: else:
output, error = actions.superuser_run( output, error = actions.superuser_run(
'module-manager', ['disable', cfg.python_root, module]) 'module-manager', ['disable', cfg.python_root, module])
@ -111,11 +110,10 @@ def _apply_changes(old_status, new_status, messages):
# TODO: need a smoother way for plinth to unload the # TODO: need a smoother way for plinth to unload the
# module # module
if error: if error:
messages.append( messages.error(
('error', request, _('Error disabling module - {module}').format(
_('Error disabling module - {module}').format( module=module))
module=module)))
else: else:
messages.append( messages.success(
('success', _('Module disabled - {module}').format( request, _('Module disabled - {module}').format(
module=module))) module=module))

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<p>aptitude purge modules</p> <p>aptitude purge modules</p>
<p>aptitude install modules</p> <p>aptitude install modules</p>

View File

@ -20,6 +20,7 @@ Plinth module for configuring PageKite service
""" """
from django import forms from django import forms
from django.contrib import messages
from django.core import validators from django.core import validators
from django.template import RequestContext from django.template import RequestContext
from django.template.loader import render_to_string from django.template.loader import render_to_string
@ -104,13 +105,12 @@ def configure(request):
status = get_status() status = get_status()
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = ConfigureForm(request.POST, prefix='pagekite') form = ConfigureForm(request.POST, prefix='pagekite')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_changes(status, form.cleaned_data, messages) _apply_changes(request, status, form.cleaned_data)
status = get_status() status = get_status()
form = ConfigureForm(initial=status, prefix='pagekite') form = ConfigureForm(initial=status, prefix='pagekite')
else: else:
@ -118,8 +118,7 @@ def configure(request):
return TemplateResponse(request, 'pagekite_configure.html', return TemplateResponse(request, 'pagekite_configure.html',
{'title': _('Configure PageKite'), {'title': _('Configure PageKite'),
'form': form, 'form': form})
'messages_': messages})
def get_status(): def get_status():
@ -154,7 +153,7 @@ def get_status():
return status return status
def _apply_changes(old_status, new_status, messages): def _apply_changes(request, old_status, new_status):
"""Apply the changes to PageKite configuration""" """Apply the changes to PageKite configuration"""
cfg.log.info('New status is - %s' % new_status) cfg.log.info('New status is - %s' % new_status)
@ -164,29 +163,28 @@ def _apply_changes(old_status, new_status, messages):
if old_status['enabled'] != new_status['enabled']: if old_status['enabled'] != new_status['enabled']:
if new_status['enabled']: if new_status['enabled']:
_run(['set-status', 'enable']) _run(['set-status', 'enable'])
messages.append(('success', _('PageKite enabled'))) messages.success(request, _('PageKite enabled'))
else: else:
_run(['set-status', 'disable']) _run(['set-status', 'disable'])
messages.append(('success', _('PageKite disabled'))) messages.success(request, _('PageKite disabled'))
if old_status['kite_name'] != new_status['kite_name'] or \ if old_status['kite_name'] != new_status['kite_name'] or \
old_status['kite_secret'] != new_status['kite_secret']: old_status['kite_secret'] != new_status['kite_secret']:
_run(['set-kite', '--kite-name', new_status['kite_name'], _run(['set-kite', '--kite-name', new_status['kite_name'],
'--kite-secret', new_status['kite_secret']]) '--kite-secret', new_status['kite_secret']])
messages.append(('success', _('Kite details set'))) messages.success(request, _('Kite details set'))
for service in ['http', 'ssh']: for service in ['http', 'ssh']:
if old_status[service + '_enabled'] != \ if old_status[service + '_enabled'] != \
new_status[service + '_enabled']: new_status[service + '_enabled']:
if new_status[service + '_enabled']: if new_status[service + '_enabled']:
_run(['set-service-status', service, 'enable']) _run(['set-service-status', service, 'enable'])
messages.append(('success', _('Service enabled: {service}') messages.success(request, _('Service enabled: {service}')
.format(service=service))) .format(service=service))
else: else:
_run(['set-service-status', service, 'disable']) _run(['set-service-status', service, 'disable'])
messages.append(('success', messages.success(request, _('Service disabled: {service}')
_('Service disabled: {service}') .format(service=service))
.format(service=service)))
if old_status != new_status: if old_status != new_status:
_run(['start']) _run(['start'])

View File

@ -31,8 +31,6 @@
{% else %} {% else %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -1,4 +1,5 @@
from django import forms from django import forms
from django.contrib import messages
from django.core import validators from django.core import validators
from django.template import RequestContext from django.template import RequestContext
from django.template.loader import render_to_string from django.template.loader import render_to_string
@ -54,36 +55,32 @@ and alphabet'),
def add(request): def add(request):
"""Serve the form""" """Serve the form"""
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = UserAddForm(request.POST, prefix='user') form = UserAddForm(request.POST, prefix='user')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_add_user(form.cleaned_data, messages) _add_user(request, form.cleaned_data)
form = UserAddForm(prefix='user') form = UserAddForm(prefix='user')
else: else:
form = UserAddForm(prefix='user') form = UserAddForm(prefix='user')
return TemplateResponse(request, 'users_add.html', return TemplateResponse(request, 'users_add.html',
{'title': _('Add User'), {'title': _('Add User'),
'form': form, 'form': form})
'messages_': messages})
def _add_user(data, messages): def _add_user(request, data):
"""Add a user""" """Add a user"""
if cfg.users.exists(data['username']): if cfg.users.exists(data['username']):
messages.append( messages.error(request, _('User "{username}" already exists').format(
('error', _('User "{username}" already exists').format( username=data['username']))
username=data['username'])))
return return
add_user(data['username'], data['password'], data['full_name'], add_user(data['username'], data['password'], data['full_name'],
data['email'], False) data['email'], False)
messages.append( messages.success(request, _('User "{username}" added').format(
('success', _('User "{username}" added').format( username=data['username']))
username=data['username'])))
class UserEditForm(forms.Form): # pylint: disable-msg=W0232 class UserEditForm(forms.Form): # pylint: disable-msg=W0232
@ -106,24 +103,22 @@ class UserEditForm(forms.Form): # pylint: disable-msg=W0232
def edit(request): def edit(request):
"""Serve the edit form""" """Serve the edit form"""
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = UserEditForm(request.POST, prefix='user') form = UserEditForm(request.POST, prefix='user')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_edit_changes(request, form.cleaned_data, messages) _apply_edit_changes(request, form.cleaned_data)
form = UserEditForm(prefix='user') form = UserEditForm(prefix='user')
else: else:
form = UserEditForm(prefix='user') form = UserEditForm(prefix='user')
return TemplateResponse(request, 'users_edit.html', return TemplateResponse(request, 'users_edit.html',
{'title': _('Edit or Delete User'), {'title': _('Edit or Delete User'),
'form': form, 'form': form})
'messages_': messages})
def _apply_edit_changes(request, data, messages): def _apply_edit_changes(request, data):
"""Apply form changes""" """Apply form changes"""
for field, value in data.items(): for field, value in data.items():
if not value: if not value:
@ -139,19 +134,17 @@ def _apply_edit_changes(request, data, messages):
(requesting_user, username)) (requesting_user, username))
if username == cfg.users.current(request=request, name=True): if username == cfg.users.current(request=request, name=True):
messages.append( messages.error(
('error', request, _('Can not delete current account - "%s"') % username)
_('Can not delete current account - "%s"') % username))
continue continue
if not cfg.users.exists(username): if not cfg.users.exists(username):
messages.append(('error', messages.error(request, _('User "%s" does not exist') % username)
_('User "%s" does not exist') % username))
continue continue
try: try:
cfg.users.remove(username) cfg.users.remove(username)
messages.append(('success', _('User "%s" deleted') % username)) messages.success(request, _('User "%s" deleted') % username)
except IOError as exception: except IOError as exception:
messages.append(('error', _('Error deleting "%s" - %s') % messages.error(request, _('Error deleting "%s" - %s') %
(username, exception))) (username, exception))

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -22,8 +22,6 @@
{% block main_block %} {% block main_block %}
{% include 'messages.html' %}
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}

View File

@ -1,4 +1,5 @@
from django import forms from django import forms
from django.contrib import messages
from django.template import RequestContext from django.template import RequestContext
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
@ -62,13 +63,12 @@ def configure(request):
status = get_status() status = get_status()
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = ConfigureForm(request.POST, prefix='xmpp') form = ConfigureForm(request.POST, prefix='xmpp')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_apply_changes(status, form.cleaned_data, messages) _apply_changes(request, status, form.cleaned_data)
status = get_status() status = get_status()
form = ConfigureForm(initial=status, prefix='xmpp') form = ConfigureForm(initial=status, prefix='xmpp')
else: else:
@ -80,7 +80,6 @@ def configure(request):
return TemplateResponse(request, 'xmpp_configure.html', return TemplateResponse(request, 'xmpp_configure.html',
{'title': _('Configure XMPP Server'), {'title': _('Configure XMPP Server'),
'form': form, 'form': form,
'messages_': messages,
'sidebar_right': sidebar_right}) 'sidebar_right': sidebar_right})
@ -93,19 +92,19 @@ def get_status():
return {'inband_enabled': 'inband_enable' in output.split()} return {'inband_enabled': 'inband_enable' in output.split()}
def _apply_changes(old_status, new_status, messages): def _apply_changes(request, old_status, new_status):
"""Apply the form changes""" """Apply the form changes"""
cfg.log.info('Status - %s, %s' % (old_status, new_status)) cfg.log.info('Status - %s, %s' % (old_status, new_status))
if old_status['inband_enabled'] == new_status['inband_enabled']: if old_status['inband_enabled'] == new_status['inband_enabled']:
messages.append(('info', _('Setting unchanged'))) messages.info(request, _('Setting unchanged'))
return return
if new_status['inband_enabled']: if new_status['inband_enabled']:
messages.append(('success', _('Inband registration enabled'))) messages.success(request, _('Inband registration enabled'))
option = 'inband_enable' option = 'inband_enable'
else: else:
messages.append(('success', _('Inband registration disabled'))) messages.success(request, _('Inband registration disabled'))
option = 'noinband_enable' option = 'noinband_enable'
cfg.log.info('Option - %s' % option) cfg.log.info('Option - %s' % option)
@ -128,13 +127,12 @@ class RegisterForm(forms.Form): # pylint: disable-msg=W0232
def register(request): def register(request):
"""Serve the registration form""" """Serve the registration form"""
form = None form = None
messages = []
if request.method == 'POST': if request.method == 'POST':
form = RegisterForm(request.POST, prefix='xmpp') form = RegisterForm(request.POST, prefix='xmpp')
# pylint: disable-msg=E1101 # pylint: disable-msg=E1101
if form.is_valid(): if form.is_valid():
_register_user(form.cleaned_data, messages) _register_user(request, form.cleaned_data)
form = RegisterForm(prefix='xmpp') form = RegisterForm(prefix='xmpp')
else: else:
form = RegisterForm(prefix='xmpp') form = RegisterForm(prefix='xmpp')
@ -145,11 +143,10 @@ def register(request):
return TemplateResponse(request, 'xmpp_register.html', return TemplateResponse(request, 'xmpp_register.html',
{'title': _('Register XMPP Account'), {'title': _('Register XMPP Account'),
'form': form, 'form': form,
'messages_': messages,
'sidebar_right': sidebar_right}) 'sidebar_right': sidebar_right})
def _register_user(data, messages): def _register_user(request, data):
"""Register a new XMPP user""" """Register a new XMPP user"""
output, error = actions.superuser_run( output, error = actions.superuser_run(
'xmpp-register', [data['username'], data['password']]) 'xmpp-register', [data['username'], data['password']])
@ -157,10 +154,9 @@ def _register_user(data, messages):
raise Exception('Error registering user - %s' % error) raise Exception('Error registering user - %s' % error)
if 'successfully registered' in output: if 'successfully registered' in output:
messages.append(('success', messages.success(request, _('Registered account for %s') %
_('Registered account for %s' % data['username'])
data['username'])))
else: else:
messages.append(('error', messages.error(request,
_('Failed to register account for %s: %s') % _('Failed to register account for %s: %s') %
(data['username'], output))) (data['username'], output))

View File

@ -135,7 +135,8 @@ def configure_django():
DEBUG=cfg.debug, DEBUG=cfg.debug,
ALLOWED_HOSTS=['127.0.0.1', 'localhost'], ALLOWED_HOSTS=['127.0.0.1', 'localhost'],
TEMPLATE_DIRS=template_directories, TEMPLATE_DIRS=template_directories,
INSTALLED_APPS=['bootstrapform'], INSTALLED_APPS=['bootstrapform',
'django.contrib.messages'],
ROOT_URLCONF='urls', ROOT_URLCONF='urls',
SESSION_ENGINE='django.contrib.sessions.backends.file', SESSION_ENGINE='django.contrib.sessions.backends.file',
SESSION_FILE_PATH=sessions_directory, SESSION_FILE_PATH=sessions_directory,

View File

@ -99,6 +99,9 @@
{{ title }} {{ title }}
{% endblock %} {% endblock %}
</h2> </h2>
{% include 'messages.html' %}
{% block main_block %} {% block main_block %}
{{ main|safe }} {{ main|safe }}
{% endblock %} {% endblock %}

View File

@ -17,8 +17,8 @@
# #
{% endcomment %} {% endcomment %}
{% for severity, message in messages_ %} {% for message in messages %}
<div class='alert alert-{{ severity }} alert-dismissable'> <div class='alert alert-{{ message.tags }} alert-dismissable'>
<a class="close" data-dismiss="alert">&times;</a> <a class="close" data-dismiss="alert">&times;</a>
{{ message }} {{ message }}
</div> </div>