fields.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from mptt.forms import TreeNodeChoiceField
  2. from recaptcha.client.captcha import API_SSL_SERVER, API_SERVER, VERIFY_SERVER
  3. from floppyforms import fields, widgets
  4. from django.utils.html import conditional_escape, mark_safe
  5. from django.utils.translation import ugettext_lazy as _
  6. from misago.forms.widgets import ReCaptchaWidget
  7. class ForumChoiceField(TreeNodeChoiceField):
  8. """
  9. Custom forum choice field
  10. """
  11. widget = widgets.Select
  12. def __init__(self, *args, **kwargs):
  13. kwargs['level_indicator'] = u'- - '
  14. super(ForumChoiceField, self).__init__(*args, **kwargs)
  15. def _get_level_indicator(self, obj):
  16. level = getattr(obj, obj._mptt_meta.level_attr)
  17. return mark_safe(conditional_escape(self.level_indicator) * (level - 1))
  18. class ReCaptchaField(fields.CharField):
  19. widget = ReCaptchaWidget
  20. api_error = None
  21. def __init__(self, *args, **kwargs):
  22. kwargs['label'] = _("Verification Code")
  23. kwargs['help_text'] = _("Enter the code from image into the text field.")
  24. kwargs['required'] = False
  25. super(ReCaptchaField, self).__init__(*args, **kwargs)
  26. class QACaptchaField(fields.CharField):
  27. pass