summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-03-21 19:18:15 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-03-21 19:18:15 +0100
commitf7a4bd783df87aea052aba07b2a48001b6389772 (patch)
treef89afc90cf5c0465404beeb218cb1ff05020428c /archaeological_finds/views.py
parentf164cd8f9107b1c6a803fa6fe6adda52539f8b8f (diff)
downloadIshtar-f7a4bd783df87aea052aba07b2a48001b6389772.tar.bz2
Ishtar-f7a4bd783df87aea052aba07b2a48001b6389772.zip
Finds search: conditionnal search (warehouse module available) for warehouses and containers (refs #3416)
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py42
1 files changed, 38 insertions, 4 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 0b9cb8952..03094cbb0 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -28,7 +28,7 @@ from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView
from django.views.generic.edit import CreateView, FormView
-from ishtar_common.models import IshtarUser
+from ishtar_common.models import IshtarUser, get_current_profile
from archaeological_operations.models import AdministrativeAct
from ishtar_common.forms import FinalForm
@@ -117,6 +117,15 @@ show_findbasket = show_item(models.FindBasket, 'findbasket')
display_findbasket = display_item(models.FindBasket,
show_url='show-find/basket-')
+
+def check_warehouse_module(self):
+ return get_current_profile().warehouse
+
+
+def check_not_warehouse_module(self):
+ return not check_warehouse_module(self)
+
+
find_creation_steps = [
('selecrecord-find_creation', RecordFormSelectionTable),
('find-find_creation', FindForm),
@@ -129,17 +138,32 @@ find_creation_wizard = FindWizard.as_view(
label=_(u"New find"),
url_name='find_creation',)
+find_search_condition_dict = {
+ 'general-find_search': check_not_warehouse_module,
+ 'generalwarehouse-find_search': check_warehouse_module,
+}
+
find_search_wizard = SearchWizard.as_view([
- ('general-find_search', FindFormSelection)],
+ ('general-find_search', FindFormSelection),
+ ('generalwarehouse-find_search', FindFormSelectionWarehouseModule)],
label=_(u"Find search"),
- url_name='find_search',)
+ url_name='find_search',
+ condition_dict=find_search_condition_dict
+)
+
+find_modification_condition_dict = {
+ 'selec-find_modification': check_not_warehouse_module,
+ 'selecw-find_modification': check_warehouse_module,
+}
find_modification_wizard = FindModificationWizard.as_view([
('selec-find_modification', FindFormSelection),
+ ('selecw-find_modification', FindFormSelectionWarehouseModule),
('selecrecord-find_modification', RecordFormSelection),
('find-find_modification', FindForm),
('dating-find_modification', DatingFormSet),
('final-find_modification', FinalForm)],
+ condition_dict=find_modification_condition_dict,
label=_(u"Find modification"),
url_name='find_modification',)
@@ -152,9 +176,16 @@ def find_modify(request, pk):
reverse('find_modification',
kwargs={'step': 'selecrecord-find_modification'}))
+find_deletion_condition_dict = {
+ 'selec-find_deletion': check_not_warehouse_module,
+ 'selecw-find_deletion': check_warehouse_module,
+}
+
find_deletion_wizard = FindDeletionWizard.as_view([
('selec-find_deletion', FindFormSelection),
+ ('selecw-find_deletion', FindFormSelectionWarehouseModule),
('final-find_deletion', FindDeletionForm)],
+ condition_dict=find_deletion_condition_dict,
label=_(u"Find deletion"),
url_name='find_deletion',)
@@ -256,7 +287,10 @@ class SelectItemsInBasket(IshtarMixin, LoginRequiredMixin, TemplateView):
except models.FindBasket.DoesNotExist:
raise PermissionDenied
context['basket'] = self.basket
- context['form'] = MultipleFindFormSelection()
+ if get_current_profile().warehouse:
+ context['form'] = MultipleFindFormSelectionWarehouseModule()
+ else:
+ context['form'] = MultipleFindFormSelection()
context['add_url'] = reverse('add_iteminbasket')
context['list_url'] = reverse('list_iteminbasket',
kwargs={'pk': self.basket.pk})