summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py500
1 files changed, 353 insertions, 147 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index c340639c5..fb5cdc11e 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -19,6 +19,7 @@
import json
+from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.http import HttpResponseRedirect, HttpResponse, Http404
@@ -27,18 +28,24 @@ 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, get_current_profile
+from archaeological_operations.models import AdministrativeAct
+from archaeological_finds import models
+
+from ishtar_common.forms import FinalForm
from archaeological_context_records.forms \
import RecordFormSelection as RecordFormSelectionTable
from archaeological_operations.forms import FinalAdministrativeActDeleteForm
-from archaeological_operations.wizards import AdministrativeActDeletionWizard
-from forms import *
-from ishtar_common.forms import FinalForm
-from ishtar_common.models import IshtarUser, get_current_profile
+from archaeological_finds import forms
+
from ishtar_common.views import get_autocomplete_generic, IshtarMixin, \
LoginRequiredMixin, QAItemEditForm, QAItemForm
from ishtar_common.views_item import display_item, get_item, show_item, \
- revert_item, get_autocomplete_item
-from wizards import *
+ revert_item, get_autocomplete_item, get_autocomplete_query
+
+from archaeological_operations.wizards import AdministrativeActDeletionWizard
+from archaeological_finds import wizards
get_find = get_item(models.Find, 'get_find', 'find')
@@ -105,30 +112,66 @@ def autocomplete_treatmentfile(request):
return HttpResponse(data, content_type='text/plain')
-show_find = show_item(models.Find, 'find')
+def show_find_extra(request, find):
+ if not request.user or not request.user.ishtaruser:
+ return {}
+ user = request.user.ishtaruser
+ q = models.FindBasket.objects.filter(items__pk=find.pk).filter(
+ Q(user=user) | Q(shared_with__pk=user.pk) |
+ Q(shared_write_with__pk=user.pk)
+ )
+ return {"baskets": [(basket.pk, basket.full_label) for basket in q.all()]}
+
+
+show_find = show_item(models.Find, 'find', extra_dct=show_find_extra)
display_find = display_item(models.Find)
revert_find = revert_item(models.Find)
-show_findbasket = show_item(models.FindBasket, 'findbasket')
+show_findbasket = show_item(models.FindBasket, 'findbasket',
+ model_for_perms=models.Find)
display_findbasket = display_item(models.FindBasket,
show_url='show-find/basket-')
+
+def autocomplete_findbasket(request, current_right=None):
+ if not request.GET.get('term'):
+ return HttpResponse(content_type='text/plain')
+
+ query = get_autocomplete_query(request, ['label'])
+ limit = 20
+ query = query & models.FindBasket.get_write_query_owns(
+ request.user.ishtaruser)
+ items = models.FindBasket.objects.filter(query).order_by('label')[:limit]
+ data = json.dumps(
+ [{'id': item.pk,
+ 'value': u"{} - {}".format(item.label, item.user)[:60]}
+ for item in items]
+ )
+ return HttpResponse(data, content_type='text/plain')
+
get_find_basket = get_item(
models.FindBasket, 'get_findbasket', 'findbasket',
+ model_for_perms=models.Find
)
-basket_search_wizard = FindBasketSearch.as_view(
- [('selec-find_basket_search', FindBasketFormSelection)],
+get_find_basket_for_write = get_item(
+ models.FindBasket, 'get_findbasket', 'findbasket',
+ model_for_perms=models.Find, alt_query_own='get_write_query_owns'
+)
+
+basket_search_wizard = wizards.FindBasketSearch.as_view(
+ [('selec-find_basket_search', forms.FindBasketFormSelection)],
label=_(u"Basket search"),
url_name='find_basket_search',
)
-basket_modify_wizard = FindBasketEditWizard.as_view(
+basket_modify_wizard = wizards.FindBasketEditWizard.as_view(
[
- ('selec-find_basket_modification', FindBasketFormSelection),
- ('basket-find_basket_modification', FindBasketForm),
+ ('selec-find_basket_modification',
+ forms.FindBasketForWriteFormSelection),
+ ('basket-find_basket_modification', forms.FindBasketForm),
('final-find_basket_modification', FinalForm)
- ],
+ ],
label=_(u"Basket modify"),
url_name='find_basket_modification',
)
@@ -137,13 +180,26 @@ basket_modify_wizard = FindBasketEditWizard.as_view(
def find_basket_modify(request, pk):
basket_modify_wizard(request)
key = 'selec-find_basket_modification'
- FindBasketEditWizard.session_set_value(
+ wizards.FindBasketEditWizard.session_set_value(
request, key, 'pk', pk, reset=True)
return redirect(
reverse('find_basket_modification',
kwargs={'step': 'basket-find_basket_modification'}))
+findbasket_deletion_steps = [
+ ('selec-find_basket_deletion', forms.FindBasketForWriteFormSelection),
+ ('final-find_basket_deletion', FinalForm)
+]
+
+
+basket_delete_wizard = wizards.FindBasketDeletionWizard.as_view(
+ findbasket_deletion_steps,
+ label=_(u"Basket deletion"),
+ url_name='find_basket_deletion',
+)
+
+
def check_preservation_module(self):
return get_current_profile().preservation
@@ -158,9 +214,9 @@ def check_not_warehouse_module(self):
find_creation_steps = [
('selecrecord-find_creation', RecordFormSelectionTable),
- ('find-find_creation', FindForm),
- ('preservation-find_creation', PreservationForm),
- ('dating-find_creation', DatingFormSet),
+ ('find-find_creation', forms.FindForm),
+ ('preservation-find_creation', forms.PreservationForm),
+ ('dating-find_creation', forms.DatingFormSet),
('final-find_creation', FinalForm)
]
@@ -168,7 +224,7 @@ find_creation_condition_dict = {
'preservation-find_creation': check_preservation_module,
}
-find_creation_wizard = FindWizard.as_view(
+find_creation_wizard = wizards.FindWizard.as_view(
find_creation_steps,
label=_(u"New find"),
condition_dict=find_creation_condition_dict,
@@ -179,31 +235,47 @@ find_search_condition_dict = {
'generalwarehouse-find_search': check_warehouse_module,
}
-find_search_wizard = FindSearch.as_view([
- ('general-find_search', FindFormSelection),
- ('generalwarehouse-find_search', FindFormSelectionWarehouseModule)],
+find_search_wizard = wizards.FindSearch.as_view([
+ ('general-find_search', forms.FindFormSelection),
+ ('generalwarehouse-find_search', forms.FindFormSelectionWarehouseModule)],
label=_(u"Find search"),
url_name='find_search',
condition_dict=find_search_condition_dict
)
+
+def has_many_base_find(wizard):
+ find = wizard.get_current_object()
+ if not find:
+ return False
+ return find.base_finds.count() > 1
+
+
+def has_only_one_base_find(wizard):
+ return not has_many_base_find(wizard)
+
+
find_modification_condition_dict = {
'selec-find_modification': check_not_warehouse_module,
'selecw-find_modification': check_warehouse_module,
'preservation-find_modification': check_preservation_module,
+ 'selecrecord-find_modification': has_only_one_base_find,
+ 'find-find_modification': has_only_one_base_find,
+ 'simplefind-find_modification': has_many_base_find,
}
find_modification_steps = [
- ('selec-find_modification', FindFormSelection),
- ('selecw-find_modification', FindFormSelectionWarehouseModule),
- ('selecrecord-find_modification', RecordFormSelection),
- ('find-find_modification', FindForm),
- ('preservation-find_modification', PreservationForm),
- ('dating-find_modification', DatingFormSet),
+ ('selec-find_modification', forms.FindFormSelection),
+ ('selecw-find_modification', forms.FindFormSelectionWarehouseModule),
+ ('selecrecord-find_modification', forms.RecordFormSelection),
+ ('find-find_modification', forms.FindForm),
+ ('simplefind-find_modification', forms.SimpleFindForm),
+ ('preservation-find_modification', forms.PreservationForm),
+ ('dating-find_modification', forms.DatingFormSet),
('final-find_modification', FinalForm)
]
-find_modification_wizard = FindModificationWizard.as_view(
+find_modification_wizard = wizards.FindModificationWizard.as_view(
find_modification_steps,
condition_dict=find_modification_condition_dict,
label=_(u"Find modification"),
@@ -216,11 +288,18 @@ def find_modify(request, pk):
key = 'selec-find_modification'
if get_current_profile().warehouse:
key = 'selecw-find_modification'
- FindModificationWizard.session_set_value(
+ wizards.FindModificationWizard.session_set_value(
request, key, 'pk', pk, reset=True)
+ q = models.Find.objects.filter(pk=pk)
+ if not q.count():
+ raise Http404()
+ step = 'find-find_modification'
+ find = q.all()[0]
+ if find.base_finds.count() > 1:
+ step = 'simplefind-find_modification'
+
return redirect(
- reverse('find_modification',
- kwargs={'step': 'selecrecord-find_modification'}))
+ reverse('find_modification', kwargs={'step': step}))
find_deletion_condition_dict = {
'selec-find_deletion': check_not_warehouse_module,
@@ -228,11 +307,11 @@ find_deletion_condition_dict = {
}
find_deletion_steps = [
- ('selec-find_deletion', FindFormSelection),
- ('selecw-find_deletion', FindFormSelectionWarehouseModule),
- ('final-find_deletion', FindDeletionForm)]
+ ('selec-find_deletion', forms.FindFormSelection),
+ ('selecw-find_deletion', forms.FindFormSelectionWarehouseModule),
+ ('final-find_deletion', forms.FindDeletionForm)]
-find_deletion_wizard = FindDeletionWizard.as_view(
+find_deletion_wizard = wizards.FindDeletionWizard.as_view(
find_deletion_steps,
condition_dict=find_deletion_condition_dict,
label=_(u"Find deletion"),
@@ -247,7 +326,7 @@ autocomplete_integritytype = get_autocomplete_generic(models.IntegrityType)
class NewFindBasketView(IshtarMixin, LoginRequiredMixin, CreateView):
template_name = 'ishtar/form.html'
model = models.FindBasket
- form_class = NewFindBasketForm
+ form_class = forms.NewFindBasketForm
page_name = _(u"New basket")
def get_form_kwargs(self):
@@ -268,15 +347,15 @@ class OwnBasket(object):
def get_basket(self, user, pk):
try:
return models.FindBasket.objects.filter(
- Q(user=user) | Q(shared_with=user)
- ).get(pk=pk)
+ Q(user=user) | Q(shared_with=user) | Q(shared_write_with=user)
+ ).distinct().get(pk=pk)
except models.FindBasket.DoesNotExist:
raise PermissionDenied
class SelectBasketForManagement(IshtarMixin, LoginRequiredMixin, FormView):
template_name = 'ishtar/form.html'
- form_class = SelectFindBasketForm
+ form_class = forms.SelectFindBasketForm
page_name = _(u"Manage items in basket")
def get_form_kwargs(self):
@@ -309,9 +388,9 @@ class SelectItemsInBasket(OwnBasket, IshtarMixin, LoginRequiredMixin,
)
context['basket'] = self.basket
if get_current_profile().warehouse:
- context['form'] = MultipleFindFormSelectionWarehouseModule()
+ context['form'] = forms.MultipleFindFormSelectionWarehouseModule()
else:
- context['form'] = MultipleFindFormSelection()
+ context['form'] = forms.MultipleFindFormSelection()
context['add_url'] = reverse('add_iteminbasket')
context['list_url'] = reverse('list_iteminbasket',
kwargs={'pk': self.basket.pk})
@@ -323,7 +402,7 @@ class SelectItemsInBasket(OwnBasket, IshtarMixin, LoginRequiredMixin,
class FindBasketAddItemView(IshtarMixin, LoginRequiredMixin, FormView):
template_name = 'ishtar/simple_form.html'
- form_class = FindBasketAddItemForm
+ form_class = forms.FindBasketAddItemForm
def get_success_url(self, basket):
return reverse('list_iteminbasket', kwargs={'pk': basket.pk})
@@ -381,22 +460,6 @@ class FindBasketDeleteItemView(OwnBasket, IshtarMixin, LoginRequiredMixin,
basket.items.remove(find)
return HttpResponseRedirect(self.get_success_url(basket))
-
-class DeleteFindBasketView(IshtarMixin, LoginRequiredMixin, FormView):
- template_name = 'ishtar/form_delete.html'
- form_class = DeleteFindBasketForm
- success_url = '/'
- page_name = _(u"Delete basket")
-
- def get_form_kwargs(self):
- kwargs = super(DeleteFindBasketView, self).get_form_kwargs()
- kwargs['user'] = IshtarUser.objects.get(pk=self.request.user.pk)
- return kwargs
-
- def form_valid(self, form):
- form.save()
- return HttpResponseRedirect(self.get_success_url())
-
get_upstreamtreatment = get_item(
models.FindUpstreamTreatments, 'get_upstreamtreatment', 'uptreatment')
@@ -405,46 +468,53 @@ get_downstreamtreatment = get_item(
'downtreatment')
treatment_wizard_steps = [
- ('file-treatment_creation', TreatmentFormFileChoice),
- ('basetreatment-treatment_creation', BaseTreatmentForm),
- ('selecfind-treatment_creation', UpstreamFindFormSelection),
- ('selecbasket-treatment_creation', SelectFindBasketForm),
- # ('resultfind-treatment_creation', ResultFindForm),
- # ('resultfinds-treatment_creation', ResultFindFormSet),
+ ('selecfind-treatment_creation', forms.UpstreamFindFormSelection),
+ ('file-treatment_creation', forms.TreatmentFormFileChoice),
+ ('basetreatment-treatment_creation', forms.BaseTreatmentForm),
('final-treatment_creation', FinalForm)
]
-treatment_search_wizard = TreatmentSearch.as_view([
- ('general-treatment_search', TreatmentFormSelection)],
+treatment_search_wizard = wizards.TreatmentSearch.as_view([
+ ('general-treatment_search', forms.TreatmentFormSelection)],
label=_(u"Treatment search"),
url_name='treatment_search',)
-treatment_creation_wizard = TreatmentWizard.as_view(
+treatment_creation_wizard = wizards.TreatmentWizard.as_view(
treatment_wizard_steps,
- condition_dict={
- 'selecfind-treatment_creation':
- check_value('basetreatment-treatment_creation',
- 'target_is_basket', False),
- 'selecbasket-treatment_creation':
- check_value('basetreatment-treatment_creation',
- 'target_is_basket', True),
- # 'resultfinds-treatment_creation':
- # check_type_field('basetreatment-treatment_creation',
- # 'treatment_type', models.TreatmentType,
- # 'downstream_is_many'),
- # 'resultfind-treatment_creation':
- # check_type_field('basetreatment-treatment_creation',
- # 'treatment_type', models.TreatmentType,
- # 'upstream_is_many')
- },
label=_(u"New treatment"),
url_name='treatment_creation',)
-treatment_modification_wizard = TreatmentModificationWizard.as_view(
- [('selec-treatment_modification', TreatmentFormSelection),
- ('file-treatment_modification', TreatmentFormFileChoice),
- ('basetreatment-treatment_modification', TreatmentModifyForm),
+treatment_n1_wizard_steps = [
+ ('selecfind-treatment_creation_n1', forms.UpstreamFindFormSelection),
+ ('file-treatment_creation_n1', forms.TreatmentFormFileChoice),
+ ('basetreatment-treatment_creation_n1', forms.N1TreatmentForm),
+ ('resultingfind-treatment_creation_n1', forms.ResultingFindForm),
+ ('final-treatment_creation_n1', FinalForm)
+]
+
+treatment_creation_n1_wizard = wizards.TreatmentN1Wizard.as_view(
+ treatment_n1_wizard_steps,
+ label=_(u"New treatment"),
+ url_name='treatment_creation_n1',)
+
+treatment_1n_wizard_steps = [
+ ('selecfind-treatment_creation_1n', forms.SingleUpstreamFindFormSelection),
+ ('file-treatment_creation_1n', forms.TreatmentFormFileChoice),
+ ('basetreatment-treatment_creation_1n', forms.OneNTreatmentForm),
+ ('resultingfinds-treatment_creation_1n', forms.ResultingFindsForm),
+ ('final-treatment_creation_1n', FinalForm)
+]
+
+treatment_creation_1n_wizard = wizards.Treatment1NWizard.as_view(
+ treatment_1n_wizard_steps,
+ label=_(u"New treatment"),
+ url_name='treatment_creation_1n',)
+
+treatment_modification_wizard = wizards.TreatmentModificationWizard.as_view(
+ [('selec-treatment_modification', forms.TreatmentFormSelection),
+ ('file-treatment_modification', forms.TreatmentFormFileChoice),
+ ('basetreatment-treatment_modification', forms.TreatmentModifyForm),
('final-treatment_modification', FinalForm)],
label=_(u"Treatment modification"),
url_name='treatment_modification',
@@ -453,41 +523,116 @@ treatment_modification_wizard = TreatmentModificationWizard.as_view(
def treatment_modify(request, pk):
treatment_modification_wizard(request)
- TreatmentModificationWizard.session_set_value(
+ wizards.TreatmentModificationWizard.session_set_value(
request, 'selec-treatment_modification', 'pk', pk, reset=True)
return redirect(reverse(
'treatment_modification',
- kwargs={'step': 'basetreatment-treatment_modification'}))
-
-
-treatment_deletion_wizard = TreatmentDeletionWizard.as_view([
- ('selec-treatment_deletion', TreatmentFormSelection),
- ('final-treatment_deletion', TreatmentDeletionForm)],
+ kwargs={'step': 'file-treatment_modification'}))
+
+
+def treatment_add(request, pks, treatment_file=None):
+ treatment_creation_wizard(request)
+ wizards.TreatmentWizard.session_set_value(
+ request, 'selecfind-treatment_creation',
+ 'resulting_pk', pks, reset=True)
+ if treatment_file:
+ wizards.TreatmentWizard.session_set_value(
+ request, 'file-treatment_creation', 'file', treatment_file.pk)
+ else:
+ wizards.TreatmentWizard.session_set_value(
+ request, 'file-treatment_creation', '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.TreatmentWizard.session_set_value(
+ request, 'basetreatment-treatment_creation', k, dct[k])
+ return redirect(reverse(
+ 'treatment_creation',
+ kwargs={'step': 'basetreatment-treatment_creation'}))
+
+
+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 findbasket_treatment_add(request, pk, current_right=None):
+ try:
+ basket = models.FindBasket.objects.get(pk=pk)
+ except models.FindBasket.DoesNotExist:
+ raise Http404()
+ return treatment_add(
+ request, ",".join([str(f.pk) for f in basket.items.all()]))
+
+
+def container_treatment_add(request, pk, current_right=None):
+ try:
+ basket = models.FindBasket.objects.get(pk=pk)
+ except models.FindBasket.DoesNotExist:
+ raise Http404()
+ return treatment_add(request,
+ ",".join([str(f.pk) for f in basket.items.all()]))
+
+
+def treatmentfile_treatment_add(request, pk, current_right=None):
+ try:
+ tf = models.TreatmentFile.objects.get(pk=pk)
+ except models.TreatmentFile.DoesNotExist:
+ raise Http404()
+ if not tf.associated_basket:
+ raise Http404()
+ basket = tf.associated_basket
+ return treatment_add(
+ request, ",".join([str(f.pk) for f in basket.items.all()]),
+ treatment_file=tf
+ )
+
+
+treatment_deletion_wizard = wizards.TreatmentDeletionWizard.as_view([
+ ('selec-treatment_deletion', forms.TreatmentFormSelection),
+ ('final-treatment_deletion', forms.TreatmentDeletionForm)],
label=_(u"Treatment deletion"),
url_name='treatment_deletion',)
treatment_administrativeact_search_wizard = \
- SearchWizard.as_view([
+ wizards.SearchWizard.as_view([
('selec-treatment_admacttreatment_search',
- AdministrativeActTreatmentFormSelection)],
+ forms.AdministrativeActTreatmentFormSelection)],
label=_(u"Treatment: search administrative act"),
url_name='treatment_admacttreatment_search',)
treatment_administrativeact_wizard = \
- TreatmentAdministrativeActWizard.as_view([
- ('selec-treatment_admacttreatment', TreatmentFormSelection),
+ wizards.TreatmentAdministrativeActWizard.as_view([
+ ('selec-treatment_admacttreatment', forms.TreatmentFormSelection),
('administrativeact-treatment_admacttreatment',
- AdministrativeActTreatmentForm),
+ forms.AdministrativeActTreatmentForm),
('final-treatment_admacttreatment', FinalForm)],
label=_(u"Treatment: new administrative act"),
url_name='treatment_admacttreatment',)
treatment_administrativeact_modification_wizard = \
- TreatmentEditAdministrativeActWizard.as_view([
+ wizards.TreatmentEditAdministrativeActWizard.as_view([
('selec-treatment_admacttreatment_modification',
- AdministrativeActTreatmentFormSelection),
+ forms.AdministrativeActTreatmentFormSelection),
('administrativeact-treatment_admacttreatment_modification',
- AdministrativeActTreatmentModifForm),
+ forms.AdministrativeActTreatmentModifForm),
('final-treatment_admacttreatment_modification', FinalForm)],
label=_(u"Treatment: administrative act modification"),
url_name='treatment_admacttreatment_modification',)
@@ -495,7 +640,7 @@ treatment_administrativeact_modification_wizard = \
treatment_admacttreatment_deletion_wizard = \
AdministrativeActDeletionWizard.as_view([
('selec-treatment_admacttreatment_deletion',
- AdministrativeActTreatmentFormSelection),
+ forms.AdministrativeActTreatmentFormSelection),
('final-treatment_admacttreatment_deletion',
FinalAdministrativeActDeleteForm)],
label=_(u"Treatment: administrative act deletion"),
@@ -504,7 +649,7 @@ treatment_admacttreatment_deletion_wizard = \
def treatment_administrativeacttreatment_modify(request, pk):
treatment_administrativeact_modification_wizard(request)
- TreatmentEditAdministrativeActWizard.session_set_value(
+ wizards.TreatmentEditAdministrativeActWizard.session_set_value(
request,
'selec-treatment_admacttreatment_modification',
'pk', pk, reset=True)
@@ -517,69 +662,86 @@ def treatment_administrativeacttreatment_modify(request, pk):
}))
+def treatment_adminact_add(request, pk, current_right=None):
+ try:
+ models.Treatment.objects.get(pk=pk)
+ except models.Treatment.DoesNotExist:
+ raise Http404()
+ treatment_administrativeact_wizard(request)
+
+ wizards.TreatmentAdministrativeActWizard.session_set_value(
+ request, 'selec-treatment_admacttreatment', 'pk', pk, reset=True)
+ return redirect(reverse(
+ 'treatment_admacttreatment',
+ kwargs={'step': 'administrativeact-treatment_admacttreatment'}))
+
+
# treatment request
-treatmentfile_search_wizard = TreatmentFileSearch.as_view([
- ('general-treatmentfile_search', TreatmentFileFormSelection)],
+treatmentfile_search_wizard = wizards.TreatmentFileSearch.as_view([
+ ('general-treatmentfile_search', forms.TreatmentFileFormSelection)],
label=_(u"Treatment request search"),
url_name='treatmentfile_search',)
treatmentfile_wizard_steps = [
- ('treatmentfile-treatmentfile_creation', TreatmentFileForm),
+ ('treatmentfile-treatmentfile_creation', forms.TreatmentFileForm),
('final-treatmentfile_creation', FinalForm)]
-treatmentfile_creation_wizard = TreatmentFileWizard.as_view(
+treatmentfile_creation_wizard = wizards.TreatmentFileWizard.as_view(
treatmentfile_wizard_steps,
label=_(u"New treatment request"),
url_name='treatmentfile_creation',)
-treatmentfile_modification_wizard = TreatmentFileModificationWizard.as_view(
- [('selec-treatmentfile_modification', TreatmentFileFormSelection),
- ('treatmentfile-treatmentfile_modification', TreatmentFileModifyForm),
- ('final-treatmentfile_modification', FinalForm)],
- label=_(u"Treatment request modification"),
- url_name='treatmentfile_modification',
-)
+treatmentfile_modification_wizard = \
+ wizards.TreatmentFileModificationWizard.as_view(
+ [('selec-treatmentfile_modification', forms.TreatmentFileFormSelection),
+ ('treatmentfile-treatmentfile_modification',
+ forms.TreatmentFileModifyForm),
+ ('final-treatmentfile_modification', FinalForm)],
+ label=_(u"Treatment request modification"),
+ url_name='treatmentfile_modification',
+ )
def treatmentfile_modify(request, pk):
treatmentfile_modification_wizard(request)
- TreatmentFileModificationWizard.session_set_value(
+ wizards.TreatmentFileModificationWizard.session_set_value(
request, 'selec-treatmentfile_modification', 'pk', pk, reset=True)
return redirect(reverse(
'treatmentfile_modification',
kwargs={'step': 'treatmentfile-treatmentfile_modification'}))
-treatmentfile_deletion_wizard = TreatmentFileDeletionWizard.as_view([
- ('selec-treatmentfile_deletion', TreatmentFileFormSelection),
- ('final-treatmentfile_deletion', TreatmentFileDeletionForm)],
+treatmentfile_deletion_wizard = wizards.TreatmentFileDeletionWizard.as_view([
+ ('selec-treatmentfile_deletion', forms.TreatmentFileFormSelection),
+ ('final-treatmentfile_deletion', forms.TreatmentFileDeletionForm)],
label=_(u"Treatment request deletion"),
url_name='treatmentfile_deletion',)
treatmentfile_admacttreatmentfile_search_wizard = \
- SearchWizard.as_view([
+ wizards.SearchWizard.as_view([
('selec-treatmentfle_admacttreatmentfle_search',
- AdministrativeActTreatmentFileFormSelection)],
+ forms.AdministrativeActTreatmentFileFormSelection)],
label=_(u"Treatment request: search administrative act"),
url_name='treatmentfle_admacttreatmentfle_search',)
treatmentfile_admacttreatmentfile_wizard = \
- TreatmentFileAdministrativeActWizard.as_view([
- ('selec-treatmentfle_admacttreatmentfle', TreatmentFileFormSelection),
+ wizards.TreatmentFileAdministrativeActWizard.as_view([
+ ('selec-treatmentfle_admacttreatmentfle',
+ forms.TreatmentFileFormSelection),
('admact-treatmentfle_admacttreatmentfle',
- AdministrativeActTreatmentFileForm),
+ forms.AdministrativeActTreatmentFileForm),
('final-treatmentfle_admacttreatmentfle', FinalForm)],
label=_(u"Treatment request: new administrative act"),
url_name='treatmentfle_admacttreatmentfle',)
treatmentfile_admacttreatmentfile_modification_wizard = \
- TreatmentFileEditAdministrativeActWizard.as_view([
+ wizards.TreatmentFileEditAdministrativeActWizard.as_view([
('selec-treatmentfle_admacttreatmentfle_modification',
- AdministrativeActTreatmentFileFormSelection),
+ forms.AdministrativeActTreatmentFileFormSelection),
('admact-treatmentfle_admacttreatmentfle_modification',
- AdministrativeActTreatmentFileModifForm),
+ forms.AdministrativeActTreatmentFileModifForm),
('final-treatmentfle_admacttreatmentfle_modification', FinalForm)],
label=_(u"Treatment request: administrative act modification"),
url_name='treatmentfle_admacttreatmentfle_modification',)
@@ -587,7 +749,7 @@ treatmentfile_admacttreatmentfile_modification_wizard = \
treatmentfile_admacttreatmentfile_deletion_wizard = \
AdministrativeActDeletionWizard.as_view([
('selec-treatmentfle_admacttreatmentfle_deletion',
- AdministrativeActTreatmentFileFormSelection),
+ forms.AdministrativeActTreatmentFileFormSelection),
('final-treatmentfle_admacttreatmentfle_deletion',
FinalAdministrativeActDeleteForm)],
label=_(u"Treatment request: administrative act deletion"),
@@ -596,7 +758,7 @@ treatmentfile_admacttreatmentfile_deletion_wizard = \
def treatmentfile_administrativeacttreatmentfile_modify(request, pk):
treatmentfile_admacttreatmentfile_modification_wizard(request)
- TreatmentFileEditAdministrativeActWizard.session_set_value(
+ wizards.TreatmentFileEditAdministrativeActWizard.session_set_value(
request,
'selec-treatmentfle_admacttreatmentfle_modification',
'pk', pk, reset=True)
@@ -609,24 +771,42 @@ def treatmentfile_administrativeacttreatmentfile_modify(request, pk):
}))
+def treatmentfile_adminact_add(request, pk, current_right=None):
+ try:
+ models.TreatmentFile.objects.get(pk=pk)
+ except models.TreatmentFile.DoesNotExist:
+ raise Http404()
+ treatmentfile_admacttreatmentfile_wizard(request)
+
+ wizards.TreatmentFileAdministrativeActWizard.session_set_value(
+ request, 'selec-treatmentfle_admacttreatmentfle', 'pk', pk, reset=True)
+ return redirect(reverse(
+ 'treatmentfle_admacttreatmentfle',
+ kwargs={'step': 'admact-treatmentfle_admacttreatmentfle'}))
+
+
def reset_wizards(request):
for wizard_class, url_name in (
- (FindWizard, 'find_creation'),
- (FindModificationWizard, 'find_modification'),
- (FindDeletionWizard, 'find_deletion'),
- (TreatmentWizard, 'treatement_creation'),
- (TreatmentModificationWizard, 'treatment_modification'),
- (TreatmentDeletionWizard, 'treatment_deletion'),
- (TreatmentAdministrativeActWizard, 'treatment_admacttreatment'),
- (TreatmentEditAdministrativeActWizard,
+ (wizards.FindWizard, 'find_creation'),
+ (wizards.FindModificationWizard, 'find_modification'),
+ (wizards.FindDeletionWizard, 'find_deletion'),
+ (wizards.TreatmentWizard, 'treatement_creation'),
+ (wizards.TreatmentModificationWizard, 'treatment_modification'),
+ (wizards.TreatmentDeletionWizard, 'treatment_deletion'),
+ (wizards.TreatmentAdministrativeActWizard,
+ 'treatment_admacttreatment'),
+ (wizards.TreatmentEditAdministrativeActWizard,
'treatment_admacttreatment_modification'),
- (TreatmentDeletionWizard, 'treatment_admacttreatment_deletion'),
- (TreatmentFileWizard, 'treatmentfile_creation'),
- (TreatmentFileModificationWizard, 'treatmentfile_modification'),
- (TreatmentFileDeletionWizard, 'treatmentfile_deletion'),
- (TreatmentFileAdministrativeActWizard,
+ (wizards.TreatmentDeletionWizard,
+ 'treatment_admacttreatment_deletion'),
+ (wizards.TreatmentFileWizard,
+ 'treatmentfile_creation'),
+ (wizards.TreatmentFileModificationWizard,
+ 'treatmentfile_modification'),
+ (wizards.TreatmentFileDeletionWizard, 'treatmentfile_deletion'),
+ (wizards.TreatmentFileAdministrativeActWizard,
'treatmentfle_admacttreatmentfle'),
- (TreatmentFileEditAdministrativeActWizard,
+ (wizards.TreatmentFileEditAdministrativeActWizard,
'treatmentfle_admacttreatmentfle_modification'),
(AdministrativeActDeletionWizard,
'treatmentfle_admacttreatmentfle_deletion'),
@@ -636,13 +816,13 @@ def reset_wizards(request):
class QAFindForm(QAItemEditForm):
model = models.Find
- form_class = QAFindFormMulti
+ form_class = forms.QAFindFormMulti
class QAFindBasketFormView(QAItemForm):
template_name = 'ishtar/forms/qa_find_basket.html'
model = models.Find
- form_class = QAFindBasketForm
+ form_class = forms.QAFindBasketForm
page_name = _(u"Basket")
modal_size = "small"
@@ -662,7 +842,7 @@ class QAFindBasketFormView(QAItemForm):
class QAFindTreatmentFormView(QAItemForm):
template_name = 'ishtar/forms/qa_find_treatment.html'
model = models.Find
- form_class = QAFindTreatmentForm
+ form_class = forms.QAFindTreatmentForm
page_name = _(u"Packaging")
def get_quick_action(self):
@@ -677,3 +857,29 @@ class QAFindTreatmentFormView(QAItemForm):
def form_valid(self, form):
form.save(self.items, self.request.user)
return HttpResponseRedirect(reverse("success"))
+
+
+class QAFindbasketDuplicateFormView(QAItemForm):
+ template_name = 'ishtar/forms/qa_findbasket_duplicate.html'
+ model = models.FindBasket
+ page_name = _(u"Duplicate")
+ modal_size = "small"
+ form_class = forms.QAFindbasketDuplicateForm
+
+ def get_quick_action(self):
+ return models.FindBasket.QUICK_ACTIONS[0]
+
+ def get_form_kwargs(self):
+ kwargs = super(QAFindbasketDuplicateFormView, self).get_form_kwargs()
+ kwargs['user'] = self.request.user
+ return kwargs
+
+ def form_valid(self, form):
+ form.save()
+ return HttpResponseRedirect(reverse("success"))
+
+ def get_context_data(self, **kwargs):
+ data = super(QAFindbasketDuplicateFormView, self).get_context_data(
+ **kwargs)
+ data['action_name'] = _(u"Duplicate")
+ return data