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 | 
