Browse Source

Replaced strings with flags. #146

Rafał Pitoń 12 years ago
parent
commit
e8f6c7c804

+ 158 - 157
misago/apps/admin/bans/views.py

@@ -1,157 +1,158 @@
-from django.core.urlresolvers import reverse as django_reverse
-from django.db.models import Q
-from django.template import RequestContext
-from django.utils.translation import ugettext as _
-from misago.admin import site
-from misago.apps.admin.widgets import *
-from misago.messages import Message
-from misago.models import Ban
-from misago.monitor import monitor, UpdatingMonitor
-from misago.apps.admin.bans.forms import BanForm, SearchBansForm
-
-def reverse(route, target=None):
-    if target:
-        return django_reverse(route, kwargs={'target': target.pk})
-    return django_reverse(route)
-
-
-"""
-Views
-"""
-class List(ListWidget):
-    """
-    List Bans
-    """
-    admin = site.get_action('bans')
-    id = 'list'
-    columns = (
-             ('ban', _("Ban"), 50),
-             ('expires', _("Expires")),
-             )
-    default_sorting = 'expires'
-    sortables = {
-               'ban': 1,
-               'expires': 0,
-              }
-    pagination = 20
-    search_form = SearchBansForm
-    empty_message = _('No bans are currently set.')
-    empty_search_message = _('No bans have been found.')
-    nothing_checked_message = _('You have to check at least one ban.')
-    actions = (
-             ('delete', _("Lift selected bans"), _("Are you sure you want to lift selected bans?")),
-             )
-
-    def set_filters(self, model, filters):
-        if 'ban' in filters:
-            model = model.filter(ban__contains=filters['ban'])
-        if 'reason' in filters:
-            model = model.filter(Q(reason_user__contains=filters['reason']) | Q(reason_admin__contains=filters['reason']))
-        if 'test' in filters:
-            model = model.filter(test__in=filters['test'])
-        return model
-
-    def get_item_actions(self, item):
-        return (
-                self.action('pencil', _("Edit Ban"), reverse('admin_bans_edit', item)),
-                self.action('remove', _("Lift Ban"), reverse('admin_bans_delete', item), post=True, prompt=_("Are you sure you want to lift this ban?")),
-                )
-
-    def action_delete(self, items, checked):
-        Ban.objects.filter(id__in=checked).delete()
-        with UpdatingMonitor() as cm:
-            monitor.increase('bans_version')
-        return Message(_('Selected bans have been lifted successfully.'), 'success'), reverse('admin_bans')
-
-
-class New(FormWidget):
-    """
-    Create Ban
-    """
-    admin = site.get_action('bans')
-    id = 'new'
-    fallback = 'admin_bans'
-    form = BanForm
-    submit_button = _("Set Ban")
-
-    def get_new_link(self, model):
-        return reverse('admin_bans_new')
-
-    def get_edit_link(self, model):
-        return reverse('admin_bans_edit', model)
-
-    def submit_form(self, form, target):
-        new_ban = Ban(
-                      test=form.cleaned_data['test'],
-                      ban=form.cleaned_data['ban'],
-                      reason_user=form.cleaned_data['reason_user'],
-                      reason_admin=form.cleaned_data['reason_admin'],
-                      expires=form.cleaned_data['expires']
-                     )
-        new_ban.save(force_insert=True)
-        with UpdatingMonitor() as cm:
-            monitor.increase('bans_version')
-        return new_ban, Message(_('New Ban has been set.'), 'success')
-
-
-class Edit(FormWidget):
-    """
-    Edit Ban
-    """
-    admin = site.get_action('bans')
-    id = 'edit'
-    name = _("Edit Ban")
-    fallback = 'admin_bans'
-    form = BanForm
-    target_name = 'ban'
-    notfound_message = _('Requested Ban could not be found.')
-    submit_fallback = True
-
-    def get_link(self, model):
-        return reverse('admin_bans_edit', model)
-
-    def get_edit_link(self, model):
-        return self.get_link(model)
-
-    def get_initial_data(self, model):
-        return {
-                'test': model.test,
-                'ban': model.ban,
-                'reason_user': model.reason_user,
-                'reason_admin': model.reason_admin,
-                'expires': model.expires,
-                }
-
-    def submit_form(self, form, target):
-        target.test = form.cleaned_data['test']
-        target.ban = form.cleaned_data['ban']
-        target.reason_user = form.cleaned_data['reason_user']
-        target.reason_admin = form.cleaned_data['reason_admin']
-        target.expires = form.cleaned_data['expires']
-        target.save(force_update=True)
-        with UpdatingMonitor() as cm:
-            monitor.increase('bans_version')
-        return target, Message(_('Changes in ban have been saved.'), 'success')
-
-
-class Delete(ButtonWidget):
-    """
-    Delete Ban
-    """
-    admin = site.get_action('bans')
-    id = 'delete'
-    fallback = 'admin_bans'
-    notfound_message = _('Requested Ban could not be found.')
-
-    def action(self, target):
-        target.delete()
-        with UpdatingMonitor() as cm:
-            monitor.increase('bans_version')
-        if target.test == 0:
-            return Message(_('E-mail and username Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, 'success'), False
-        if target.test == 1:
-            return Message(_('Username Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, 'success'), False
-        if target.test == 2:
-            return Message(_('E-mail Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, 'success'), False
-        if target.test == 3:
-            return Message(_('IP Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, 'success'), False
+from django.core.urlresolvers import reverse as django_reverse
+from django.db.models import Q
+from django.template import RequestContext
+from django.utils.translation import ugettext as _
+from misago import messages
+from misago.admin import site
+from misago.apps.admin.widgets import *
+from misago.messages import Message
+from misago.models import Ban
+from misago.monitor import monitor, UpdatingMonitor
+from misago.apps.admin.bans.forms import BanForm, SearchBansForm
+
+def reverse(route, target=None):
+    if target:
+        return django_reverse(route, kwargs={'target': target.pk})
+    return django_reverse(route)
+
+
+"""
+Views
+"""
+class List(ListWidget):
+    """
+    List Bans
+    """
+    admin = site.get_action('bans')
+    id = 'list'
+    columns = (
+             ('ban', _("Ban"), 50),
+             ('expires', _("Expires")),
+             )
+    default_sorting = 'expires'
+    sortables = {
+               'ban': 1,
+               'expires': 0,
+              }
+    pagination = 20
+    search_form = SearchBansForm
+    empty_message = _('No bans are currently set.')
+    empty_search_message = _('No bans have been found.')
+    nothing_checked_message = _('You have to check at least one ban.')
+    actions = (
+             ('delete', _("Lift selected bans"), _("Are you sure you want to lift selected bans?")),
+             )
+
+    def set_filters(self, model, filters):
+        if 'ban' in filters:
+            model = model.filter(ban__contains=filters['ban'])
+        if 'reason' in filters:
+            model = model.filter(Q(reason_user__contains=filters['reason']) | Q(reason_admin__contains=filters['reason']))
+        if 'test' in filters:
+            model = model.filter(test__in=filters['test'])
+        return model
+
+    def get_item_actions(self, item):
+        return (
+                self.action('pencil', _("Edit Ban"), reverse('admin_bans_edit', item)),
+                self.action('remove', _("Lift Ban"), reverse('admin_bans_delete', item), post=True, prompt=_("Are you sure you want to lift this ban?")),
+                )
+
+    def action_delete(self, items, checked):
+        Ban.objects.filter(id__in=checked).delete()
+        with UpdatingMonitor() as cm:
+            monitor.increase('bans_version')
+        return Message(_('Selected bans have been lifted successfully.'), messages.SUCCESS), reverse('admin_bans')
+
+
+class New(FormWidget):
+    """
+    Create Ban
+    """
+    admin = site.get_action('bans')
+    id = 'new'
+    fallback = 'admin_bans'
+    form = BanForm
+    submit_button = _("Set Ban")
+
+    def get_new_link(self, model):
+        return reverse('admin_bans_new')
+
+    def get_edit_link(self, model):
+        return reverse('admin_bans_edit', model)
+
+    def submit_form(self, form, target):
+        new_ban = Ban(
+                      test=form.cleaned_data['test'],
+                      ban=form.cleaned_data['ban'],
+                      reason_user=form.cleaned_data['reason_user'],
+                      reason_admin=form.cleaned_data['reason_admin'],
+                      expires=form.cleaned_data['expires']
+                     )
+        new_ban.save(force_insert=True)
+        with UpdatingMonitor() as cm:
+            monitor.increase('bans_version')
+        return new_ban, Message(_('New Ban has been set.'), messages.SUCCESS)
+
+
+class Edit(FormWidget):
+    """
+    Edit Ban
+    """
+    admin = site.get_action('bans')
+    id = 'edit'
+    name = _("Edit Ban")
+    fallback = 'admin_bans'
+    form = BanForm
+    target_name = 'ban'
+    notfound_message = _('Requested Ban could not be found.')
+    submit_fallback = True
+
+    def get_link(self, model):
+        return reverse('admin_bans_edit', model)
+
+    def get_edit_link(self, model):
+        return self.get_link(model)
+
+    def get_initial_data(self, model):
+        return {
+                'test': model.test,
+                'ban': model.ban,
+                'reason_user': model.reason_user,
+                'reason_admin': model.reason_admin,
+                'expires': model.expires,
+                }
+
+    def submit_form(self, form, target):
+        target.test = form.cleaned_data['test']
+        target.ban = form.cleaned_data['ban']
+        target.reason_user = form.cleaned_data['reason_user']
+        target.reason_admin = form.cleaned_data['reason_admin']
+        target.expires = form.cleaned_data['expires']
+        target.save(force_update=True)
+        with UpdatingMonitor() as cm:
+            monitor.increase('bans_version')
+        return target, Message(_('Changes in ban have been saved.'), messages.SUCCESS)
+
+
+class Delete(ButtonWidget):
+    """
+    Delete Ban
+    """
+    admin = site.get_action('bans')
+    id = 'delete'
+    fallback = 'admin_bans'
+    notfound_message = _('Requested Ban could not be found.')
+
+    def action(self, target):
+        target.delete()
+        with UpdatingMonitor() as cm:
+            monitor.increase('bans_version')
+        if target.test == 0:
+            return Message(_('E-mail and username Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, messages.SUCCESS), False
+        if target.test == 1:
+            return Message(_('Username Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, messages.SUCCESS), False
+        if target.test == 2:
+            return Message(_('E-mail Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, messages.SUCCESS), False
+        if target.test == 3:
+            return Message(_('IP Ban "%(ban)s" has been lifted.') % {'ban': target.ban}, messages.SUCCESS), False

+ 149 - 148
misago/apps/admin/forumroles/views.py

@@ -1,148 +1,149 @@
-import copy
-from django.core.urlresolvers import reverse as django_reverse
-from django.utils.translation import ugettext as _
-from misago.acl.builder import build_forum_form
-from misago.admin import site
-from misago.apps.admin.widgets import *
-from misago.forms import Form, YesNoSwitch
-from misago.models import ForumRole
-from misago.monitor import monitor, UpdatingMonitor
-from misago.utils.strings import slugify
-from misago.apps.admin.forumroles.forms import ForumRoleForm
-
-def reverse(route, target=None):
-    if target:
-        return django_reverse(route, kwargs={'target': target.pk, 'slug': slugify(target.name)})
-    return django_reverse(route)
-
-
-"""
-Views
-"""
-class List(ListWidget):
-    admin = site.get_action('roles_forums')
-    id = 'list'
-    columns = (
-               ('role', _("Role")),
-               )
-    nothing_checked_message = _('You have to check at least one role.')
-    actions = (
-               ('delete', _("Delete selected forum roles"), _("Are you sure you want to delete selected roles?")),
-               )
-
-    def sort_items(self, page_items, sorting_method):
-        return page_items.order_by('name')
-
-    def get_item_actions(self, item):
-        return (
-                self.action('adjust', _("Role Permissions"), reverse('admin_roles_forums_acl', item)),
-                self.action('pencil', _("Edit Role"), reverse('admin_roles_forums_edit', item)),
-                self.action('remove', _("Delete Role"), reverse('admin_roles_forums_delete', item), post=True, prompt=_("Are you sure you want to delete this role?")),
-                )
-
-    def action_delete(self, items, checked):
-        with UpdatingMonitor() as cm:
-            monitor.increase('acl_version')
-        Role.objects.filter(id__in=checked).delete()
-        return Message(_('Selected forum roles have been deleted successfully.'), 'success'), reverse('admin_roles_forums')
-
-
-class New(FormWidget):
-    admin = site.get_action('roles_forums')
-    id = 'new'
-    fallback = 'admin_roles_forums'
-    form = ForumRoleForm
-    submit_button = _("Save Role")
-
-    def get_new_link(self, model):
-        return reverse('admin_roles_forums_new')
-
-    def get_edit_link(self, model):
-        return reverse('admin_roles_forums_edit', model)
-
-    def submit_form(self, form, target):
-        new_role = ForumRole(
-                      name=form.cleaned_data['name'],
-                     )
-        new_role.save(force_insert=True)
-        return new_role, Message(_('New Forum Role has been created.'), 'success')
-
-
-class Edit(FormWidget):
-    admin = site.get_action('roles_forums')
-    id = 'edit'
-    name = _("Edit Forum Role")
-    fallback = 'admin_roles_forums'
-    form = ForumRoleForm
-    target_name = 'name'
-    notfound_message = _('Requested Forum Role could not be found.')
-    submit_fallback = True
-
-    def get_link(self, model):
-        return reverse('admin_roles_forums_edit', model)
-
-    def get_edit_link(self, model):
-        return self.get_link(model)
-
-    def get_initial_data(self, model):
-        return {
-                'name': model.name,
-                }
-
-    def submit_form(self, form, target):
-        target.name = form.cleaned_data['name']
-        target.save(force_update=True)
-        return target, Message(_('Changes in forum role "%(name)s" have been saved.') % {'name': self.original_name}, 'success')
-
-
-class ACL(FormWidget):
-    admin = site.get_action('roles_forums')
-    id = 'acl'
-    name = _("Change Forum Role Permissions")
-    fallback = 'admin_roles_forums'
-    target_name = 'name'
-    notfound_message = _('Requested Forum Role could not be found.')
-    submit_fallback = True
-    template = 'acl_form'
-
-    def get_form(self, target):
-        self.form = build_forum_form(self.request, target)
-        return self.form
-
-    def get_link(self, model):
-        return reverse('admin_roles_forums_acl', model)
-
-    def get_edit_link(self, model):
-        return self.get_link(model)
-
-    def get_initial_data(self, model):
-        raw_acl = model.permissions
-        initial = {}
-        for field in self.form.base_fields:
-            if field in raw_acl:
-                initial[field] = raw_acl[field]
-        return initial
-
-    def submit_form(self, form, target):
-        raw_acl = target.permissions
-        for perm in form.cleaned_data:
-            raw_acl[perm] = form.cleaned_data[perm]
-        target.permissions = raw_acl
-        target.save(force_update=True)
-        with UpdatingMonitor() as cm:
-            monitor.increase('acl_version')
-
-        return target, Message(_('Forum Role "%(name)s" permissions have been changed.') % {'name': self.original_name}, 'success')
-
-
-class Delete(ButtonWidget):
-    admin = site.get_action('roles_forums')
-    id = 'delete'
-    fallback = 'admin_roles_forums'
-    notfound_message = _('Requested Forum Role could not be found.')
-
-    def action(self, target):
-        target.delete()
-        with UpdatingMonitor() as cm:
-            monitor.increase('acl_version')
-        return Message(_('Forum Role "%(name)s" has been deleted.') % {'name': _(target.name)}, 'success'), False
+import copy
+from django.core.urlresolvers import reverse as django_reverse
+from django.utils.translation import ugettext as _
+from misago import messages
+from misago.acl.builder import build_forum_form
+from misago.admin import site
+from misago.apps.admin.widgets import *
+from misago.forms import Form, YesNoSwitch
+from misago.models import ForumRole
+from misago.monitor import monitor, UpdatingMonitor
+from misago.utils.strings import slugify
+from misago.apps.admin.forumroles.forms import ForumRoleForm
+
+def reverse(route, target=None):
+    if target:
+        return django_reverse(route, kwargs={'target': target.pk, 'slug': slugify(target.name)})
+    return django_reverse(route)
+
+
+"""
+Views
+"""
+class List(ListWidget):
+    admin = site.get_action('roles_forums')
+    id = 'list'
+    columns = (
+               ('role', _("Role")),
+               )
+    nothing_checked_message = _('You have to check at least one role.')
+    actions = (
+               ('delete', _("Delete selected forum roles"), _("Are you sure you want to delete selected roles?")),
+               )
+
+    def sort_items(self, page_items, sorting_method):
+        return page_items.order_by('name')
+
+    def get_item_actions(self, item):
+        return (
+                self.action('adjust', _("Role Permissions"), reverse('admin_roles_forums_acl', item)),
+                self.action('pencil', _("Edit Role"), reverse('admin_roles_forums_edit', item)),
+                self.action('remove', _("Delete Role"), reverse('admin_roles_forums_delete', item), post=True, prompt=_("Are you sure you want to delete this role?")),
+                )
+
+    def action_delete(self, items, checked):
+        with UpdatingMonitor() as cm:
+            monitor.increase('acl_version')
+        Role.objects.filter(id__in=checked).delete()
+        return Message(_('Selected forum roles have been deleted successfully.'), messages.SUCCESS), reverse('admin_roles_forums')
+
+
+class New(FormWidget):
+    admin = site.get_action('roles_forums')
+    id = 'new'
+    fallback = 'admin_roles_forums'
+    form = ForumRoleForm
+    submit_button = _("Save Role")
+
+    def get_new_link(self, model):
+        return reverse('admin_roles_forums_new')
+
+    def get_edit_link(self, model):
+        return reverse('admin_roles_forums_edit', model)
+
+    def submit_form(self, form, target):
+        new_role = ForumRole(
+                      name=form.cleaned_data['name'],
+                     )
+        new_role.save(force_insert=True)
+        return new_role, Message(_('New Forum Role has been created.'), messages.SUCCESS)
+
+
+class Edit(FormWidget):
+    admin = site.get_action('roles_forums')
+    id = 'edit'
+    name = _("Edit Forum Role")
+    fallback = 'admin_roles_forums'
+    form = ForumRoleForm
+    target_name = 'name'
+    notfound_message = _('Requested Forum Role could not be found.')
+    submit_fallback = True
+
+    def get_link(self, model):
+        return reverse('admin_roles_forums_edit', model)
+
+    def get_edit_link(self, model):
+        return self.get_link(model)
+
+    def get_initial_data(self, model):
+        return {
+                'name': model.name,
+                }
+
+    def submit_form(self, form, target):
+        target.name = form.cleaned_data['name']
+        target.save(force_update=True)
+        return target, Message(_('Changes in forum role "%(name)s" have been saved.') % {'name': self.original_name}, messages.SUCCESS)
+
+
+class ACL(FormWidget):
+    admin = site.get_action('roles_forums')
+    id = 'acl'
+    name = _("Change Forum Role Permissions")
+    fallback = 'admin_roles_forums'
+    target_name = 'name'
+    notfound_message = _('Requested Forum Role could not be found.')
+    submit_fallback = True
+    template = 'acl_form'
+
+    def get_form(self, target):
+        self.form = build_forum_form(self.request, target)
+        return self.form
+
+    def get_link(self, model):
+        return reverse('admin_roles_forums_acl', model)
+
+    def get_edit_link(self, model):
+        return self.get_link(model)
+
+    def get_initial_data(self, model):
+        raw_acl = model.permissions
+        initial = {}
+        for field in self.form.base_fields:
+            if field in raw_acl:
+                initial[field] = raw_acl[field]
+        return initial
+
+    def submit_form(self, form, target):
+        raw_acl = target.permissions
+        for perm in form.cleaned_data:
+            raw_acl[perm] = form.cleaned_data[perm]
+        target.permissions = raw_acl
+        target.save(force_update=True)
+        with UpdatingMonitor() as cm:
+            monitor.increase('acl_version')
+
+        return target, Message(_('Forum Role "%(name)s" permissions have been changed.') % {'name': self.original_name}, messages.SUCCESS)
+
+
+class Delete(ButtonWidget):
+    admin = site.get_action('roles_forums')
+    id = 'delete'
+    fallback = 'admin_roles_forums'
+    notfound_message = _('Requested Forum Role could not be found.')
+
+    def action(self, target):
+        target.delete()
+        with UpdatingMonitor() as cm:
+            monitor.increase('acl_version')
+        return Message(_('Forum Role "%(name)s" has been deleted.') % {'name': _(target.name)}, messages.SUCCESS), False

+ 12 - 12
misago/apps/admin/forums/views.py

@@ -73,7 +73,7 @@ class List(ListWidget):
             if forum.pk in checked:
             if forum.pk in checked:
                 forum.sync()
                 forum.sync()
                 forum.save(force_update=True)
                 forum.save(force_update=True)
-        return Message(_('Selected forums have been resynchronized successfully.'), 'success'), reverse('admin_forums')
+        return Message(_('Selected forums have been resynchronized successfully.'), messages.SUCCESS), reverse('admin_forums')
 
 
     def action_resync(self, items, checked):
     def action_resync(self, items, checked):
         clean_checked = []
         clean_checked = []
@@ -81,9 +81,9 @@ class List(ListWidget):
             if item.pk in checked and item.type == 'forum':
             if item.pk in checked and item.type == 'forum':
                 clean_checked.append(item.pk)
                 clean_checked.append(item.pk)
         if not clean_checked:
         if not clean_checked:
-            return Message(_('Only forums can be resynchronized.'), 'error'), reverse('admin_forums')
+            return Message(_('Only forums can be resynchronized.'), messages.ERROR), reverse('admin_forums')
         self.request.session['sync_forums'] = clean_checked
         self.request.session['sync_forums'] = clean_checked
-        return Message('Meh', 'success'), django_reverse('admin_forums_resync')
+        return Message('Meh', messages.SUCCESS), django_reverse('admin_forums_resync')
 
 
 
 
 def resync_forums(request, forum=0, progress=0):
 def resync_forums(request, forum=0, progress=0):
@@ -200,11 +200,11 @@ class NewNode(FormWidget):
         }
         }
 
 
         if form.cleaned_data['role'] == 'category':
         if form.cleaned_data['role'] == 'category':
-            return new_forum, Message(_('New Category has been created.'), 'success')
+            return new_forum, Message(_('New Category has been created.'), messages.SUCCESS)
         if form.cleaned_data['role'] == 'forum':
         if form.cleaned_data['role'] == 'forum':
-            return new_forum, Message(_('New Forum has been created.'), 'success')
+            return new_forum, Message(_('New Forum has been created.'), messages.SUCCESS)
         if form.cleaned_data['role'] == 'redirect':
         if form.cleaned_data['role'] == 'redirect':
-            return new_forum, Message(_('New Redirect has been created.'), 'success')
+            return new_forum, Message(_('New Redirect has been created.'), messages.SUCCESS)
 
 
 
 
 class Up(ButtonWidget):
 class Up(ButtonWidget):
@@ -217,8 +217,8 @@ class Up(ButtonWidget):
         previous_sibling = target.get_previous_sibling()
         previous_sibling = target.get_previous_sibling()
         if previous_sibling:
         if previous_sibling:
             target.move_to(previous_sibling, 'left')
             target.move_to(previous_sibling, 'left')
-            return Message(_('Forum "%(name)s" has been moved up.') % {'name': target.name}, 'success'), False
-        return Message(_('Forum "%(name)s" is first child of its parent node and cannot be moved up.') % {'name': target.name}, 'info'), False
+            return Message(_('Forum "%(name)s" has been moved up.') % {'name': target.name}, messages.SUCCESS), False
+        return Message(_('Forum "%(name)s" is first child of its parent node and cannot be moved up.') % {'name': target.name}), False
 
 
 
 
 class Down(ButtonWidget):
 class Down(ButtonWidget):
@@ -231,8 +231,8 @@ class Down(ButtonWidget):
         next_sibling = target.get_next_sibling()
         next_sibling = target.get_next_sibling()
         if next_sibling:
         if next_sibling:
             target.move_to(next_sibling, 'right')
             target.move_to(next_sibling, 'right')
-            return Message(_('Forum "%(name)s" has been moved down.') % {'name': target.name}, 'success'), False
-        return Message(_('Forum "%(name)s" is last child of its parent node and cannot be moved down.') % {'name': target.name}, 'info'), False
+            return Message(_('Forum "%(name)s" has been moved down.') % {'name': target.name}, messages.SUCCESS), False
+        return Message(_('Forum "%(name)s" is last child of its parent node and cannot be moved down.') % {'name': target.name}), False
 
 
 
 
 class Edit(FormWidget):
 class Edit(FormWidget):
@@ -330,7 +330,7 @@ class Edit(FormWidget):
         if self.original_name != target.name:
         if self.original_name != target.name:
             target.sync_name()
             target.sync_name()
 
 
-        return target, Message(_('Changes in forum "%(name)s" have been saved.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Changes in forum "%(name)s" have been saved.') % {'name': self.original_name}, messages.SUCCESS)
 
 
 
 
 class Delete(FormWidget):
 class Delete(FormWidget):
@@ -386,4 +386,4 @@ class Delete(FormWidget):
         Forum.objects.populate_tree(True)
         Forum.objects.populate_tree(True)
         with UpdatingMonitor() as cm:
         with UpdatingMonitor() as cm:
             monitor.increase('acl_version')
             monitor.increase('acl_version')
-        return target, Message(_('Forum "%(name)s" has been deleted.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Forum "%(name)s" has been deleted.') % {'name': self.original_name}, messages.SUCCESS)

+ 4 - 4
misago/apps/admin/newsletters/views.py

@@ -58,7 +58,7 @@ class List(ListWidget):
 
 
     def action_delete(self, items, checked):
     def action_delete(self, items, checked):
         Newsletter.objects.filter(id__in=checked).delete()
         Newsletter.objects.filter(id__in=checked).delete()
-        return Message(_('Selected newsletters have been deleted successfully.'), 'success'), reverse('admin_newsletters')
+        return Message(_('Selected newsletters have been deleted successfully.'), messages.SUCCESS), reverse('admin_newsletters')
 
 
 
 
 class New(FormWidget):
 class New(FormWidget):
@@ -89,7 +89,7 @@ class New(FormWidget):
         for rank in form.cleaned_data['ranks']:
         for rank in form.cleaned_data['ranks']:
             new_newsletter.ranks.add(rank)
             new_newsletter.ranks.add(rank)
 
 
-        return new_newsletter, Message(_('New Newsletter has been created.'), 'success')
+        return new_newsletter, Message(_('New Newsletter has been created.'), messages.SUCCESS)
 
 
 
 
 class Edit(FormWidget):
 class Edit(FormWidget):
@@ -132,7 +132,7 @@ class Edit(FormWidget):
             target.ranks.add(rank)
             target.ranks.add(rank)
 
 
         target.save(force_update=True)
         target.save(force_update=True)
-        return target, Message(_('Changes in newsletter "%(name)s" have been saved.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Changes in newsletter "%(name)s" have been saved.') % {'name': self.original_name}, messages.SUCCESS)
 
 
 
 
 class Delete(ButtonWidget):
 class Delete(ButtonWidget):
@@ -143,7 +143,7 @@ class Delete(ButtonWidget):
 
 
     def action(self, target):
     def action(self, target):
         target.delete()
         target.delete()
-        return Message(_('Newsletter "%(name)s"" has been deleted.') % {'name': target.name}, 'success'), False
+        return Message(_('Newsletter "%(name)s"" has been deleted.') % {'name': target.name}, messages.SUCCESS), False
 
 
 
 
 def send(request, target, token):
 def send(request, target, token):

+ 7 - 7
misago/apps/admin/pruneusers/views.py

@@ -42,10 +42,10 @@ class List(ListWidget):
 
 
     def action_delete(self, items, checked):
     def action_delete(self, items, checked):
         if not self.request.user.is_god():
         if not self.request.user.is_god():
-            return Message(_('Only system administrators can delete pruning policies.'), 'error'), reverse('admin_prune_users')
+            return Message(_('Only system administrators can delete pruning policies.'), messages.ERROR), reverse('admin_prune_users')
 
 
         PruningPolicy.objects.filter(id__in=checked).delete()
         PruningPolicy.objects.filter(id__in=checked).delete()
-        return Message(_('Selected pruning policies have been deleted successfully.'), 'success'), reverse('admin_prune_users')
+        return Message(_('Selected pruning policies have been deleted successfully.'), messages.SUCCESS), reverse('admin_prune_users')
 
 
 
 
 class New(FormWidget):
 class New(FormWidget):
@@ -72,7 +72,7 @@ class New(FormWidget):
         new_policy.clean()
         new_policy.clean()
         new_policy.save(force_insert=True)
         new_policy.save(force_insert=True)
 
 
-        return new_policy, Message(_('New Pruning Policy has been created.'), 'success')
+        return new_policy, Message(_('New Pruning Policy has been created.'), messages.SUCCESS)
 
 
     def __call__(self, request, *args, **kwargs):
     def __call__(self, request, *args, **kwargs):
         if not request.user.is_god():
         if not request.user.is_god():
@@ -116,7 +116,7 @@ class Edit(FormWidget):
         target.clean()
         target.clean()
         target.save(force_update=True)
         target.save(force_update=True)
 
 
-        return target, Message(_('Changes in policy "%(name)s" have been saved.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Changes in policy "%(name)s" have been saved.') % {'name': self.original_name}, messages.SUCCESS)
 
 
     def __call__(self, request, *args, **kwargs):
     def __call__(self, request, *args, **kwargs):
         if not request.user.is_god():
         if not request.user.is_god():
@@ -134,10 +134,10 @@ class Delete(ButtonWidget):
 
 
     def action(self, target):
     def action(self, target):
         if not self.request.user.is_god():
         if not self.request.user.is_god():
-            return Message(_('Only system administrators can delete pruning policies.'), 'error'), False
+            return Message(_('Only system administrators can delete pruning policies.'), messages.ERROR), False
 
 
         target.delete()
         target.delete()
-        return Message(_('Pruning policy "%(name)s" has been deleted.') % {'name': target.name}, 'success'), False
+        return Message(_('Pruning policy "%(name)s" has been deleted.') % {'name': target.name}, messages.SUCCESS), False
 
 
 
 
 class Apply(FormWidget):
 class Apply(FormWidget):
@@ -196,7 +196,7 @@ class Apply(FormWidget):
                     messages.info(request, _("No users have been deleted."), self.admin.id)
                     messages.info(request, _("No users have been deleted."), self.admin.id)
                 return redirect(reverse('admin_prune_users'))
                 return redirect(reverse('admin_prune_users'))
             else:
             else:
-                message = Message(_("Request authorization is invalid. Please resubmit your form."), 'error')
+                message = Message(_("Request authorization is invalid. Please resubmit your form."), messages.ERROR)
 
 
         return render_to_response(self.get_template(),
         return render_to_response(self.get_template(),
                                   {
                                   {

+ 6 - 5
misago/apps/admin/ranks/views.py

@@ -1,6 +1,7 @@
 from django.core.urlresolvers import reverse as django_reverse
 from django.core.urlresolvers import reverse as django_reverse
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 import floppyforms as forms
 import floppyforms as forms
+from misago import messages
 from misago.admin import site
 from misago.admin import site
 from misago.apps.admin.widgets import *
 from misago.apps.admin.widgets import *
 from misago.forms import Form
 from misago.forms import Form
@@ -50,7 +51,7 @@ class List(ListWidget):
         for item in page_items:
         for item in page_items:
             item.order = cleaned_data['pos_' + str(item.pk)]
             item.order = cleaned_data['pos_' + str(item.pk)]
             item.save(force_update=True)
             item.save(force_update=True)
-        return Message(_('Ranks order has been changed'), 'success'), reverse('admin_ranks')
+        return Message(_('Ranks order has been changed'), messages.SUCCESS), reverse('admin_ranks')
 
 
     def sort_items(self, page_items, sorting_method):
     def sort_items(self, page_items, sorting_method):
         return page_items.order_by('order')
         return page_items.order_by('order')
@@ -63,7 +64,7 @@ class List(ListWidget):
 
 
     def action_delete(self, items, checked):
     def action_delete(self, items, checked):
         Rank.objects.filter(id__in=checked).delete()
         Rank.objects.filter(id__in=checked).delete()
-        return Message(_('Selected ranks have been deleted successfully.'), 'success'), reverse('admin_ranks')
+        return Message(_('Selected ranks have been deleted successfully.'), messages.SUCCESS), reverse('admin_ranks')
 
 
 
 
 class New(FormWidget):
 class New(FormWidget):
@@ -97,7 +98,7 @@ class New(FormWidget):
         new_rank.save(force_insert=True)
         new_rank.save(force_insert=True)
         for role in form.cleaned_data['roles']:
         for role in form.cleaned_data['roles']:
             new_rank.roles.add(role)
             new_rank.roles.add(role)
-        return new_rank, Message(_('New Rank has been created.'), 'success')
+        return new_rank, Message(_('New Rank has been created.'), messages.SUCCESS)
 
 
 
 
 class Edit(FormWidget):
 class Edit(FormWidget):
@@ -151,7 +152,7 @@ class Edit(FormWidget):
 
 
         target.user_set.update(acl_key=None)
         target.user_set.update(acl_key=None)
 
 
-        return target, Message(_('Changes in rank "%(name)s" have been saved.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Changes in rank "%(name)s" have been saved.') % {'name': self.original_name}, messages.SUCCESS)
 
 
 
 
 class Delete(ButtonWidget):
 class Delete(ButtonWidget):
@@ -162,4 +163,4 @@ class Delete(ButtonWidget):
 
 
     def action(self, target):
     def action(self, target):
         target.delete()
         target.delete()
-        return Message(_('Rank "%(name)s" has been deleted.') % {'name': _(target.name)}, 'success'), False
+        return Message(_('Rank "%(name)s" has been deleted.') % {'name': _(target.name)}, messages.SUCCESS), False

+ 12 - 12
misago/apps/admin/roles/views.py

@@ -47,14 +47,14 @@ class List(ListWidget):
         for item in items:
         for item in items:
             if item.pk in checked:
             if item.pk in checked:
                 if item.special:
                 if item.special:
-                    return Message(_('You cannot delete system roles.'), 'error'), reverse('admin_roles')
+                    return Message(_('You cannot delete system roles.'), messages.ERROR), reverse('admin_roles')
                 if item.protected and not self.request.user.is_god():
                 if item.protected and not self.request.user.is_god():
-                    return Message(_('You cannot delete protected roles.'), 'error'), reverse('admin_roles')
+                    return Message(_('You cannot delete protected roles.'), messages.ERROR), reverse('admin_roles')
                 if item.user_set.count() > 0:
                 if item.user_set.count() > 0:
-                    return Message(_('You cannot delete roles that are assigned to users.'), 'error'), reverse('admin_roles')
+                    return Message(_('You cannot delete roles that are assigned to users.'), messages.ERROR), reverse('admin_roles')
 
 
         Role.objects.filter(id__in=checked).delete()
         Role.objects.filter(id__in=checked).delete()
-        return Message(_('Selected roles have been deleted successfully.'), 'success'), reverse('admin_roles')
+        return Message(_('Selected roles have been deleted successfully.'), messages.SUCCESS), reverse('admin_roles')
 
 
 
 
 class New(FormWidget):
 class New(FormWidget):
@@ -73,7 +73,7 @@ class New(FormWidget):
     def submit_form(self, form, target):
     def submit_form(self, form, target):
         new_role = Role(name=form.cleaned_data['name'])
         new_role = Role(name=form.cleaned_data['name'])
         new_role.save(force_insert=True)
         new_role.save(force_insert=True)
-        return new_role, Message(_('New Role has been created.'), 'success')
+        return new_role, Message(_('New Role has been created.'), messages.SUCCESS)
 
 
 
 
 class Edit(FormWidget):
 class Edit(FormWidget):
@@ -112,7 +112,7 @@ class Edit(FormWidget):
         target.save(force_update=True)
         target.save(force_update=True)
         with UpdatingMonitor() as cm:
         with UpdatingMonitor() as cm:
             monitor.increase('acl_version')
             monitor.increase('acl_version')
-        return target, Message(_('Changes in role "%(name)s" have been saved.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Changes in role "%(name)s" have been saved.') % {'name': self.original_name}, messages.SUCCESS)
 
 
 
 
 class Forums(ListWidget):
 class Forums(ListWidget):
@@ -166,7 +166,7 @@ class Forums(ListWidget):
         role_perms['forums'] = perms
         role_perms['forums'] = perms
         self.role.permissions = role_perms
         self.role.permissions = role_perms
         self.role.save(force_update=True)
         self.role.save(force_update=True)
-        return Message(_('Forum permissions have been saved.'), 'success'), self.get_link()
+        return Message(_('Forum permissions have been saved.'), messages.SUCCESS), self.get_link()
 
 
     def __call__(self, request, slug, target):
     def __call__(self, request, slug, target):
         self.request = request
         self.request = request
@@ -230,7 +230,7 @@ class ACL(FormWidget):
         with UpdatingMonitor() as cm:
         with UpdatingMonitor() as cm:
             monitor.increase('acl_version')
             monitor.increase('acl_version')
 
 
-        return target, Message(_('Role "%(name)s" permissions have been changed.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Role "%(name)s" permissions have been changed.') % {'name': self.original_name}, messages.SUCCESS)
 
 
 
 
 class Delete(ButtonWidget):
 class Delete(ButtonWidget):
@@ -241,11 +241,11 @@ class Delete(ButtonWidget):
 
 
     def action(self, target):
     def action(self, target):
         if target.special:
         if target.special:
-            return Message(_('You cannot delete system roles.'), 'error'), reverse('admin_roles')
+            return Message(_('You cannot delete system roles.'), messages.ERROR), reverse('admin_roles')
         if target.protected and not self.request.user.is_god():
         if target.protected and not self.request.user.is_god():
-            return Message(_('This role is protected.'), 'error'), reverse('admin_roles')
+            return Message(_('This role is protected.'), messages.ERROR), reverse('admin_roles')
         if target.user_set.count() > 0:
         if target.user_set.count() > 0:
-            return Message(_('This role is assigned to one or more users.'), 'error'), reverse('admin_roles')
+            return Message(_('This role is assigned to one or more users.'), messages.ERROR), reverse('admin_roles')
 
 
         target.delete()
         target.delete()
-        return Message(_('Role "%(name)s" has been deleted.') % {'name': _(target.name)}, 'success'), False
+        return Message(_('Role "%(name)s" has been deleted.') % {'name': _(target.name)}, messages.SUCCESS), False

+ 3 - 3
misago/apps/admin/settings/views.py

@@ -57,7 +57,7 @@ def settings(request, group_id=None, group_slug=None):
                                                        'group_slug': active_group.key,
                                                        'group_slug': active_group.key,
                                                        }))
                                                        }))
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = SettingsGroupForm(request=request)
         form = SettingsGroupForm(request=request)
 
 
@@ -99,7 +99,7 @@ def settings_search(request):
                                                 '%(count)d settings that match search criteria have been found.',
                                                 '%(count)d settings that match search criteria have been found.',
                                                 len(found_settings)) % {
                                                 len(found_settings)) % {
                                                     'count': len(found_settings),
                                                     'count': len(found_settings),
-                                                }, 'success')
+                                                }, messages.SUCCESS)
                 else:
                 else:
                     raise SearchException(_('No settings that match search criteria have been found.'))
                     raise SearchException(_('No settings that match search criteria have been found.'))
             else:
             else:
@@ -107,7 +107,7 @@ def settings_search(request):
         else:
         else:
             raise SearchException(_('Search query is invalid.'))
             raise SearchException(_('Search query is invalid.'))
     except SearchException as e:
     except SearchException as e:
-        message = Message(unicode(e), 'error')
+        message = Message(unicode(e), messages.ERROR)
     return render_to_response('settings/search_results.html',
     return render_to_response('settings/search_results.html',
                               {
                               {
                               'message': message,
                               'message': message,

+ 4 - 5
misago/apps/admin/stats/views.py

@@ -16,7 +16,6 @@ def form(request):
     """
     """
     Allow admins to generate fancy statistic graphs for different models
     Allow admins to generate fancy statistic graphs for different models
     """
     """
-    statistics_providers = []
     models_map = {}
     models_map = {}
     for model in models.get_models():
     for model in models.get_models():
         try:
         try:
@@ -47,7 +46,7 @@ def form(request):
                 date_start = date_temp
                 date_start = date_temp
             # Assert that dates are correct
             # Assert that dates are correct
             if date_end == date_start:
             if date_end == date_start:
-                message = Message(_('Start and end date are same'), 'error')
+                message = Message(_('Start and end date are same'), messages.ERROR)
             elif check_dates(date_start, date_end, form.cleaned_data['stats_precision']):
             elif check_dates(date_start, date_end, form.cleaned_data['stats_precision']):
                 message = check_dates(date_start, date_end, form.cleaned_data['stats_precision'])
                 message = check_dates(date_start, date_end, form.cleaned_data['stats_precision'])
             else:
             else:
@@ -59,7 +58,7 @@ def form(request):
                                                        'precision': form.cleaned_data['stats_precision']
                                                        'precision': form.cleaned_data['stats_precision']
                                                         }))
                                                         }))
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = GenerateStatisticsForm(provider_choices=statistics_providers, request=request)
         form = GenerateStatisticsForm(provider_choices=statistics_providers, request=request)
 
 
@@ -125,12 +124,12 @@ def check_dates(date_start, date_end, precision):
         or (precision == 'week' and date_diff / 604800 > 60)
         or (precision == 'week' and date_diff / 604800 > 60)
         or (precision == 'month' and date_diff / 2592000 > 60)
         or (precision == 'month' and date_diff / 2592000 > 60)
         or (precision == 'year' and date_diff / 31536000 > 60)):
         or (precision == 'year' and date_diff / 31536000 > 60)):
-        return Message(_('Too many many items to display on graph.'), 'error')
+        return Message(_('Too many many items to display on graph.'), messages.ERROR)
     elif ((precision == 'day' and date_diff / 86400 < 1)
     elif ((precision == 'day' and date_diff / 86400 < 1)
           or (precision == 'week' and date_diff / 604800 < 1)
           or (precision == 'week' and date_diff / 604800 < 1)
           or (precision == 'month' and date_diff / 2592000 < 1)
           or (precision == 'month' and date_diff / 2592000 < 1)
           or (precision == 'year' and date_diff / 31536000 < 1)):
           or (precision == 'year' and date_diff / 31536000 < 1)):
-        return Message(_('Too few items to display on graph'), 'error')
+        return Message(_('Too few items to display on graph'), messages.ERROR)
     return None
     return None
 
 
 
 

+ 22 - 21
misago/apps/admin/users/views.py

@@ -2,6 +2,7 @@ from django.core.urlresolvers import reverse as django_reverse
 from django.db.models import Q
 from django.db.models import Q
 from django.shortcuts import redirect
 from django.shortcuts import redirect
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
+from misago import messages
 from misago.admin import site
 from misago.admin import site
 from misago.apps.admin.widgets import *
 from misago.apps.admin.widgets import *
 from misago.conf import settings
 from misago.conf import settings
@@ -105,14 +106,14 @@ class List(ListWidget):
                                 _("Your Account has been activated"),
                                 _("Your Account has been activated"),
                                 )
                                 )
 
 
