12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- from django.contrib import messages
- from django.utils.translation import ugettext_lazy as _
- from misago.admin.views import generic
- from misago.core import cachebuster
- from misago.threads.models import Label
- from misago.threads.forms.admin import LabelForm
- class LabelsAdmin(generic.AdminBaseMixin):
- root_link = 'misago:admin:categories:labels:index'
- Model = Label
- Form = LabelForm
- templates_dir = 'misago/admin/labels'
- message_404 = _("Requested thread label does not exist.")
- def handle_form(self, form, request, target):
- target.save()
- target.categories.clear()
- if form.cleaned_data.get('categories'):
- target.categories.add(*[f for f in form.cleaned_data.get('categories')])
- Label.objects.clear_cache()
- if self.message_submit:
- messages.success(
- request, self.message_submit % {'name': target.name})
- class LabelsList(LabelsAdmin, generic.ListView):
- ordering = (('name', None),)
- class NewLabel(LabelsAdmin, generic.ModelFormView):
- message_submit = _('New label "%(name)s" has been saved.')
- class EditLabel(LabelsAdmin, generic.ModelFormView):
- message_submit = _('Label "%(name)s" has been edited.')
- class DeleteLabel(LabelsAdmin, generic.ButtonView):
- def button_action(self, request, target):
- target.delete()
- message = _('Label "%(name)s" has been deleted.')
- messages.success(request, message % {'name': target.name})
|