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:
                 forum.sync()
                 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):
         clean_checked = []
@@ -81,9 +81,9 @@ class List(ListWidget):
             if item.pk in checked and item.type == 'forum':
                 clean_checked.append(item.pk)
         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
-        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):
@@ -200,11 +200,11 @@ class NewNode(FormWidget):
         }
 
         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':
-            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':
-            return new_forum, Message(_('New Redirect has been created.'), 'success')
+            return new_forum, Message(_('New Redirect has been created.'), messages.SUCCESS)
 
 
 class Up(ButtonWidget):
@@ -217,8 +217,8 @@ class Up(ButtonWidget):
         previous_sibling = target.get_previous_sibling()
         if previous_sibling:
             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):
@@ -231,8 +231,8 @@ class Down(ButtonWidget):
         next_sibling = target.get_next_sibling()
         if next_sibling:
             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):
@@ -330,7 +330,7 @@ class Edit(FormWidget):
         if self.original_name != target.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):
@@ -386,4 +386,4 @@ class Delete(FormWidget):
         Forum.objects.populate_tree(True)
         with UpdatingMonitor() as cm:
             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):
         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):
@@ -89,7 +89,7 @@ class New(FormWidget):
         for rank in form.cleaned_data['ranks']:
             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):
@@ -132,7 +132,7 @@ class Edit(FormWidget):
             target.ranks.add(rank)
 
         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):
@@ -143,7 +143,7 @@ class Delete(ButtonWidget):
 
     def action(self, target):
         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):

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

@@ -42,10 +42,10 @@ class List(ListWidget):
 
     def action_delete(self, items, checked):
         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()
-        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):
@@ -72,7 +72,7 @@ class New(FormWidget):
         new_policy.clean()
         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):
         if not request.user.is_god():
@@ -116,7 +116,7 @@ class Edit(FormWidget):
         target.clean()
         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):
         if not request.user.is_god():
@@ -134,10 +134,10 @@ class Delete(ButtonWidget):
 
     def action(self, target):
         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()
-        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):
@@ -196,7 +196,7 @@ class Apply(FormWidget):
                     messages.info(request, _("No users have been deleted."), self.admin.id)
                 return redirect(reverse('admin_prune_users'))
             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(),
                                   {

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

@@ -1,6 +1,7 @@
 from django.core.urlresolvers import reverse as django_reverse
 from django.utils.translation import ugettext as _
 import floppyforms as forms
+from misago import messages
 from misago.admin import site
 from misago.apps.admin.widgets import *
 from misago.forms import Form
@@ -50,7 +51,7 @@ class List(ListWidget):
         for item in page_items:
             item.order = cleaned_data['pos_' + str(item.pk)]
             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):
         return page_items.order_by('order')
@@ -63,7 +64,7 @@ class List(ListWidget):
 
     def action_delete(self, items, checked):
         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):
@@ -97,7 +98,7 @@ class New(FormWidget):
         new_rank.save(force_insert=True)
         for role in form.cleaned_data['roles']:
             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):
@@ -151,7 +152,7 @@ class Edit(FormWidget):
 
         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):
@@ -162,4 +163,4 @@ class Delete(ButtonWidget):
 
     def action(self, target):
         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:
             if item.pk in checked:
                 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():
-                    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:
-                    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()
-        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):
@@ -73,7 +73,7 @@ class New(FormWidget):
     def submit_form(self, form, target):
         new_role = Role(name=form.cleaned_data['name'])
         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):
@@ -112,7 +112,7 @@ class Edit(FormWidget):
         target.save(force_update=True)
         with UpdatingMonitor() as cm:
             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):
@@ -166,7 +166,7 @@ class Forums(ListWidget):
         role_perms['forums'] = perms
         self.role.permissions = role_perms
         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):
         self.request = request
@@ -230,7 +230,7 @@ class ACL(FormWidget):
         with UpdatingMonitor() as cm:
             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):
@@ -241,11 +241,11 @@ class Delete(ButtonWidget):
 
     def action(self, target):
         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():
-            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:
-            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()
-        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,
                                                        }))
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         form = SettingsGroupForm(request=request)
 
@@ -99,7 +99,7 @@ def settings_search(request):
                                                 '%(count)d settings that match search criteria have been found.',
                                                 len(found_settings)) % {
                                                     'count': len(found_settings),
-                                                }, 'success')
+                                                }, messages.SUCCESS)
                 else:
                     raise SearchException(_('No settings that match search criteria have been found.'))
             else:
@@ -107,7 +107,7 @@ def settings_search(request):
         else:
             raise SearchException(_('Search query is invalid.'))
     except SearchException as e:
