diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-10 16:49:03 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-13 18:26:03 +0200 |
commit | ae76035bc7fe939996dfff4e8fc8777c5686e60b (patch) | |
tree | 6c55db881e0a2b0639035a474956cd3fd6b01404 | |
parent | 71e370980efa9ff69cd176d6af431c99b9f080e4 (diff) | |
download | Ishtar-ae76035bc7fe939996dfff4e8fc8777c5686e60b.tar.bz2 Ishtar-ae76035bc7fe939996dfff4e8fc8777c5686e60b.zip |
Search widget: dynamic link for bookmark save
-rw-r--r-- | archaeological_context_records/forms.py | 6 | ||||
-rw-r--r-- | archaeological_files/forms.py | 18 | ||||
-rw-r--r-- | archaeological_finds/forms.py | 6 | ||||
-rw-r--r-- | archaeological_finds/forms_treatments.py | 24 | ||||
-rw-r--r-- | archaeological_operations/forms.py | 16 | ||||
-rw-r--r-- | archaeological_warehouse/forms.py | 12 | ||||
-rw-r--r-- | ishtar_common/forms_common.py | 24 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/forms/search_query.html | 2 | ||||
-rw-r--r-- | ishtar_common/templates/widgets/search_input.html | 6 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 11 |
10 files changed, 85 insertions, 40 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index 3267f806f..2fd3fee9a 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -60,8 +60,10 @@ class OperationFormSelection(CustomForm, forms.Form): class RecordSelect(CustomForm, TableSelect): form_admin_name = _(u"Context record - 001 - Search") form_slug = "contextrecord-001-search" - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-context-records', 'contextrecord' + )) label = forms.CharField(label=_(u"ID"), max_length=100) town = get_town_field() if settings.COUNTRY == 'fr': diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 96f12b9f5..645953a78 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -47,8 +47,10 @@ from bootstrap_datepicker.widgets import DatePicker class FileSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-files', 'file' + )) year = forms.IntegerField(label=_("Year")) numeric_reference = forms.IntegerField(label=_("Numeric reference")) internal_reference = forms.CharField(max_length=200, @@ -407,8 +409,10 @@ class FinalFileDeleteForm(FinalForm): class AdministrativeActFileModifySelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'administrativeact' + )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) if settings.COUNTRY == 'fr': @@ -436,8 +440,10 @@ class AdministrativeActFileModifySelect(TableSelect): class AdministrativeActFileSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'administrativeact' + )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) if settings.COUNTRY == 'fr': diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index f814b7fb4..0c9788d4f 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -408,8 +408,10 @@ DatingFormSet.form_slug = "find-040-dating" class FindSelect(CustomForm, TableSelect): form_admin_name = _(u"Find - 001 - Search") form_slug = "find-001-search" - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-finds', 'find' + )) base_finds__cache_short_id = forms.CharField(label=_(u"Short ID")) base_finds__cache_complete_id = forms.CharField(label=_(u"Complete ID")) label = forms.CharField(label=_(u"Free ID")) diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index f2a47e727..ae6152951 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -44,8 +44,10 @@ logger = logging.getLogger(__name__) class TreatmentSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-finds', 'treatment' + )) label = forms.CharField(label=_(u"Label")) other_reference = forms.CharField(label=_(u"Other ref.")) year = forms.IntegerField(label=_(u"Year")) @@ -322,8 +324,10 @@ class DashboardForm(IshtarForm): class AdministrativeActTreatmentSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'administrativeact' + )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) act_type = forms.ChoiceField(label=_("Act type"), choices=[]) @@ -393,8 +397,10 @@ class AdministrativeActTreatmentModifForm( class TreatmentFileSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-finds', 'treatmentfile' + )) name = forms.CharField(label=_(u"Name")) internal_reference = forms.CharField(label=_(u"Internal ref.")) year = forms.IntegerField(label=_(u"Year")) @@ -580,8 +586,10 @@ class DashboardTreatmentFileForm(IshtarForm): class AdministrativeActTreatmentFileSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'administrativeact' + )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) act_type = forms.ChoiceField(label=_("Act type"), choices=[]) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 29a86cc2e..acce3835b 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -474,8 +474,9 @@ RecordRelationsFormSet.form_slug = "operation-080-relations" class OperationSelect(TableSelect): _model = models.Operation - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'operation')) year = forms.IntegerField(label=_("Year")) operation_code = forms.IntegerField(label=_(u"Numeric reference")) if settings.COUNTRY == 'fr': @@ -1245,8 +1246,9 @@ class OperationDeletionForm(FinalForm): class SiteSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'archaeologicalsite')) reference = forms.CharField(label=_(u"Reference"), max_length=200, required=False) name = forms.CharField(label=_(u"Name"), max_length=200, required=False) @@ -1357,8 +1359,10 @@ class SiteUnderwaterForm(ManageOldType): class AdministrativeActOpeSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-operations', 'administrativeact' + )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) if settings.COUNTRY == 'fr': diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index e13255efc..09c64a7dc 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -79,8 +79,10 @@ SelectedDivisionFormset.form_slug = "warehouse-020-divisions" class WarehouseSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-warehouse', 'warehouse' + )) name = forms.CharField(label=_(u"Name")) warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"), choices=[]) towns = forms.CharField(label=_(u"Town")) @@ -245,8 +247,10 @@ class ContainerModifyForm(ContainerForm): class ContainerSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'archaeological-warehouse', 'container' + )) location = get_warehouse_field() container_type = forms.ChoiceField(label=_(u"Container type"), choices=[]) reference = forms.CharField(label=_(u"Ref.")) diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 397b87815..ec6f7bc96 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -338,8 +338,10 @@ class OrganizationForm(ManageOldType, NewItemForm): class OrganizationSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'ishtar-common', 'organization' + )) name = forms.CharField(label=_(u"Name"), max_length=300) organization_type = forms.ChoiceField(label=_(u"Type"), choices=[]) @@ -453,8 +455,10 @@ class BaseOrganizationForm(forms.ModelForm): class PersonSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'ishtar-common', 'person' + )) name = forms.CharField(label=_(u"Name"), max_length=200) surname = forms.CharField(label=_(u"Surname"), max_length=50) email = forms.CharField(label=_(u"Email"), max_length=75) @@ -582,8 +586,10 @@ class PersonUserFormSelection(PersonFormSelection): class IshtarUserSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'ishtar-common', 'ishtaruser' + )) username = forms.CharField(label=_(u"Username"), max_length=200) name = forms.CharField(label=_(u"Name"), max_length=200) surname = forms.CharField(label=_(u"Surname"), max_length=50) @@ -1172,8 +1178,10 @@ class DocumentForm(forms.ModelForm, CustomForm, ManageOldType): class DocumentSelect(TableSelect): - search_vector = forms.CharField(label=_(u"Full text search"), - widget=widgets.SearchWidget) + search_vector = forms.CharField( + label=_(u"Full text search"), widget=widgets.SearchWidget( + 'ishtar-common', 'document' + )) authors = forms.IntegerField( widget=widgets.JQueryAutoComplete( "/" + settings.URL_PATH + 'autocomplete-author', diff --git a/ishtar_common/templates/ishtar/forms/search_query.html b/ishtar_common/templates/ishtar/forms/search_query.html index ff51d483d..d44c61ade 100644 --- a/ishtar_common/templates/ishtar/forms/search_query.html +++ b/ishtar_common/templates/ishtar/forms/search_query.html @@ -2,7 +2,7 @@ <div class="modal-dialog modal-sm" id="save-search-div"> <div class="modal-content"> <div class="modal-header"> - <h5>{% trans "Bookmark search" %}</h5> + <h5>{% trans "Bookmark this search" %}</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> diff --git a/ishtar_common/templates/widgets/search_input.html b/ishtar_common/templates/widgets/search_input.html index 01e49e93b..7f5526b18 100644 --- a/ishtar_common/templates/widgets/search_input.html +++ b/ishtar_common/templates/widgets/search_input.html @@ -23,12 +23,12 @@ id="save-search-button" data-target="#modal-dynamic-form" data-modal-open="#modal-dynamic-form" - title="{% trans 'Bookmark save' %}" - href="{% url 'save-search-query' 'archaeological-operations' 'operation'%}"> + title="{% trans 'Bookmark this search' %}" + href="{% url 'save-search-query' app_name model %}"> <i class="fa fa-star-o" aria-hidden="true"></i> </a> <span class="input-group-text input-link disabled" - title="{% trans 'Load bookmark' %}" + title="{% trans 'Bookmarks' %}" id="load-bookmark"> <i class="fa fa-bookmark" aria-hidden="true"></i> </span> diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 8788920af..405b5d69e 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -479,6 +479,17 @@ if settings.SURFACE_UNIT == 'square-metre': class SearchWidget(forms.TextInput): template_name = 'widgets/search_input.html' + def __init__(self, app_name=None, model=None, attrs=None): + super(SearchWidget, self).__init__(attrs) + self.app_name = app_name + self.model = model + + def get_context(self, name, value, attrs): + context = super(SearchWidget, self).get_context(name, value, attrs) + context['app_name'] = self.app_name + context['model'] = self.model + return context + class ModelFieldMixin(object): def to_python(self, value): |