diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-04 09:35:10 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-04 09:35:10 +0200 |
commit | a6c19e1eb98d30b5de2df3091ce875cb901a4c05 (patch) | |
tree | bd71e04174b3db4a01be9402d97b7ace57a1fee9 | |
parent | b67d8d796e86611b709c37cd25b3212eae7d95be (diff) | |
download | Ishtar-a6c19e1eb98d30b5de2df3091ce875cb901a4c05.tar.bz2 Ishtar-a6c19e1eb98d30b5de2df3091ce875cb901a4c05.zip |
QA find: add divide action
-rw-r--r-- | archaeological_finds/models_finds.py | 4 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 4 | ||||
-rw-r--r-- | archaeological_finds/views.py | 44 |
3 files changed, 51 insertions, 1 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index ad8beb623..24e5227c1 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -1635,7 +1635,9 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, _(u"Add to basket"), "fa fa-shopping-basket", "", "", True), (reverse('find-add-treatment', args=[self.pk]), - _(u"Add treatment"), "fa fa-flask", "", "", False), + _(u"Simple treatment"), "fa fa-flask", "", "", False), + (reverse('find-add-divide-treatment', args=[self.pk]), + _(u"Divide treatment"), "fa fa-scissors", "", "", False), ] if get_current_profile().warehouse: actions.append( diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 7e8b52ddf..95a20e3ff 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -97,6 +97,10 @@ urlpatterns = [ check_rights(['change_find', 'change_own_find'])( views.find_treatment_add), name='find-add-treatment'), + url(r'^find-add-divide-treatment/(?P<pk>[0-9-]+)/$', + check_rights(['change_find', 'change_own_find'])( + views.find_divide_treatment_add), + name='find-add-divide-treatment'), url(r'^treatmentfile-add-treatment/(?P<pk>[0-9-]+)/$', check_rights(['change_find', 'change_own_find'])( views.treatmentfile_treatment_add), diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 9e1a22a2a..f0dfe28e7 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -591,12 +591,56 @@ def treatment_add(request, pks, treatment_file=None): kwargs={'step': 'basetreatment-treatment_creation'})) +def divide_treatment_add(request, pks, treatment_file=None): + treatment_creation_1n_wizard(request) + + wizards.Treatment1NWizard.session_set_value( + request, 'selecfind-treatment_creation_1n', + 'resulting_pk', pks, reset=True) + if treatment_file: + wizards.Treatment1NWizard.session_set_value( + request, 'file-treatment_creation_1n', 'file', treatment_file.pk) + else: + wizards.Treatment1NWizard.session_set_value( + request, 'file-treatment_creation_1n', 'file', '') + if treatment_file: + in_charge = treatment_file.in_charge + if not in_charge: + in_charge = request.user.ishtaruser.person + dct = { + "treatment_type": treatment_file.type.treatment_type.pk + if treatment_file.type and treatment_file.type.treatment_type + else "", + "year": treatment_file.year, + "person": in_charge.pk, + } + locas = list( + set([str(f.container.location.pk) + for f in treatment_file.associated_basket.items.all() + if f.container and f.container.location]) + ) + if len(locas) == 1: # one and only one location for all finds + dct["location"] = locas[0] + for k in dct: + wizards.Treatment1NWizard.session_set_value( + request, 'basetreatment-treatment_creation_1n', k, dct[k]) + return redirect(reverse( + 'treatment_creation_1n', + kwargs={'step': 'basetreatment-treatment_creation_1n'})) + + def find_treatment_add(request, pk, current_right=None): if not models.Find.objects.filter(pk=pk).count(): raise Http404() return treatment_add(request, str(pk)) +def find_divide_treatment_add(request, pk, current_right=None): + if not models.Find.objects.filter(pk=pk).count(): + raise Http404() + return divide_treatment_add(request, str(pk)) + + def findbasket_treatment_add(request, pk, current_right=None): try: basket = models.FindBasket.objects.get(pk=pk) |