summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-11-12 16:18:57 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-11-12 16:18:57 +0100
commitf1dc9dbfed7cc90899f9975c29091a61e63fcb02 (patch)
treed7f34f347aa533855990da473b17fc35f5bb1878
parentce0947a6b35bb0ef3a12fe6c07efaa074317fe4b (diff)
downloadIshtar-f1dc9dbfed7cc90899f9975c29091a61e63fcb02.tar.bz2
Ishtar-f1dc9dbfed7cc90899f9975c29091a61e63fcb02.zip
Fix pin and unpi for administrativ acts
-rw-r--r--archaeological_context_records/views.py54
-rw-r--r--archaeological_files/forms.py6
-rw-r--r--archaeological_finds/forms_treatments.py6
-rw-r--r--archaeological_operations/forms.py3
-rw-r--r--archaeological_operations/models.py2
-rw-r--r--archaeological_operations/wizards.py9
-rw-r--r--ishtar_common/templates/widgets/search_input.html6
-rw-r--r--ishtar_common/views.py3
-rw-r--r--ishtar_common/views_item.py27
-rw-r--r--ishtar_common/widgets.py6
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