123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from django.contrib import messages
- from django.utils.translation import gettext_lazy as _
- from misago.admin.views import generic
- from misago.users.forms.admin import BanForm, SearchBansForm
- from misago.users.models import Ban
- class BanAdmin(generic.AdminBaseMixin):
- root_link = "misago:admin:users:bans:index"
- model = Ban
- form = BanForm
- templates_dir = "misago/admin/bans"
- message_404 = _("Requested ban does not exist.")
- def handle_form(self, form, request, target):
- super().handle_form(form, request, target)
- Ban.objects.invalidate_cache()
- class BansList(BanAdmin, generic.ListView):
- items_per_page = 30
- ordering = [
- ("-id", _("From newest")),
- ("id", _("From oldest")),
- ("banned_value", _("A to z")),
- ("-banned_value", _("Z to a")),
- ]
- search_form = SearchBansForm
- selection_label = _("With bans: 0")
- empty_selection_label = _("Select bans")
- mass_actions = (
- {
- "action": "delete",
- "icon": "fa fa-times",
- "name": _("Remove bans"),
- "confirmation": _("Are you sure you want to remove those bans?"),
- },
- )
- def action_delete(self, request, items):
- items.delete()
- Ban.objects.invalidate_cache()
- messages.success(request, _("Selected bans have been removed."))
- class NewBan(BanAdmin, generic.ModelFormView):
- message_submit = _('New ban "%(name)s" has been saved.')
- class EditBan(BanAdmin, generic.ModelFormView):
- message_submit = _('Ban "%(name)s" has been edited.')
- class DeleteBan(BanAdmin, generic.ButtonView):
- def button_action(self, request, target):
- target.delete()
- Ban.objects.invalidate_cache()
- message = _('Ban "%(name)s" has been removed.')
- messages.success(request, message % {"name": target.name})
|