diff options
-rw-r--r-- | archaeological_finds/forms.py | 2 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/JQueryAutocomplete.js | 7 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 41 | ||||
-rw-r--r-- | version.py | 4 |
4 files changed, 42 insertions, 12 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index ac58780f0..5614118ec 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -101,7 +101,7 @@ class RecordFormSelection(CustomForm, forms.Form): base_models = ['get_first_base_find'] associated_models = {'get_first_base_find__context_record': ContextRecord} get_first_base_find__context_record = forms.IntegerField( - label=_(u"Context record"), required=False, + label=_(u"Context record"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-contextrecord'), associated_model=ContextRecord), 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'<span class="input-group-append">'\ u'<a href="#" class="add-button input-group-text" '\ u'onclick="open_window(\'%s\');">+</a></span></div>' % url_new - html += u"""<input%(attrs_select)s/>%(new)s\ -<input type="hidden"%(attrs_hidden)s/>\ + + old_value = "" + if 'value' in attrs_select and attrs_select['value']: + old_value = u"""<span class='previous-value'> + <em>{}</em> <span id="{}">{}</span> + <button class="btn btn-secondary small-button" type="button" + id="{}"> + <i class="fa fa-refresh" aria-hidden="true"></i> + </button> +</span>""".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"<input type='hidden'{}>".format( + flatatt(attrs_hidden_previous)) + + html += u""" +<input{attrs_select}/>{new}\ +<input type="hidden"{attrs_hidden}/>\ +{old_value} <script type="text/javascript"><!--// - %(js)s//--></script> - """ % { - 'attrs_select': flatatt(attrs_select), - 'attrs_hidden': flatatt(attrs_hidden), - 'js': self.render_js(name), - 'new': new - } + {js}//--></script> + """.format( + old_value=old_value, + attrs_select=flatatt(attrs_select), + attrs_hidden=flatatt(attrs_hidden), + js=self.render_js(name), new=new + ) return html diff --git a/version.py b/version.py index 88072ec7f..880866b43 100644 --- a/version.py +++ b/version.py @@ -1,5 +1,5 @@ -# 2.1.master.3 -VERSION = (2, 1, 'master', 3) +# 2.1.master.4 +VERSION = (2, 1, 'master', 4) def get_version(): |