0.5: Django 3.2 support, drop Django<1.11, Python<3.6, remove some compatibility...
[fnpdjango.git] / fnpdjango / utils / fields.py
1 from django.forms import CharField, ValidationError
2 from .text.textilepl import textile_pl
3
4 try:
5     from markupfield.fields import MarkupField
6 except ImportError:
7     MarkupField = None
8 else:
9     def validate_textile(value):
10         try:
11             textile_pl(value)
12         except Exception:
13             raise ValidationError('Syntax error in markup.')
14
15
16     class TextileFormField(CharField):
17         default_validators = [validate_textile]
18
19
20     class TextileField(MarkupField):
21         def formfield(self, **kwargs):
22             defaults = {'form_class': TextileFormField}
23             defaults.update(kwargs)
24             return super(MarkupField, self).formfield(**defaults)