diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-12-03 17:41:46 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-12-03 17:41:46 +0100 |
commit | 40006039c77f3e6a689ad75e53e8ede6b8e531ec (patch) | |
tree | dbfedfc6709f4a2f80d72382ba3450ee9fed02b7 /ishtar_common | |
parent | 07dc587a9441033d48ec17a28d2cfac5fb6b8fbe (diff) | |
download | Ishtar-40006039c77f3e6a689ad75e53e8ede6b8e531ec.tar.bz2 Ishtar-40006039c77f3e6a689ad75e53e8ede6b8e531ec.zip |
cm->m / g->kg widget
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/templates/blocks/CentimeterMeterWidget.html | 21 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/GramKilogramWidget.html | 21 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 30 |
3 files changed, 72 insertions, 0 deletions
diff --git a/ishtar_common/templates/blocks/CentimeterMeterWidget.html b/ishtar_common/templates/blocks/CentimeterMeterWidget.html new file mode 100644 index 000000000..00c1614b5 --- /dev/null +++ b/ishtar_common/templates/blocks/CentimeterMeterWidget.html @@ -0,0 +1,21 @@ +<div class="input-group"> + <input class="area_widget form-control" type="text"{{final_attrs|safe}}> + <div class="input-group-append"> + <div class="input-group-text"> + {{unit}} (<span id="meter_{{id}}">0</span> m) + </div> + </div> +</div> +<script type="text/javascript"><!--// + function evaluate_{{safe_id}}(){ + value = parseFloat($("#{{id}}").val()); + if(!isNaN(value)){ + value = value/100; + } else { + value = 0; + } + $("#meter_{{id}}").html(value); + } + $("#{{id}}").keyup(evaluate_{{safe_id}}); + $(document).ready(evaluate_{{safe_id}}()); +//--></script> diff --git a/ishtar_common/templates/blocks/GramKilogramWidget.html b/ishtar_common/templates/blocks/GramKilogramWidget.html new file mode 100644 index 000000000..27c066d13 --- /dev/null +++ b/ishtar_common/templates/blocks/GramKilogramWidget.html @@ -0,0 +1,21 @@ +<div class="input-group"> + <input class="area_widget form-control" type="text"{{final_attrs|safe}}> + <div class="input-group-append"> + <div class="input-group-text"> + {{unit}} (<span id="kg_{{id}}">0</span> kg) + </div> + </div> +</div> +<script type="text/javascript"><!--// + function evaluate_{{safe_id}}(){ + value = parseFloat($("#{{id}}").val()); + if(!isNaN(value)){ + value = value/1000; + } else { + value = 0; + } + $("#kg_{{id}}").html(value); + } + $("#{{id}}").keyup(evaluate_{{safe_id}}); + $(document).ready(evaluate_{{safe_id}}()); +//--></script> diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index f668ee534..326966064 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -470,6 +470,36 @@ class SquareMeterWidget(forms.TextInput): 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 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) + + AreaWidget = forms.TextInput if settings.SURFACE_UNIT == 'square-metre': |