From f766f6a2a87b922ad367538c8436e185026c8ca1 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 31 May 2018 19:24:28 +0200 Subject: Widget: add a restore button on inadequate clean of a value --- .../templates/blocks/JQueryAutocomplete.js | 7 ++++ ishtar_common/widgets.py | 41 +++++++++++++++++----- 2 files changed, 39 insertions(+), 9 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/templates/blocks/JQueryAutocomplete.js b/ishtar_common/templates/blocks/JQueryAutocomplete.js index 53a5e18ae..2d2bbad9d 100644 --- a/ishtar_common/templates/blocks/JQueryAutocomplete.js +++ b/ishtar_common/templates/blocks/JQueryAutocomplete.js @@ -23,6 +23,13 @@ $(function() { $('#id_select_{{field_id}}').val(null); }); + $(document).on("click", '#id_{{field_id}}_previous_button', function(){ + $('#id_{{field_id}}').val($('#id_{{field_id}}_previous').val()); + $('#id_select_{{field_id}}').val( + $('#id_{{field_id}}_previous_label').html() + ); + $('#id_{{field_id}}').change(); + }); {% if dynamic_limit %}{% for item_id in dynamic_limit %} $('#{{item_id}}').change(function(){ diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index ca4036f4c..ec3f8b011 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -411,16 +411,39 @@ class JQueryAutoComplete(forms.TextInput): new = u''\ u'+' % url_new - html += u"""%(new)s\ -\ + + old_value = "" + if 'value' in attrs_select and attrs_select['value']: + old_value = u""" + {} {} + +""".format( + _(u"Previous value:"), + attrs_hidden['id'] + u"_previous_label", + attrs_select['value'], + attrs_hidden['id'] + u"_previous_button", + ) + attrs_hidden_previous = attrs_hidden.copy() + attrs_hidden_previous['name'] += u"_previous" + attrs_hidden_previous['id'] += u"_previous" + old_value += u"".format( + flatatt(attrs_hidden_previous)) + + html += u""" +{new}\ +\ +{old_value} - """ % { - 'attrs_select': flatatt(attrs_select), - 'attrs_hidden': flatatt(attrs_hidden), - 'js': self.render_js(name), - 'new': new - } + {js}//--> + """.format( + old_value=old_value, + attrs_select=flatatt(attrs_select), + attrs_hidden=flatatt(attrs_hidden), + js=self.render_js(name), new=new + ) return html -- cgit v1.2.3