summaryrefslogtreecommitdiff
path: root/ishtar_common/widgets.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/widgets.py')
-rw-r--r--ishtar_common/widgets.py57
1 files changed, 27 insertions, 30 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 93352ccf3..724e5d08c 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -475,57 +475,54 @@ class ImageFileInput(ClearableFileInput):
return value
-class SquareMeterWidget(forms.TextInput):
+class CustomWidget(forms.TextInput):
+ TEMPLATE = ""
+ EXTRA_DCT = {}
+
def render(self, name, value, attrs=None, renderer=None):
if not value:
value = u""
final_attrs = flatatt(
self.build_attrs(attrs, {"name": name, "value": value}))
dct = {'final_attrs': final_attrs,
- 'unit': settings.SURFACE_UNIT_LABEL,
'id': attrs['id'],
"safe_id": attrs['id'].replace('-', '_')}
- t = loader.get_template('blocks/SquareMeterWidget.html')
+ dct.update(self.EXTRA_DCT)
+ t = loader.get_template(self.TEMPLATE)
rendered = t.render(dct)
return mark_safe(rendered)
-class GramKilogramWidget(forms.TextInput):
- def render(self, name, value, attrs=None, renderer=None):
- if not value:
- value = u""
- final_attrs = flatatt(
- self.build_attrs(attrs, {"name": name, "value": value}))
- dct = {'final_attrs': final_attrs,
- 'unit': u"g",
- 'id': attrs['id'],
- "safe_id": attrs['id'].replace('-', '_')}
- t = loader.get_template('blocks/GramKilogramWidget.html')
- rendered = t.render(dct)
- return mark_safe(rendered)
+class SquareMeterWidget(CustomWidget):
+ TEMPLATE = 'widgets/SquareMeterWidget.html'
+ EXTRA_DCT = {'unit': settings.SURFACE_UNIT_LABEL}
-class CentimeterMeterWidget(forms.TextInput):
- def render(self, name, value, attrs=None, renderer=None):
- if not value:
- value = u""
- final_attrs = flatatt(
- self.build_attrs(attrs, {"name": name, "value": value}))
- dct = {'final_attrs': final_attrs,
- 'unit': u"cm",
- 'id': attrs['id'],
- "safe_id": attrs['id'].replace('-', '_')}
- t = loader.get_template('blocks/CentimeterMeterWidget.html')
- rendered = t.render(dct)
- return mark_safe(rendered)
+class GramKilogramWidget(CustomWidget):
+ TEMPLATE = 'widgets/GramKilogramWidget.html'
+ EXTRA_DCT = {'unit': "g"}
-AreaWidget = forms.TextInput
+class CentimeterMeterWidget(CustomWidget):
+ TEMPLATE = 'widgets/CentimeterMeterWidget.html'
+ EXTRA_DCT = {'unit': "cm"}
+
+AreaWidget = forms.TextInput
if settings.SURFACE_UNIT == 'square-metre':
AreaWidget = SquareMeterWidget
+class ISBNWidget(CustomWidget):
+ TEMPLATE = 'widgets/CheckTextWidget.html'
+ EXTRA_DCT = {'validator': "is_valid_isbn"}
+
+
+class ISSNWidget(CustomWidget):
+ TEMPLATE = 'widgets/CheckTextWidget.html'
+ EXTRA_DCT = {'validator': "is_valid_issn"}
+
+
class CheckboxInput(forms.CheckboxInput):
NO_FORM_CONTROL = True