summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-05-31 19:24:28 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-05-31 19:24:28 +0200
commitf766f6a2a87b922ad367538c8436e185026c8ca1 (patch)
tree44312eee59680ac8674fa488fa1a17789ca2a3d3
parent255232a0186e5f8da1ec4ca32588ce84927b7640 (diff)
downloadIshtar-f766f6a2a87b922ad367538c8436e185026c8ca1.tar.bz2
Ishtar-f766f6a2a87b922ad367538c8436e185026c8ca1.zip
Widget: add a restore button on inadequate clean of a value
-rw-r--r--archaeological_finds/forms.py2
-rw-r--r--ishtar_common/templates/blocks/JQueryAutocomplete.js7
-rw-r--r--ishtar_common/widgets.py41
-rw-r--r--version.py4
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():