-        return Message(_('Selected users accounts have been activated.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users accounts have been activated.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_deactivate(self, items, checked):
     def action_deactivate(self, items, checked):
         # First loop - check for errors
         # First loop - check for errors
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 if user.is_protected() and not self.request.user.is_god():
                 if user.is_protected() and not self.request.user.is_god():
-                    return Message(_('You cannot force validation of protected members e-mails.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot force validation of protected members e-mails.'), messages.ERROR), reverse('admin_users')
 
 
         # Second loop - reset passwords
         # Second loop - reset passwords
         for user in items:
         for user in items:
@@ -126,14 +127,14 @@ class List(ListWidget):
                                 _("Account Activation"),
                                 _("Account Activation"),
                                 )
                                 )
 
 
-        return Message(_('Selected users accounts have been deactivated and new activation links have been sent to them.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users accounts have been deactivated and new activation links have been sent to them.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_remove_av(self, items, checked):
     def action_remove_av(self, items, checked):
         # First loop - check for errors
         # First loop - check for errors
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 if user.is_protected() and not self.request.user.is_god():
                 if user.is_protected() and not self.request.user.is_god():
-                    return Message(_('You cannot remove and block protected members avatars.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot remove and block protected members avatars.'), messages.ERROR), reverse('admin_users')
 
 
         # Second loop - reset passwords
         # Second loop - reset passwords
         for user in items:
         for user in items:
@@ -141,14 +142,14 @@ class List(ListWidget):
                 user.lock_avatar()
                 user.lock_avatar()
                 user.save(force_update=True)
                 user.save(force_update=True)
 
 
-        return Message(_('Selected users avatars were deleted and locked.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users avatars were deleted and locked.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_remove_sig(self, items, checked):
     def action_remove_sig(self, items, checked):
         # First loop - check for errors
         # First loop - check for errors
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 if user.is_protected() and not self.request.user.is_god():
                 if user.is_protected() and not self.request.user.is_god():
-                    return Message(_('You cannot remove and block protected members signatures.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot remove and block protected members signatures.'), messages.ERROR), reverse('admin_users')
 
 
         # Second loop - reset passwords
         # Second loop - reset passwords
         for user in items:
         for user in items:
@@ -158,7 +159,7 @@ class List(ListWidget):
                 user.signature_preparsed = ''
                 user.signature_preparsed = ''
                 user.save(force_update=True)
                 user.save(force_update=True)
 
 
-        return Message(_('Selected users signatures were deleted and locked.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users signatures were deleted and locked.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_remove_locks(self, items, checked):
     def action_remove_locks(self, items, checked):
         for user in items:
         for user in items:
@@ -168,14 +169,14 @@ class List(ListWidget):
                 user.signature_ban = False
                 user.signature_ban = False
                 user.save(force_update=True)
                 user.save(force_update=True)
 
 
-        return Message(_('Selected users can now edit their avatars and signatures.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users can now edit their avatars and signatures.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_reset(self, items, checked):
     def action_reset(self, items, checked):
         # First loop - check for errors
         # First loop - check for errors
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 if user.is_protected() and not self.request.user.is_god():
                 if user.is_protected() and not self.request.user.is_god():
-                    return Message(_('You cannot reset protected members passwords.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot reset protected members passwords.'), messages.ERROR), reverse('admin_users')
 
 
         # Second loop - reset passwords
         # Second loop - reset passwords
         for user in items:
         for user in items:
@@ -192,15 +193,15 @@ class List(ListWidget):
                                  },
                                  },
                                 )
                                 )
 
 
-        return Message(_('Selected users passwords have been reset successfully.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users passwords have been reset successfully.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_delete_content(self, items, checked):
     def action_delete_content(self, items, checked):
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 if user.pk == self.request.user.id:
                 if user.pk == self.request.user.id:
-                    return Message(_('You cannot delete yourself.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot delete yourself.'), messages.ERROR), reverse('admin_users')
                 if user.is_protected():
                 if user.is_protected():
-                    return Message(_('You cannot delete protected members.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot delete protected members.'), messages.ERROR), reverse('admin_users')
 
 
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
@@ -212,22 +213,22 @@ class List(ListWidget):
             forum.save(force_update=True)
             forum.save(force_update=True)
 
 
         User.objects.resync_monitor()
         User.objects.resync_monitor()
-        return Message(_('Selected users and their content have been deleted successfully.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users and their content have been deleted successfully.'), messages.SUCCESS), reverse('admin_users')
 
 
     def action_delete(self, items, checked):
     def action_delete(self, items, checked):
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 if user.pk == self.request.user.id:
                 if user.pk == self.request.user.id:
-                    return Message(_('You cannot delete yourself.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot delete yourself.'), messages.ERROR), reverse('admin_users')
                 if user.is_protected():
                 if user.is_protected():
-                    return Message(_('You cannot delete protected members.'), 'error'), reverse('admin_users')
+                    return Message(_('You cannot delete protected members.'), messages.ERROR), reverse('admin_users')
 
 
         for user in items:
         for user in items:
             if user.pk in checked:
             if user.pk in checked:
                 user.delete()
                 user.delete()
 
 
         User.objects.resync_monitor()
         User.objects.resync_monitor()
-        return Message(_('Selected users have been deleted successfully.'), 'success'), reverse('admin_users')
+        return Message(_('Selected users have been deleted successfully.'), messages.SUCCESS), reverse('admin_users')
 
 
 
 
 class New(FormWidget):
 class New(FormWidget):
@@ -262,7 +263,7 @@ class New(FormWidget):
         new_user.make_acl_key(True)
         new_user.make_acl_key(True)
         new_user.save(force_update=True)
         new_user.save(force_update=True)
 
 
-        return new_user, Message(_('New User has been created.'), 'success')
+        return new_user, Message(_('New User has been created.'), messages.SUCCESS)
 
 
 
 
 class Edit(FormWidget):
 class Edit(FormWidget):
@@ -348,7 +349,7 @@ class Edit(FormWidget):
 
 
         target.make_acl_key(True)
         target.make_acl_key(True)
         target.save(force_update=True)
         target.save(force_update=True)
-        return target, Message(_('Changes in user\'s "%(name)s" account have been saved.') % {'name': self.original_name}, 'success')
+        return target, Message(_('Changes in user\'s "%(name)s" account have been saved.') % {'name': self.original_name}, messages.SUCCESS)
 
 
 
 
 class Delete(ButtonWidget):
 class Delete(ButtonWidget):
@@ -359,12 +360,12 @@ class Delete(ButtonWidget):
 
 
     def action(self, target):
     def action(self, target):
         if target.pk == self.request.user.id:
         if target.pk == self.request.user.id:
-            return Message(_('You cannot delete yourself.'), 'error'), False
+            return Message(_('You cannot delete yourself.'), messages.ERROR), False
         if target.is_protected():
         if target.is_protected():
-            return Message(_('You cannot delete protected member.'), 'error'), False
+            return Message(_('You cannot delete protected member.'), messages.ERROR), False
         target.delete()
         target.delete()
         User.objects.resync_monitor()
         User.objects.resync_monitor()
-        return Message(_('User "%(name)s" has been deleted.') % {'name': target.username}, 'success'), False
+        return Message(_('User "%(name)s" has been deleted.') % {'name': target.username}, messages.SUCCESS), False
 
 
 
 
 def inactive(request):
 def inactive(request):

+ 3 - 3
misago/apps/admin/widgets.py

@@ -318,7 +318,7 @@ class ListWidget(BaseWidget):
                         messages.add_message(request, message.type, message, self.admin.id)
                         messages.add_message(request, message.type, message, self.admin.id)
                         return redirect(redirect_link)
                         return redirect(redirect_link)
                 else:
                 else:
-                    message = Message(table_form.non_field_errors()[0], 'error')
+                    message = Message(table_form.non_field_errors()[0], messages.ERROR)
             else:
             else:
                 table_form = TableForm(request=request)
                 table_form = TableForm(request=request)
 
 
@@ -456,9 +456,9 @@ class FormWidget(BaseWidget):
                             pass
                             pass
                         return redirect(self.get_fallback_link())
                         return redirect(self.get_fallback_link())
                 except ValidationError as e:
                 except ValidationError as e:
-                    message = Message(e.messages[0], 'error')
+                    message = Message(e.messages[0], messages.ERROR)
             else:
             else:
-                message = Message(form.non_field_errors()[0], 'error')
+                message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             form = self.get_form_instance(FormType, model, self.get_initial_data(model))
             form = self.get_form_instance(FormType, model, self.get_initial_data(model))
 
 

+ 2 - 2
misago/apps/profiles/views.py

@@ -71,9 +71,9 @@ def list(request, slug=None, page=0):
                     users = users.select_related(*settings.PROFILE_EXTENSIONS_PRELOAD)
                     users = users.select_related(*settings.PROFILE_EXTENSIONS_PRELOAD)
                 users = users.filter(username_slug__startswith=username).order_by('username_slug')[:10]
                 users = users.filter(username_slug__startswith=username).order_by('username_slug')[:10]
         elif search_form.non_field_errors()[0] == 'form_contains_errors':
         elif search_form.non_field_errors()[0] == 'form_contains_errors':
-            message = Message(_("To search users you have to enter username in search field."), 'error')
+            message = Message(_("To search users you have to enter username in search field."), messages.ERROR)
         else:
         else:
-            message = Message(search_form.non_field_errors()[0], 'error')
+            message = Message(search_form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         search_form = QuickFindUserForm(request=request)
         search_form = QuickFindUserForm(request=request)
         if active_rank:
         if active_rank:

+ 1 - 1
misago/apps/register/views.py

@@ -67,7 +67,7 @@ def form(request):
             User.objects.resync_monitor()
             User.objects.resync_monitor()
             return redirect(reverse('index'))
             return redirect(reverse('index'))
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
             if settings.registrations_jams:
             if settings.registrations_jams:
                 SignInAttempt.objects.register_attempt(request.session.get_ip(request))
                 SignInAttempt.objects.register_attempt(request.session.get_ip(request))
             # Have we jammed our account?
             # Have we jammed our account?

+ 1 - 1
misago/apps/resetpswd/views.py

@@ -37,7 +37,7 @@ def form(request):
 
 
             return redirect_message(request, messages.INFO, _("%(username)s, new password request confirmation has been sent to %(email)s.") % {'username': user.username, 'email': user.email})
             return redirect_message(request, messages.INFO, _("%(username)s, new password request confirmation has been sent to %(email)s.") % {'username': user.username, 'email': user.email})
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = UserResetPasswordForm(request=request)
         form = UserResetPasswordForm(request=request)
     return render_to_response('reset_password.html',
     return render_to_response('reset_password.html',

+ 2 - 2
misago/apps/signin/views.py

@@ -68,7 +68,7 @@ def signin(request):
                 messages.success(request, _("Welcome back, %(username)s!") % {'username': user.username}, 'security')
                 messages.success(request, _("Welcome back, %(username)s!") % {'username': user.username}, 'security')
                 return redirect(success_redirect)
                 return redirect(success_redirect)
             except AuthException as e:
             except AuthException as e:
-                message = Message(e.error, 'error')
+                message = Message(e.error, messages.ERROR)
                 bad_password = e.password
                 bad_password = e.password
                 banned_account = e.ban
                 banned_account = e.ban
                 not_active = e.activation
                 not_active = e.activation
@@ -82,7 +82,7 @@ def signin(request):
                         request.jam.expires = timezone.now()
                         request.jam.expires = timezone.now()
                         return redirect(reverse('sign_in'))
                         return redirect(reverse('sign_in'))
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = SignInForm(
         form = SignInForm(
                           show_remember_me=not request.firewall.admin and settings.remember_me_allow,
                           show_remember_me=not request.firewall.admin and settings.remember_me_allow,

+ 2 - 2
misago/apps/threadtype/list/moderation.py

@@ -113,7 +113,7 @@ class ThreadsListModeration(object):
                 self.forum.save(force_update=True)
                 self.forum.save(force_update=True)
                 messages.success(self.request, _('Selected threads have been moved to "%(forum)s".') % {'forum': new_forum.name}, 'threads')
                 messages.success(self.request, _('Selected threads have been moved to "%(forum)s".') % {'forum': new_forum.name}, 'threads')
                 return None
                 return None
-            self.message = Message(form.non_field_errors()[0], 'error')
+            self.message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             form = MoveThreadsForm(request=self.request, forum=self.forum)
             form = MoveThreadsForm(request=self.request, forum=self.forum)
         return render_to_response('%ss/move_threads.html' % self.type_prefix,
         return render_to_response('%ss/move_threads.html' % self.type_prefix,
@@ -159,7 +159,7 @@ class ThreadsListModeration(object):
                     form.cleaned_data['new_forum'].save(force_update=True)
                     form.cleaned_data['new_forum'].save(force_update=True)
                 messages.success(self.request, _('Selected threads have been merged into new one.'), 'threads')
                 messages.success(self.request, _('Selected threads have been merged into new one.'), 'threads')
                 return None
                 return None
-            self.message = Message(form.non_field_errors()[0], 'error')
+            self.message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             form = MergeThreadsForm(request=self.request, threads=threads)
             form = MergeThreadsForm(request=self.request, threads=threads)
 
 

+ 5 - 4
misago/apps/threadtype/list/views.py

@@ -4,6 +4,7 @@ from django.shortcuts import redirect
 from django.template import RequestContext
 from django.template import RequestContext
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 import floppyforms as forms
 import floppyforms as forms
+from misago import messages
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.apps.errors import error403, error404
 from misago.forms import Form
 from misago.forms import Form
@@ -77,14 +78,14 @@ class ThreadsListBaseView(ViewBase):
                             return response
                             return response
                         return redirect(self.request.path)
                         return redirect(self.request.path)
                     except forms.ValidationError as e:
                     except forms.ValidationError as e:
-                        self.message = Message(e.messages[0], 'error')
+                        self.message = Message(e.messages[0], messages.ERROR)
                 else:
                 else:
-                    self.message = Message(_("You have to select at least one thread."), 'error')
+                    self.message = Message(_("You have to select at least one thread."), messages.ERROR)
             else:
             else:
                 if 'list_action' in self.form.errors:
                 if 'list_action' in self.form.errors:
-                    self.message = Message(_("Requested action is incorrect."), 'error')
+                    self.message = Message(_("Requested action is incorrect."), messages.ERROR)
                 else:
                 else:
-                    self.message = Message(self.form.non_field_errors()[0], 'error')
+                    self.message = Message(self.form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             self.form = self.form(request=self.request)
             self.form = self.form(request=self.request)
 
 

+ 2 - 1
misago/apps/threadtype/posting/base.py

@@ -1,5 +1,6 @@
 from django.template import RequestContext
 from django.template import RequestContext
 from django.utils import timezone
 from django.utils import timezone
+from misago import messages
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.apps.errors import error403, error404
 from misago.markdown import emojis, post_markdown
 from misago.markdown import emojis, post_markdown
@@ -138,7 +139,7 @@ class PostingBaseView(ViewBase):
                         self.notify_users()
                         self.notify_users()
                         return self.response()
                         return self.response()
                     else:
                     else:
-                        self.message = Message(form.non_field_errors()[0], 'error')
+                        self.message = Message(form.non_field_errors()[0], messages.ERROR)
             else:
             else:
                 form = self.form_type(request=request, forum=self.forum, thread=self.thread, initial=self.form_initial_data())
                 form = self.form_type(request=request, forum=self.forum, thread=self.thread, initial=self.form_initial_data())
         except (Forum.DoesNotExist, Thread.DoesNotExist, Post.DoesNotExist):
         except (Forum.DoesNotExist, Thread.DoesNotExist, Post.DoesNotExist):

+ 2 - 2
misago/apps/threadtype/thread/moderation/posts.py

@@ -83,7 +83,7 @@ class PostsModeration(object):
                     new_thread.forum.save(force_update=True)
                     new_thread.forum.save(force_update=True)
                 messages.success(self.request, _("Selected posts have been split to new thread."), 'threads')
                 messages.success(self.request, _("Selected posts have been split to new thread."), 'threads')
                 return redirect(reverse(self.type_prefix, kwargs={'thread': new_thread.pk, 'slug': new_thread.slug}))
                 return redirect(reverse(self.type_prefix, kwargs={'thread': new_thread.pk, 'slug': new_thread.slug}))
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             form = SplitThreadForm(request=self.request, initial={
             form = SplitThreadForm(request=self.request, initial={
                                                                   'thread_name': _('[Split] %s') % self.thread.name,
                                                                   'thread_name': _('[Split] %s') % self.thread.name,
@@ -125,7 +125,7 @@ class PostsModeration(object):
                     self.forum.save(force_update=True)
                     self.forum.save(force_update=True)
                 messages.success(self.request, _("Selected posts have been moved to new thread."), 'threads')
                 messages.success(self.request, _("Selected posts have been moved to new thread."), 'threads')
                 return redirect(reverse(self.type_prefix, kwargs={'thread': thread.pk, 'slug': thread.slug}))
                 return redirect(reverse(self.type_prefix, kwargs={'thread': thread.pk, 'slug': thread.slug}))
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             form = MovePostsForm(request=self.request)
             form = MovePostsForm(request=self.request)
         return render_to_response('%ss/move_posts.html' % self.type_prefix,
         return render_to_response('%ss/move_posts.html' % self.type_prefix,

+ 1 - 1
misago/apps/threadtype/thread/moderation/thread.py

@@ -73,7 +73,7 @@ class ThreadModeration(object):
                 new_forum.save(force_update=True)
                 new_forum.save(force_update=True)
                 messages.success(self.request, _('Thread has been moved to "%(forum)s".') % {'forum': new_forum.name}, 'threads')
                 messages.success(self.request, _('Thread has been moved to "%(forum)s".') % {'forum': new_forum.name}, 'threads')
                 return None
                 return None
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             form = MoveThreadsForm(request=self.request, forum=self.forum)
             form = MoveThreadsForm(request=self.request, forum=self.forum)
         return render_to_response('%ss/move_thread.html' % self.type_prefix,
         return render_to_response('%ss/move_thread.html' % self.type_prefix,

+ 8 - 7
misago/apps/threadtype/thread/views.py

@@ -6,6 +6,7 @@ from django.template import RequestContext
 from django.utils import timezone
 from django.utils import timezone
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
 import floppyforms as forms
 import floppyforms as forms
+from misago import messages
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.apps.errors import error403, error404
 from misago.conf import settings
 from misago.conf import settings
@@ -119,12 +120,12 @@ class ThreadBaseView(ViewBase):
                         return response
                         return response
                     return redirect(self.request.path)
                     return redirect(self.request.path)
                 except forms.ValidationError as e:
                 except forms.ValidationError as e:
-                    self.message = Message(e.messages[0], 'error')
+                    self.message = Message(e.messages[0], messages.ERROR)
             else:
             else:
                 if 'thread_action' in self.thread_form.errors:
                 if 'thread_action' in self.thread_form.errors:
-                    self.message = Message(_("Requested action is incorrect."), 'error')
+                    self.message = Message(_("Requested action is incorrect."), messages.ERROR)
                 else:
                 else:
-                    self.message = Message(form.non_field_errors()[0], 'error')
+                    self.message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             self.thread_form = self.thread_form(request=self.request)
             self.thread_form = self.thread_form(request=self.request)
 
 
@@ -164,14 +165,14 @@ class ThreadBaseView(ViewBase):
                             return response
                             return response
                         return redirect(self.request.path)
                         return redirect(self.request.path)
                     except forms.ValidationError as e:
                     except forms.ValidationError as e:
-                        self.message = Message(e.messages[0], 'error')
+                        self.message = Message(e.messages[0], messages.ERROR)
                 else:
                 else:
-                    self.message = Message(_("You have to select at least one post."), 'error')
+                    self.message = Message(_("You have to select at least one post."), messages.ERROR)
             else:
             else:
                 if 'list_action' in self.posts_form.errors:
                 if 'list_action' in self.posts_form.errors:
-                    self.message = Message(_("Requested action is incorrect."), 'error')
+                    self.message = Message(_("Requested action is incorrect."), messages.ERROR)
                 else:
                 else:
-                    self.message = Message(posts_form.non_field_errors()[0], 'error')
+                    self.message = Message(posts_form.non_field_errors()[0], messages.ERROR)
         else:
         else:
             self.posts_form = self.posts_form(request=self.request)
             self.posts_form = self.posts_form(request=self.request)
 
 

+ 7 - 7
misago/apps/usercp/avatar/views.py

@@ -6,7 +6,7 @@ from django.core.urlresolvers import reverse
 from django.shortcuts import redirect
 from django.shortcuts import redirect
 from django.utils.encoding import smart_str
 from django.utils.encoding import smart_str
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
-form misago import messages
+from misago import messages
 from misago.apps.errors import error404
 from misago.apps.errors import error404
 from misago.conf import settings
 from misago.conf import settings
 from misago.decorators import block_guest
 from misago.decorators import block_guest
@@ -89,9 +89,9 @@ def gallery(request):
                 request.user.save(force_update=True)
                 request.user.save(force_update=True)
                 messages.success(request, _("Your avatar has been changed to one from gallery."), 'usercp_avatar')
                 messages.success(request, _("Your avatar has been changed to one from gallery."), 'usercp_avatar')
                 return redirect(reverse('usercp_avatar'))
                 return redirect(reverse('usercp_avatar'))
-            message = Message(_("Selected Avatar is incorrect."), 'error')
+            message = Message(_("Selected Avatar is incorrect."), messages.ERROR)
         else:
         else:
-            message = Message(_("Request authorisation is invalid."), 'error')
+            message = Message(_("Request authorisation is invalid."), messages.ERROR)
 
 
     return render_to_response('usercp/avatar_gallery.html',
     return render_to_response('usercp/avatar_gallery.html',
                               context_instance=RequestContext(request, {
                               context_instance=RequestContext(request, {
@@ -154,9 +154,9 @@ def upload(request):
             except ValidationError:
             except ValidationError:
                 request.user.delete_avatar()
                 request.user.delete_avatar()
                 request.user.default_avatar()
                 request.user.default_avatar()
-                message = Message(_("Only gif, jpeg and png files are allowed for member avatars."), 'error')
+                message = Message(_("Only gif, jpeg and png files are allowed for member avatars."), messages.ERROR)
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = UploadAvatarForm(request=request)
         form = UploadAvatarForm(request=request)
 
 
@@ -215,9 +215,9 @@ def crop(request, upload=False):
                 messages.success(request, _("Your avatar has been cropped."), 'usercp_avatar')
                 messages.success(request, _("Your avatar has been cropped."), 'usercp_avatar')
                 return redirect(reverse('usercp_avatar'))
                 return redirect(reverse('usercp_avatar'))
             except Exception:
             except Exception:
-                message = Message(_("Form contains errors."), 'error')
+                message = Message(_("Form contains errors."), messages.ERROR)
         else:
         else:
-            message = Message(_("Request authorisation is invalid."), 'error')
+            message = Message(_("Request authorisation is invalid."), messages.ERROR)
 
 
 
 
     return render_to_response('usercp/avatar_crop.html',
     return render_to_response('usercp/avatar_crop.html',

+ 1 - 1
misago/apps/usercp/credentials/views.py

@@ -36,7 +36,7 @@ def credentials(request):
             else:
             else:
                 messages.success(request, _("We have sent e-mail message to your e-mail address with link you have to click to confirm change of your sign-in credentials. This link will be valid only for duration of this session, do not sign out until you confirm change!"), 'usercp_credentials')
                 messages.success(request, _("We have sent e-mail message to your e-mail address with link you have to click to confirm change of your sign-in credentials. This link will be valid only for duration of this session, do not sign out until you confirm change!"), 'usercp_credentials')
             return redirect(reverse('usercp_credentials'))
             return redirect(reverse('usercp_credentials'))
-        message = Message(form.non_field_errors()[0], 'error')
+        message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = CredentialsChangeForm(request=request)
         form = CredentialsChangeForm(request=request)
 
 

+ 1 - 1
misago/apps/usercp/options/views.py

@@ -23,7 +23,7 @@ def options(request):
             request.user.save(force_update=True)
             request.user.save(force_update=True)
             messages.success(request, _("Forum options have been changed."), 'usercp_options')
             messages.success(request, _("Forum options have been changed."), 'usercp_options')
             return redirect(reverse('usercp'))
             return redirect(reverse('usercp'))
-        message = Message(form.non_field_errors()[0], 'error')
+        message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = UserForumOptionsForm(request=request, initial={
         form = UserForumOptionsForm(request=request, initial={
                                                              'newsletters': request.user.receive_newsletters,
                                                              'newsletters': request.user.receive_newsletters,

+ 1 - 1
misago/apps/usercp/signature/views.py

@@ -35,7 +35,7 @@ def signature(request):
             messages.success(request, _("Your signature has been changed."), 'usercp_signature')
             messages.success(request, _("Your signature has been changed."), 'usercp_signature')
             return redirect(reverse('usercp_signature'))
             return redirect(reverse('usercp_signature'))
         else:
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = SignatureForm(request=request, initial={'signature': request.user.signature})
         form = SignatureForm(request=request, initial={'signature': request.user.signature})
 
 

+ 2 - 2
misago/apps/usercp/username/views.py

@@ -30,7 +30,7 @@ def username(request):
     message = request.messages.get_message('usercp_username')
     message = request.messages.get_message('usercp_username')
     if request.method == 'POST':
     if request.method == 'POST':
         if not changes_left:
         if not changes_left:
-            message = Message(_("You have exceeded the maximum number of name changes."), 'error')
+            message = Message(_("You have exceeded the maximum number of name changes."), messages.ERROR)
             form = UsernameChangeForm(request=request)
             form = UsernameChangeForm(request=request)
         else:
         else:
             org_username = request.user.username
             org_username = request.user.username
@@ -57,7 +57,7 @@ def username(request):
                     User.objects.filter(id__in=alerted_users).update(alerts=F('alerts') + 1)
                     User.objects.filter(id__in=alerted_users).update(alerts=F('alerts') + 1)
                 # Hop back
                 # Hop back
                 return redirect(reverse('usercp_username'))
                 return redirect(reverse('usercp_username'))
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
     else:
         form = UsernameChangeForm(request=request)
         form = UsernameChangeForm(request=request)