-        message = Message(unicode(e), 'error')
+        message = Message(unicode(e), messages.ERROR)
     return render_to_response('settings/search_results.html',
                               {
                               '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
     """
-    statistics_providers = []
     models_map = {}
     for model in models.get_models():
         try:
@@ -47,7 +46,7 @@ def form(request):
                 date_start = date_temp
             # Assert that dates are correct
             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']):
                 message = check_dates(date_start, date_end, form.cleaned_data['stats_precision'])
             else:
@@ -59,7 +58,7 @@ def form(request):
                                                        'precision': form.cleaned_data['stats_precision']
                                                         }))
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         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 == 'month' and date_diff / 2592000 > 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)
           or (precision == 'week' and date_diff / 604800 < 1)
           or (precision == 'month' and date_diff / 2592000 < 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
 
 

+ 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.shortcuts import redirect
 from django.utils.translation import ugettext as _
+from misago import messages
 from misago.admin import site
 from misago.apps.admin.widgets import *
 from misago.conf import settings
@@ -105,14 +106,14 @@ class List(ListWidget):
                                 _("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):
         # First loop - check for errors
         for user in items:
             if user.pk in checked:
                 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
         for user in items:
@@ -126,14 +127,14 @@ class List(ListWidget):
                                 _("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):
         # First loop - check for errors
         for user in items:
             if user.pk in checked:
                 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
         for user in items:
@@ -141,14 +142,14 @@ class List(ListWidget):
                 user.lock_avatar()
                 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):
         # First loop - check for errors
         for user in items:
             if user.pk in checked:
                 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
         for user in items:
@@ -158,7 +159,7 @@ class List(ListWidget):
                 user.signature_preparsed = ''
                 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):
         for user in items:
@@ -168,14 +169,14 @@ class List(ListWidget):
                 user.signature_ban = False
                 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):
         # First loop - check for errors
         for user in items:
             if user.pk in checked:
                 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
         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):
         for user in items:
             if user.pk in checked:
                 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():
-                    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:
             if user.pk in checked:
@@ -212,22 +213,22 @@ class List(ListWidget):
             forum.save(force_update=True)
 
         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):
         for user in items:
             if user.pk in checked:
                 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():
-                    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:
             if user.pk in checked:
                 user.delete()
 
         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):
@@ -262,7 +263,7 @@ class New(FormWidget):
         new_user.make_acl_key(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):
@@ -348,7 +349,7 @@ class Edit(FormWidget):
 
         target.make_acl_key(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):
@@ -359,12 +360,12 @@ class Delete(ButtonWidget):
 
     def action(self, target):
         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():
-            return Message(_('You cannot delete protected member.'), 'error'), False
+            return Message(_('You cannot delete protected member.'), messages.ERROR), False
         target.delete()
         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):

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

@@ -318,7 +318,7 @@ class ListWidget(BaseWidget):
                         messages.add_message(request, message.type, message, self.admin.id)
                         return redirect(redirect_link)
                 else:
-                    message = Message(table_form.non_field_errors()[0], 'error')
+                    message = Message(table_form.non_field_errors()[0], messages.ERROR)
             else:
                 table_form = TableForm(request=request)
 
@@ -456,9 +456,9 @@ class FormWidget(BaseWidget):
                             pass
                         return redirect(self.get_fallback_link())
                 except ValidationError as e:
-                    message = Message(e.messages[0], 'error')
+                    message = Message(e.messages[0], messages.ERROR)
             else:
-                message = Message(form.non_field_errors()[0], 'error')
+                message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             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.filter(username_slug__startswith=username).order_by('username_slug')[:10]
         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:
-            message = Message(search_form.non_field_errors()[0], 'error')
+            message = Message(search_form.non_field_errors()[0], messages.ERROR)
     else:
         search_form = QuickFindUserForm(request=request)
         if active_rank:

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

@@ -67,7 +67,7 @@ def form(request):
             User.objects.resync_monitor()
             return redirect(reverse('index'))
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
             if settings.registrations_jams:
                 SignInAttempt.objects.register_attempt(request.session.get_ip(request))
             # 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})
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         form = UserResetPasswordForm(request=request)
     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')
                 return redirect(success_redirect)
             except AuthException as e:
-                message = Message(e.error, 'error')
+                message = Message(e.error, messages.ERROR)
                 bad_password = e.password
                 banned_account = e.ban
                 not_active = e.activation
@@ -82,7 +82,7 @@ def signin(request):
                         request.jam.expires = timezone.now()
                         return redirect(reverse('sign_in'))
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         form = SignInForm(
                           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)
                 messages.success(self.request, _('Selected threads have been moved to "%(forum)s".') % {'forum': new_forum.name}, 'threads')
                 return None
-            self.message = Message(form.non_field_errors()[0], 'error')
+            self.message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             form = MoveThreadsForm(request=self.request, forum=self.forum)
         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)
                 messages.success(self.request, _('Selected threads have been merged into new one.'), 'threads')
                 return None
-            self.message = Message(form.non_field_errors()[0], 'error')
+            self.message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             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.utils.translation import ugettext as _
 import floppyforms as forms
+from misago import messages
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.forms import Form
@@ -77,14 +78,14 @@ class ThreadsListBaseView(ViewBase):
                             return response
                         return redirect(self.request.path)
                     except forms.ValidationError as e:
-                        self.message = Message(e.messages[0], 'error')
+                        self.message = Message(e.messages[0], messages.ERROR)
                 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:
                 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:
-                    self.message = Message(self.form.non_field_errors()[0], 'error')
+                    self.message = Message(self.form.non_field_errors()[0], messages.ERROR)
         else:
             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.utils import timezone
+from misago import messages
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.markdown import emojis, post_markdown
@@ -138,7 +139,7 @@ class PostingBaseView(ViewBase):
                         self.notify_users()
                         return self.response()
                     else:
-                        self.message = Message(form.non_field_errors()[0], 'error')
+                        self.message = Message(form.non_field_errors()[0], messages.ERROR)
             else:
                 form = self.form_type(request=request, forum=self.forum, thread=self.thread, initial=self.form_initial_data())
         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)
                 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}))
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             form = SplitThreadForm(request=self.request, initial={
                                                                   'thread_name': _('[Split] %s') % self.thread.name,
@@ -125,7 +125,7 @@ class PostsModeration(object):
                     self.forum.save(force_update=True)
                 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}))
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             form = MovePostsForm(request=self.request)
         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)
                 messages.success(self.request, _('Thread has been moved to "%(forum)s".') % {'forum': new_forum.name}, 'threads')
                 return None
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             form = MoveThreadsForm(request=self.request, forum=self.forum)
         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.translation import ugettext as _
 import floppyforms as forms
+from misago import messages
 from misago.acl.exceptions import ACLError403, ACLError404
 from misago.apps.errors import error403, error404
 from misago.conf import settings
@@ -119,12 +120,12 @@ class ThreadBaseView(ViewBase):
                         return response
                     return redirect(self.request.path)
                 except forms.ValidationError as e:
-                    self.message = Message(e.messages[0], 'error')
+                    self.message = Message(e.messages[0], messages.ERROR)
             else:
                 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:
-                    self.message = Message(form.non_field_errors()[0], 'error')
+                    self.message = Message(form.non_field_errors()[0], messages.ERROR)
         else:
             self.thread_form = self.thread_form(request=self.request)
 
@@ -164,14 +165,14 @@ class ThreadBaseView(ViewBase):
                             return response
                         return redirect(self.request.path)
                     except forms.ValidationError as e:
-                        self.message = Message(e.messages[0], 'error')
+                        self.message = Message(e.messages[0], messages.ERROR)
                 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:
                 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:
-                    self.message = Message(posts_form.non_field_errors()[0], 'error')
+                    self.message = Message(posts_form.non_field_errors()[0], messages.ERROR)
         else:
             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.utils.encoding import smart_str
 from django.utils.translation import ugettext as _
-form misago import messages
+from misago import messages
 from misago.apps.errors import error404
 from misago.conf import settings
 from misago.decorators import block_guest
@@ -89,9 +89,9 @@ def gallery(request):
                 request.user.save(force_update=True)
                 messages.success(request, _("Your avatar has been changed to one from gallery."), 'usercp_avatar')
                 return redirect(reverse('usercp_avatar'))
-            message = Message(_("Selected Avatar is incorrect."), 'error')
+            message = Message(_("Selected Avatar is incorrect."), messages.ERROR)
         else:
-            message = Message(_("Request authorisation is invalid."), 'error')
+            message = Message(_("Request authorisation is invalid."), messages.ERROR)
 
     return render_to_response('usercp/avatar_gallery.html',
                               context_instance=RequestContext(request, {
@@ -154,9 +154,9 @@ def upload(request):
             except ValidationError:
                 request.user.delete_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:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         form = UploadAvatarForm(request=request)
 
@@ -215,9 +215,9 @@ def crop(request, upload=False):
                 messages.success(request, _("Your avatar has been cropped."), 'usercp_avatar')
                 return redirect(reverse('usercp_avatar'))
             except Exception:
-                message = Message(_("Form contains errors."), 'error')
+                message = Message(_("Form contains errors."), messages.ERROR)
         else:
-            message = Message(_("Request authorisation is invalid."), 'error')
+            message = Message(_("Request authorisation is invalid."), messages.ERROR)
 
 
     return render_to_response('usercp/avatar_crop.html',

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

@@ -36,7 +36,7 @@ def credentials(request):
             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')
             return redirect(reverse('usercp_credentials'))
-        message = Message(form.non_field_errors()[0], 'error')
+        message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         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)
             messages.success(request, _("Forum options have been changed."), 'usercp_options')
             return redirect(reverse('usercp'))
-        message = Message(form.non_field_errors()[0], 'error')
+        message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         form = UserForumOptionsForm(request=request, initial={
                                                              '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')
             return redirect(reverse('usercp_signature'))
         else:
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         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')
     if request.method == 'POST':
         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)
         else:
             org_username = request.user.username
@@ -57,7 +57,7 @@ def username(request):
                     User.objects.filter(id__in=alerted_users).update(alerts=F('alerts') + 1)
                 # Hop back
                 return redirect(reverse('usercp_username'))
-            message = Message(form.non_field_errors()[0], 'error')
+            message = Message(form.non_field_errors()[0], messages.ERROR)
     else:
         form = UsernameChangeForm(request=request)