123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- from django.contrib import messages
- from django.utils import timezone
- from django.utils.translation import ugettext_lazy as _
- from misago.admin.views import generic
- from misago.legal.forms import AgreementForm, SearchAgreementsForm
- from misago.legal.models import Agreement
- from misago.legal.utils import set_agreement_as_active
- class AgreementAdmin(generic.AdminBaseMixin):
- root_link = 'misago:admin:users:agreements:index'
- model = Agreement
- form = AgreementForm
- templates_dir = 'misago/admin/agreements'
- message_404 = _("Requested agreement does not exist.")
- def handle_form(self, form, request, target):
- form.save()
-
- if self.message_submit:
- messages.success(request, self.message_submit % {'title': target.get_final_title()})
- class AgreementsList(AgreementAdmin, generic.ListView):
- items_per_page = 30
- ordering = [
- ('-id', _("From newest")),
- ('id', _("From oldest")),
- ]
- search_form = SearchAgreementsForm
- selection_label = _('With agreements: 0')
- empty_selection_label = _('Select agreements')
- mass_actions = ({
- 'action': 'delete',
- 'icon': 'fa fa-times',
- 'name': _('Delete agreements'),
- 'confirmation': _('Are you sure you want to delete those agreements?')
- }, )
- def get_queryset(self):
- qs = super(AgreementsList, self).get_queryset()
- return qs.select_related()
- def action_delete(self, request, items):
- items.delete()
- Agreement.objects.invalidate_cache()
- messages.success(request, _("Selected agreements have been deleted."))
- class NewAgreement(AgreementAdmin, generic.ModelFormView):
- message_submit = _('New agreement "%(title)s" has been saved.')
-
- def handle_form(self, form, request, target):
- super(NewAgreement, self).handle_form(form, request, target)
- form.instance.set_created_by(request.user)
- form.instance.save()
- class EditAgreement(AgreementAdmin, generic.ModelFormView):
- message_submit = _('Agreement "%(title)s" has been edited.')
- def handle_form(self, form, request, target):
- super(EditAgreement, self).handle_form(form, request, target)
- form.instance.last_modified_on = timezone.now()
- form.instance.set_last_modified_by(request.user)
- form.instance.save()
- class DeleteAgreement(AgreementAdmin, generic.ButtonView):
- def button_action(self, request, target):
- target.delete()
- Agreement.objects.invalidate_cache()
- message = _('Agreement "%(title)s" has been deleted.')
- messages.success(request, message % {'title': target.get_final_title()})
- class SetAgreementAsActive(AgreementAdmin, generic.ButtonView):
- def button_action(self, request, target):
- set_agreement_as_active(target, commit=True)
- message = _('Agreement "%(title)s" has been set as active for type "%(type)s".')
- targets_names = {'title': target.get_final_title(), 'type': target.get_type_display()}
- messages.success(request, message % targets_names)
|