mixins.py 1.4 KB

123456789101112131415161718192021
  1. from django import forms
  2. from django.utils.translation import ungettext
  3. from misago.utils.strings import slugify
  4. class ValidateThreadNameMixin(object):
  5. def clean_thread_name(self):
  6. data = self.cleaned_data['thread_name']
  7. slug = slugify(data)
  8. if len(slug) < self.request.settings['thread_name_min']:
  9. raise forms.ValidationError(ungettext(
  10. "Thread name must contain at least one alpha-numeric character.",
  11. "Thread name must contain at least %(count)d alpha-numeric characters.",
  12. self.request.settings['thread_name_min']
  13. ) % {'count': self.request.settings['thread_name_min']})
  14. if len(data) > self.request.settings['thread_name_max']:
  15. raise forms.ValidationError(ungettext(
  16. "Thread name cannot be longer than %(count)d character.",
  17. "Thread name cannot be longer than %(count)d characters.",
  18. self.request.settings['thread_name_max']
  19. ) % {'count': self.request.settings['thread_name_max']})
  20. return data