prefixesadmin.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from django.contrib import messages
  2. from django.utils.translation import ugettext_lazy as _
  3. from misago.admin.views import generic
  4. from misago.core import cachebuster
  5. from misago.threads.models import Prefix
  6. from misago.threads.forms.admin import PrefixForm
  7. class PrefixesAdmin(generic.AdminBaseMixin):
  8. root_link = 'misago:admin:forums:prefixes:index'
  9. Model = Prefix
  10. Form = PrefixForm
  11. templates_dir = 'misago/admin/prefixes'
  12. message_404 = _("Requested thread prefix does not exist.")
  13. def handle_form(self, form, request, target):
  14. target.save()
  15. target.forums.clear()
  16. if form.cleaned_data.get('forums'):
  17. target.forums.add(*[f for f in form.cleaned_data.get('forums')])
  18. Prefix.objects.clear_cache()
  19. if self.message_submit:
  20. messages.success(request, self.message_submit % target.name)
  21. class PrefixesList(PrefixesAdmin, generic.ListView):
  22. ordering = (('name', None),)
  23. class NewPrefix(PrefixesAdmin, generic.ModelFormView):
  24. message_submit = _('New prefix "%s" has been saved.')
  25. class EditPrefix(PrefixesAdmin, generic.ModelFormView):
  26. message_submit = _('Prefix "%s" has been edited.')
  27. class DeletePrefix(PrefixesAdmin, generic.ButtonView):
  28. def button_action(self, request, target):
  29. target.delete()
  30. message = _('Prefix "%s" has been deleted.')
  31. messages.success(request, message % unicode(target.name))