diff options
-rw-r--r-- | archaeological_context_records/views.py | 54 | ||||
-rw-r--r-- | archaeological_files/forms.py | 6 | ||||
-rw-r--r-- | archaeological_finds/forms_treatments.py | 6 | ||||
-rw-r--r-- | archaeological_operations/forms.py | 3 | ||||
-rw-r--r-- | archaeological_operations/models.py | 2 | ||||
-rw-r--r-- | archaeological_operations/wizards.py | 9 | ||||
-rw-r--r-- | ishtar_common/templates/widgets/search_input.html | 6 | ||||
-rw-r--r-- | ishtar_common/views.py | 3 | ||||
-rw-r--r-- | ishtar_common/views_item.py | 27 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 6 |
10 files changed, 75 insertions, 47 deletions
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 6966c81e6..771a2ed71 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -26,14 +26,14 @@ from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ from django.views.generic import RedirectView -import models +from archaeological_context_records import models from archaeological_operations.views import site_extra_context -from forms import * +from archaeological_context_records import forms from ishtar_common.utils import put_session_message from ishtar_common.views import IshtarMixin, LoginRequiredMixin from ishtar_common.views_item import display_item, get_item, show_item, \ revert_item -from wizards import * +from archaeological_context_records import wizards show_contextrecord = show_item( models.ContextRecord, 'contextrecord', @@ -90,37 +90,37 @@ get_contextrecordrelationdetail = get_item( models.RecordRelations, 'get_contextrecordrelationdetail', 'contextrecordrelationdetail', specific_perms=['view_recordrelation']) -record_search_wizard = RecordSearch.as_view([ - ('general-record_search', RecordFormSelection)], +record_search_wizard = wizards.RecordSearch.as_view([ + ('general-record_search', forms.RecordFormSelection)], label=_(u"Context record search"), url_name='record_search',) record_creation_steps = [ - ('selec-record_creation', OperationRecordFormSelection), - ('general-record_creation', RecordFormGeneral), - ('datings-record_creation', DatingFormSet), - ('interpretation-record_creation', RecordFormInterpretation), - ('relations-record_creation', RecordRelationsFormSet), - ('final-record_creation', FinalForm) + ('selec-record_creation', forms.OperationRecordFormSelection), + ('general-record_creation', forms.RecordFormGeneral), + ('datings-record_creation', forms.DatingFormSet), + ('interpretation-record_creation', forms.RecordFormInterpretation), + ('relations-record_creation', forms.RecordRelationsFormSet), + ('final-record_creation', forms.FinalForm) ] -record_creation_wizard = RecordWizard.as_view( +record_creation_wizard = wizards.RecordWizard.as_view( record_creation_steps, label=_(u"New context record"), url_name='record_creation', ) record_modification_steps = [ - ('selec-record_modification', RecordFormSelection), - ('operation-record_modification', OperationFormSelection), - ('general-record_modification', RecordFormGeneral), - ('datings-record_modification', DatingFormSet), - ('interpretation-record_modification', RecordFormInterpretation), - ('relations-record_modification', RecordRelationsFormSet), - ('final-record_modification', FinalForm) + ('selec-record_modification', forms.RecordFormSelection), + ('operation-record_modification', forms.OperationFormSelection), + ('general-record_modification', forms.RecordFormGeneral), + ('datings-record_modification', forms.DatingFormSet), + ('interpretation-record_modification', forms.RecordFormInterpretation), + ('relations-record_modification', forms.RecordRelationsFormSet), + ('final-record_modification', forms.FinalForm) ] -record_modification_wizard = RecordModifWizard.as_view( +record_modification_wizard = wizards.RecordModifWizard.as_view( record_modification_steps, label=_(u"Context record modification"), url_name='record_modification', @@ -138,23 +138,23 @@ def record_modify(request, pk): ) return HttpResponseRedirect("/") - RecordModifWizard.session_set_value( + wizards.RecordModifWizard.session_set_value( request, 'selec-record_modification', 'pk', pk, reset=True) return redirect(reverse('record_modification', kwargs={'step': 'operation-record_modification'})) -record_deletion_wizard = RecordDeletionWizard.as_view([ - ('selec-record_deletion', RecordFormSelection), - ('final-record_deletion', RecordDeletionForm)], +record_deletion_wizard = wizards.RecordDeletionWizard.as_view([ + ('selec-record_deletion', forms.RecordFormSelection), + ('final-record_deletion', forms.RecordDeletionForm)], label=_(u"Context record deletion"), url_name='record_deletion',) def reset_wizards(request): for wizard_class, url_name in ( - (RecordWizard, 'record_creation'), - (RecordModifWizard, 'record_modification'), - (RecordDeletionWizard, 'record_deletion')): + (wizards.RecordWizard, 'record_creation'), + (wizards.RecordModifWizard, 'record_modification'), + (wizards.RecordDeletionWizard, 'record_deletion')): wizard_class.session_reset(request, url_name) diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 3d82dc83f..b8f41b4c4 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -406,7 +406,8 @@ class AdministrativeActFileModifySelect(TableSelect): search_vector = forms.CharField( label=_(u"Full text search"), widget=widgets.SearchWidget( - 'archaeological-operations', 'administrativeact' + 'archaeological-operations', 'administrativeact', + 'administrativeactfile', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) @@ -439,7 +440,8 @@ class AdministrativeActFileSelect(TableSelect): search_vector = forms.CharField( label=_(u"Full text search"), widget=widgets.SearchWidget( - 'archaeological-operations', 'administrativeact' + 'archaeological-operations', 'administrativeact', + 'administrativeactfile', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index b09d234f0..7ada0f4bc 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -417,7 +417,8 @@ class AdministrativeActTreatmentSelect(TableSelect): search_vector = forms.CharField( label=_(u"Full text search"), widget=widgets.SearchWidget( - 'archaeological-operations', 'administrativeact' + 'archaeological-operations', 'administrativeact', + 'administrativeacttreatment', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) @@ -683,7 +684,8 @@ class AdministrativeActTreatmentFileSelect(TableSelect): search_vector = forms.CharField( label=_(u"Full text search"), widget=widgets.SearchWidget( - 'archaeological-operations', 'administrativeact' + 'archaeological-operations', 'administrativeact', + 'administrativeacttreatmentfile', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index a8c827757..082b63593 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1394,7 +1394,8 @@ class AdministrativeActOpeSelect(TableSelect): search_vector = forms.CharField( label=_(u"Full text search"), widget=widgets.SearchWidget( - 'archaeological-operations', 'administrativeact' + 'archaeological-operations', 'administrativeact', + 'administrativeactop', )) year = forms.IntegerField(label=_("Year")) index = forms.IntegerField(label=_("Index")) diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 56af40ba0..ae9c221c4 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -1639,11 +1639,13 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): 'treatment_file__type__label__iexact' ), } + for v in ALT_NAMES.values(): for language_code, language_lbl in settings.LANGUAGES: activate(language_code) EXTRA_REQUEST_KEYS[unicode(v[0])] = v[1] deactivate() + UP_MODEL_QUERY = {} POST_PROCESS_REQUEST = { 'operation__towns__numero_insee__startswith': '_get_department_code', diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index b0708f2db..de38beb95 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -395,8 +395,13 @@ class OperationAdministrativeActWizard(OperationWizard): dct['redirect'] = reverse('generatedoc-administrativeactop', args=[admact.pk, r[0]]) # make the new object a default - self.request.session[self.current_obj_slug] = unicode(admact.pk) - self.request.session[self.get_object_name(admact)] = unicode(admact.pk) + ishtaruser = self.request.user.ishtaruser \ + if hasattr(self.request.user, 'ishtaruser') else None + if ishtaruser and ishtaruser.current_profile \ + and ishtaruser.current_profile.auto_pin: + self.request.session[self.current_obj_slug] = unicode(admact.pk) + self.request.session[self.get_object_name(admact)] = unicode( + admact.pk) res = render(self.request, 'ishtar/wizard/wizard_done.html', dct) return res diff --git a/ishtar_common/templates/widgets/search_input.html b/ishtar_common/templates/widgets/search_input.html index 3f7cdc17e..0083db54b 100644 --- a/ishtar_common/templates/widgets/search_input.html +++ b/ishtar_common/templates/widgets/search_input.html @@ -21,7 +21,7 @@ </span> <span class="input-group-text input-link" id="pin-search-button" - data-item-type="{{model}}" + data-item-type="{{pin_model}}" title="{% trans 'Pin the current search' %}"> <i class="fa fa-thumb-tack" aria-hidden="true"></i> </span> @@ -30,7 +30,7 @@ data-target="#modal-dynamic-form" data-modal-open="#modal-dynamic-form" title="{% trans 'Bookmark this search' %}" - href="{% url 'save-search-query' app_name model %}"> + href="{% url 'save-search-query' app_name pin_model %}"> <i class="fa fa-star-o" aria-hidden="true"></i> </a> <span class="input-group-text input-link dropdown-toggle" @@ -46,7 +46,7 @@ </div> <script type="text/javascript"> -var bookmark_url = "{% url 'bookmark-list' app_name model %}"; +var bookmark_url = "{% url 'bookmark-list' app_name pin_model %}"; if (typeof enable_save == "undefined") { enable_save = function(){}; diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 827d41ea0..3d64535d4 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -373,6 +373,9 @@ def unpin(request, item_type, cascade=False): if item_type not in CURRENT_ITEM_KEYS_DICT.keys(): logger.warning("unpin unknow type: {}".format(item_type)) return HttpResponse('nok') + if 'administrativeact' in item_type: + request.session[item_type] = '' + return HttpResponse('ok') request.session['treatment'] = '' if item_type == 'treatment' and not cascade: return HttpResponse('ok') diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 9df2277de..517c34ec9 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -35,7 +35,8 @@ from menus import Menu import models from archaeological_files.models import File -from archaeological_operations.models import Operation, ArchaeologicalSite +from archaeological_operations.models import Operation, ArchaeologicalSite, \ + AdministrativeAct from archaeological_context_records.models import ContextRecord from archaeological_finds.models import Find, FindBasket, Treatment, \ TreatmentFile @@ -45,14 +46,21 @@ logger = logging.getLogger(__name__) ENCODING = settings.ENCODING or 'utf-8' -CURRENT_ITEM_KEYS = (('file', File), - ('operation', Operation), - ('site', ArchaeologicalSite), - ('contextrecord', ContextRecord), - ('warehouse', Warehouse), - ('find', Find), - ('treatmentfile', TreatmentFile), - ('treatment', Treatment)) +CURRENT_ITEM_KEYS = ( + ('file', File), + ('operation', Operation), + ('site', ArchaeologicalSite), + ('contextrecord', ContextRecord), + ('warehouse', Warehouse), + ('find', Find), + ('treatmentfile', TreatmentFile), + ('treatment', Treatment), + ('administrativeact', AdministrativeAct), + ('administrativeactop', AdministrativeAct), + ('administrativeactfile', AdministrativeAct), + ('administrativeacttreatment', AdministrativeAct), + ('administrativeacttreatmentfile', AdministrativeAct), +) CURRENT_ITEM_KEYS_DICT = dict(CURRENT_ITEM_KEYS) @@ -1037,6 +1045,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], and_reqs.append(reqs) pinned_search = "" + # manage default and pinned search if 'submited' not in request_items and full != 'shortcut': if data_type == 'csv' and func_name in request.session: dct = request.session[func_name] diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 6292db202..7d9e06926 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -483,15 +483,19 @@ class CheckboxInput(forms.CheckboxInput): class SearchWidget(forms.TextInput): template_name = 'widgets/search_input.html' - def __init__(self, app_name=None, model=None, attrs=None): + def __init__(self, app_name=None, model=None, pin_model=None, attrs=None): super(SearchWidget, self).__init__(attrs) self.app_name = app_name self.model = model + if not pin_model: + pin_model = self.model + self.pin_model = pin_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 + context['pin_model'] = self.pin_model return context |