diff options
Diffstat (limited to 'ishtar/furnitures/widgets.py')
| -rw-r--r-- | ishtar/furnitures/widgets.py | 48 | 
1 files changed, 48 insertions, 0 deletions
| diff --git a/ishtar/furnitures/widgets.py b/ishtar/furnitures/widgets.py index 4217d5194..1ef83dd6e 100644 --- a/ishtar/furnitures/widgets.py +++ b/ishtar/furnitures/widgets.py @@ -39,6 +39,54 @@ class DeleteWidget(forms.CheckboxInput):          output.append('</td></tr>')
          return mark_safe('\n'.join(output))
 +class SquareMeterWidget(forms.TextInput):
 +    def render(self, name, value, attrs=None):
 +        final_attrs = flatatt(self.build_attrs(attrs, name=name, value=value))
 +        output = u'<input class="area_widget" type="text"%s> %s '\
 +                 u'(<span id="ha_%s">0</span> ha)' % (final_attrs,
 +                 settings.SURFACE_UNIT_LABEL, attrs['id'])
 +        output += """
 +<script type="text/javascript"><!--//
 +    function evaluate_%(safe_id)s(){
 +        value = parseFloat($("#%(id)s").val());
 +        if(!isNaN(value)){
 +            value = value/10000;
 +        } else {
 +            value = 0;
 +        }
 +        $("#ha_%(id)s").html(value);
 +    }
 +    $("#%(id)s").keyup(evaluate_%(safe_id)s);
 +    $(document).ready(evaluate_%(safe_id)s());
 +//--></script>
 +""" % {"id":attrs['id'], "safe_id":attrs['id'].replace('-', '_')}
 +        return mark_safe(output)
 +
 +AreaWidget = forms.TextInput
 +if settings.SURFACE_UNIT == 'square-metre':
 +    global AreaWidget
 +    AreaWidget = SquareMeterWidget
 +
 +class JQueryDate(forms.TextInput):
 +    def render(self, name, value=None, attrs=None):
 +        rendered = super(JQueryDate, self).render(name, value, attrs)
 +        rendered += """
 +<script type="text/javascript"><!--//
 +    $(function() {
 +        $("#id_%(name)s").datepicker($.datepicker.regional["%(country)s"]);
 +        var val = $("#id_%(name)s").val();
 +        if(val){
 +            var dtp = $.datepicker.parseDate('yy-mm-dd', val);
 +            val = $.datepicker.formatDate(
 +                    $.datepicker.regional["%(country)s"]['dateFormat'],
 +                    dtp);
 +            $("#id_%(name)s").val(val);
 +        }
 +    });
 +//--></script>
 +""" % {"name":name, "country":settings.COUNTRY}
 +        return rendered
 +
  class JQueryDate(forms.TextInput):
      def render(self, name, value=None, attrs=None):
          rendered = super(JQueryDate, self).render(name, value, attrs)
 | 
