diff options
-rw-r--r-- | archaeological_operations/models.py | 25 | ||||
-rw-r--r-- | ishtar_common/forms.py | 2 | ||||
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 29 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/bs_field_snippet.html | 3 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/bs_form_snippet.html | 25 | ||||
-rw-r--r-- | ishtar_common/templates/widgets/search_input.html | 8 |
6 files changed, 51 insertions, 41 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 688c12bea..912351f9b 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -364,14 +364,25 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, # alternative names of fields for searches ALT_NAMES = { - 'periods__pk': pgettext_lazy( - "key for text search (no accent, no spaces)", u"period"), - 'operation_type__pk': pgettext_lazy( - "key for text search (no accent, no spaces)", u"operation-type"), - 'remains__pk': pgettext_lazy( - "key for text search (no accent, no spaces)", u"remain"), + 'periods': ( + pgettext_lazy( + "key for text search (no accent, no spaces)", u"period"), + 'periods__pk' + ), + 'operation_type': ( + pgettext_lazy( + "key for text search (no accent, no spaces)", u"operation-type" + ), + 'operation_type__pk' + ), + 'remains': ( + pgettext_lazy( + "key for text search (no accent, no spaces)", u"remain"), + 'remains__pk' + ), } - EXTRA_REQUEST_KEYS.update(dict([(v, k) for k, v in ALT_NAMES.items()])) + for v in ALT_NAMES.values(): + EXTRA_REQUEST_KEYS[v[0]] = v[1] # fields definition creation_date = models.DateField(_(u"Creation date"), diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index bb468eff1..c1e699ab5 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -471,7 +471,7 @@ class TableSelect(IshtarForm): cls += " search-vector" self.fields[k].widget.attrs['class'] = cls if k in ALT_NAMES: - self.fields[k].alt_name = ALT_NAMES[k] + self.fields[k].alt_name = ALT_NAMES[k][0] else: self.fields[k].alt_name = k key = self.fields.keys()[0] diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index b5d701528..2f04775c5 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -529,12 +529,12 @@ function get_label_from_input(input){ if (input.parent().filter('.input-group').length){ input = input.parent(); } - return "<strong>" + input.prev().html() + "</strong>"; + return input.parent().attr('data-alt-name'); } -function update_search_resume(){ - var summary = ""; +function update_search_field(){ + var query = ""; var inputs = $('#wizard-form input').map( function(){ var v = ""; @@ -555,8 +555,8 @@ function update_search_resume(){ v = $(this).val(); } if (v == "") return; - if (summary) summary += " ; "; - summary += get_label_from_input(item_for_label) + " " + v; + if (query) query += " "; + query += get_label_from_input(item_for_label) + '="' + v + '"'; } ).get(); var selects = $('#wizard-form select').each( @@ -567,18 +567,20 @@ function update_search_resume(){ if(item_for_label.filter('optgroup').length){ item_for_label = item_for_label.parent(); } - if (summary) summary += " ; "; - summary += get_label_from_input(item_for_label) + " " + $(this).text(); + if (query) query += " "; + query += get_label_from_input(item_for_label) + '="' + + $(this).text() + '"'; }); } ); - if (summary != ""){ - $('#advanced-search-resume-content').html(summary); - $('#advanced-search-resume').show(); - } else { - $('#advanced-search-resume').hide(); + var value = $("#id_search_vector").val(); + if (value){ + value += " "; } + value += query; + document.getElementById('wizard-form').reset(); + value = $("#id_search_vector").val(value); } var sheet_list = new Array(); @@ -610,10 +612,9 @@ function register_advanced_search(){ $(".advanced-search-reset").click( function(){ document.getElementById('wizard-form').reset(); - $('#advanced-search-resume').hide(); } ); - $(".advanced-search-valid").click(update_search_resume); + $(".advanced-search-valid").click(update_search_field); } diff --git a/ishtar_common/templates/blocks/bs_field_snippet.html b/ishtar_common/templates/blocks/bs_field_snippet.html index 4c4e17bf1..a164c81d8 100644 --- a/ishtar_common/templates/blocks/bs_field_snippet.html +++ b/ishtar_common/templates/blocks/bs_field_snippet.html @@ -1,5 +1,6 @@ {% load i18n %} - <div class="form-group {% if field.field.widget.attrs.cols %}col-lg-12{% else %}col-lg-6{% endif %}{% if field.errors %} is-invalid{% endif %}{% if field.field.required %} required{% endif %}"> + <div class="form-group {% if field.field.widget.attrs.cols %}col-lg-12{% else %}col-lg-6{% endif %}{% if field.errors %} is-invalid{% endif %}{% if field.field.required %} required{% endif %}" + data-alt-name="{{field.field.alt_name}}"> {{ field.label_tag }} {% if field.help_text %} <div class="input-group"> diff --git a/ishtar_common/templates/blocks/bs_form_snippet.html b/ishtar_common/templates/blocks/bs_form_snippet.html index 74dbadf5c..820ef8c99 100644 --- a/ishtar_common/templates/blocks/bs_form_snippet.html +++ b/ishtar_common/templates/blocks/bs_form_snippet.html @@ -17,7 +17,7 @@ {{field}} {% elif field.name == 'search_vector' and forloop.counter0 == 0 %} <div class="form-row"> - <div class="form-group col-lg-10"> + <div class="form-group col-lg-12"> {{field|safe}} {% if field.help_text %} <small><a data-toggle="collapse" href="#{{field.auto_id}}_help" @@ -28,14 +28,6 @@ {{ field.errors }} </div>{% endif %} </div> - <div class="form-group col-lg"> - <p class="text-right"> - <button type="button" class="btn btn-secondary" data-toggle="modal" - data-target="#modal-advanced-search"> - {% trans "Advanced search" %} <i class="fa fa-cogs" aria-hidden="true"></i> - </button> - </p> - </div> {% if field.help_text %} <div class="collapse" id="{{field.auto_id}}_help"> @@ -45,10 +37,6 @@ </div> {% endif %} </div> -<div class="alert alert-info" role="alert" id="advanced-search-resume"> - <strong><i class="fa fa-cogs" aria-hidden="true"></i>{% trans ":" %} </strong> - <span id="advanced-search-resume-content"></span> -</div> {% else %} {% if search and forloop.counter0 == 1 %} <div class="modal" id="modal-advanced-search" tabindex="-1" role="dialog" @@ -56,7 +44,10 @@ <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> - <h5>{% trans "Advanced search" %}</h5> + <h5>{% trans "Criteria search" %}</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> </div> <div class="modal-body form-row"> {% endif %} @@ -86,10 +77,10 @@ {% if search and forloop.counter0 >= 1 %} </div> <div class="modal-footer"> - <button type="button" class="btn btn-secondary advanced-search-reset" - data-dismiss="modal">{% trans 'Reset' %}</button> + <button type="button" class="btn btn-secondary" + data-dismiss="modal">{% trans 'Close' %}</button> <button type="button" class="btn btn-primary advanced-search-valid" - data-dismiss="modal">{% trans "Validate" %}</button> + data-dismiss="modal">{% trans "Add" %}</button> </div> </div> </div> diff --git a/ishtar_common/templates/widgets/search_input.html b/ishtar_common/templates/widgets/search_input.html index c68d2347d..1d7521a2a 100644 --- a/ishtar_common/templates/widgets/search_input.html +++ b/ishtar_common/templates/widgets/search_input.html @@ -1,4 +1,4 @@ -<div class="input-group search-widget"> +{% load i18n %}<div class="input-group search-widget"> <span class="input-group-prepend"> <span class="input-group-text"> <i class="fa fa-search" aria-hidden="true"></i> @@ -6,6 +6,12 @@ </span> <input type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value|stringformat:'s' }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} /> <span class="input-group-append"> + <button type="button" class="btn btn-secondary" data-toggle="modal" + data-target="#modal-advanced-search"> + <i class="fa fa-cogs" aria-hidden="true"></i> + </button> + </span> + <span class="input-group-append"> <span class="input-group-text clear-search"> <i class="fa fa-times" aria-hidden="true"></i> </span> |