warnings.py 1006 B

12345678910111213141516171819202122232425262728293031
  1. from django.utils.translation import ugettext_lazy as _
  2. import floppyforms as forms
  3. from misago.acl.builder import BaseACL
  4. from misago.forms import YesNoSwitch
  5. def make_form(request, role, form):
  6. if role.special != 'guest':
  7. form.base_fields['can_warn_members'] = forms.BooleanField(label=_("Can warn members"),
  8. widget=YesNoSwitch, initial=False, required=False)
  9. form.fieldsets.append((
  10. _("Warning Members"),
  11. ('can_warn_members',)
  12. ))
  13. class WarningsACL(BaseACL):
  14. def can_warn_members(self):
  15. return self.acl['can_warn_members']
  16. def build(acl, roles):
  17. acl.warnings = WarningsACL()
  18. acl.warnings.acl['can_warn_members'] = False
  19. for role in roles:
  20. try:
  21. if role['can_warn_members']:
  22. acl.warnings.acl['can_warn_members'] = True
  23. except KeyError:
  24. pass