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.py364
1 files changed, 343 insertions, 21 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 89babe9b7..01e88c1b7 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -17,24 +17,32 @@
# See the file COPYING for details.
+import json
+
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
-from django.http import HttpResponseRedirect
+from django.db.models import Q
+from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import redirect
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 archaeological_operations.models import AdministrativeAct
+
from ishtar_common.forms import FinalForm
from ishtar_common.forms_common import SourceForm, AuthorFormset, \
SourceDeletionForm
-from ishtar_common.models import IshtarUser
+from archaeological_operations.forms import FinalAdministrativeActDeleteForm
from archaeological_context_records.forms \
import RecordFormSelection as RecordFormSelectionTable
from ishtar_common.views import get_item, show_item, revert_item, \
get_autocomplete_generic, IshtarMixin, LoginRequiredMixin
+
from ishtar_common.wizards import SearchWizard
+from archaeological_operations.wizards import AdministrativeActDeletionWizard
from wizards import *
from forms import *
@@ -45,6 +53,57 @@ get_find = get_item(models.Find, 'get_find', 'find')
get_find_for_ope = get_item(models.Find, 'get_find', 'find',
own_table_cols=models.Find.TABLE_COLS_FOR_OPE)
+get_find_for_treatment = get_item(
+ models.Find, 'get_find', 'find',
+ own_table_cols=models.Find.TABLE_COLS_FOR_OPE, base_request={})
+
+show_treatment = show_item(models.Treatment, 'treatment')
+get_treatment = get_item(models.Treatment, 'get_treatment', 'treatment')
+
+get_administrativeacttreatment = get_item(
+ AdministrativeAct, 'get_administrativeacttreatment',
+ 'administrativeacttreatment',
+ base_request={"treatment__pk__isnull": False})
+
+show_treatmentfile = show_item(models.TreatmentFile, 'treatmentfile')
+get_treatmentfile = get_item(models.TreatmentFile, 'get_treatmentfile',
+ 'treatmentfile')
+
+get_administrativeacttreatmentfile = get_item(
+ AdministrativeAct, 'get_administrativeacttreatmentfile',
+ 'administrativeacttreatmentfile',
+ base_request={"treatment_file__pk__isnull": False})
+
+
+def autocomplete_treatmentfile(request):
+ if not request.user.has_perm('ishtar_common.view_treatment',
+ models.Treatment) and \
+ not request.user.has_perm('ishtar_common.view_own_treatment',
+ models.Treatment) \
+ and not request.user.ishtaruser.has_right('treatmentfile_search',
+ session=request.session):
+ return HttpResponse(mimetype='text/plain')
+ if not request.GET.get('term'):
+ return HttpResponse(mimetype='text/plain')
+ q = request.GET.get('term')
+ query = Q()
+ for q1 in q.split(' '):
+ for q in q1.split(' '):
+ extra = Q(internal_reference__icontains=q) | \
+ Q(external_id__icontains=q) | \
+ Q(name__icontains=q)
+ try:
+ int(q)
+ extra = extra | Q(year=q) | Q(index=q)
+ except ValueError:
+ pass
+ query = query & extra
+ limit = 20
+ files = models.TreatmentFile.objects.filter(query)[:limit]
+ data = json.dumps([{'id': file.pk, 'value': unicode(file)}
+ for file in files])
+ return HttpResponse(data, mimetype='text/plain')
+
show_findsource = show_item(models.FindSource, 'findsource')
get_findsource = get_item(models.FindSource, 'get_findsource', 'findsource')
@@ -53,11 +112,15 @@ revert_find = revert_item(models.Find)
show_findbasket = show_item(models.FindBasket, 'findbasket')
-find_creation_wizard = FindWizard.as_view([
+find_creation_steps = [
('selecrecord-find_creation', RecordFormSelectionTable),
('find-find_creation', FindForm),
('dating-find_creation', DatingFormSet),
- ('final-find_creation', FinalForm)],
+ ('final-find_creation', FinalForm)
+]
+
+find_creation_wizard = FindWizard.as_view(
+ find_creation_steps,
label=_(u"New find"),
url_name='find_creation',)
@@ -282,28 +345,219 @@ get_downstreamtreatment = get_item(
models.FindDownstreamTreatments, 'get_downstreamtreatment',
'downtreatment')
-treatment_creation_wizard = TreatmentWizard.as_view([
+treatment_wizard_steps = [
+ ('file-treatment_creation', TreatmentFormFileChoice),
('basetreatment-treatment_creation', BaseTreatmentForm),
('selecfind-treatment_creation', UpstreamFindFormSelection),
- ('resultfind-treatment_creation', ResultFindForm),
- ('resultfinds-treatment_creation', ResultFindFormSet),
- ('final-treatment_creation', FinalForm)],
+ ('selecbasket-treatment_creation', SelectFindBasketForm),
+ # ('resultfind-treatment_creation', ResultFindForm),
+ # ('resultfinds-treatment_creation', ResultFindFormSet),
+ ('final-treatment_creation', FinalForm)]
+
+treatment_search_wizard = SearchWizard.as_view([
+ ('general-treatment_search', TreatmentFormSelection)],
+ label=_(u"Treatment search"),
+ url_name='treatment_search',)
+
+treatment_creation_wizard = TreatmentWizard.as_view(
+ treatment_wizard_steps,
condition_dict={
- 'selecfind-treatment_creation':
- check_not_exist('basetreatment-treatment_creation',
- 'basket'),
- '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')},
+ '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),
+ ('final-treatment_modification', FinalForm)],
+ label=_(u"Modify"),
+ url_name='treatment_modification',
+)
+
+
+def treatment_modify(request, pk):
+ treatment_modification_wizard(request)
+ 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)],
+ label=_(u"Treatment deletion"),
+ url_name='treatment_deletion',)
+
+treatment_administrativeact_search_wizard = \
+ SearchWizard.as_view([
+ ('selec-treatment_admacttreatment_search',
+ AdministrativeActTreatmentFormSelection)],
+ label=_(u"Treatment: search administrative act"),
+ url_name='treatment_admacttreatment_search',)
+
+treatment_administrativeact_wizard = \
+ TreatmentAdministrativeActWizard.as_view([
+ ('selec-treatment_admacttreatment', TreatmentFormSelection),
+ ('administrativeact-treatment_admacttreatment',
+ AdministrativeActTreatmentForm),
+ ('final-treatment_admacttreatment', FinalForm)],
+ label=_(u"Treatment: new administrative act"),
+ url_name='treatment_admacttreatment',)
+
+treatment_administrativeact_modification_wizard = \
+ TreatmentEditAdministrativeActWizard.as_view([
+ ('selec-treatment_admacttreatment_modification',
+ AdministrativeActTreatmentFormSelection),
+ ('administrativeact-treatment_admacttreatment_modification',
+ AdministrativeActTreatmentModifForm),
+ ('final-treatment_admacttreatment_modification', FinalForm)],
+ label=_(u"Treatment: administrative act modification"),
+ url_name='treatment_admacttreatment_modification',)
+
+treatment_admacttreatment_deletion_wizard = \
+ AdministrativeActDeletionWizard.as_view([
+ ('selec-treatment_admacttreatment_deletion',
+ AdministrativeActTreatmentFormSelection),
+ ('final-treatment_admacttreatment_deletion',
+ FinalAdministrativeActDeleteForm)],
+ label=_(u"Treatment: administrative act deletion"),
+ url_name='treatment_admacttreatment_deletion',)
+
+
+def treatment_administrativeacttreatment_modify(request, pk):
+ treatment_administrativeact_modification_wizard(request)
+ TreatmentEditAdministrativeActWizard.session_set_value(
+ request,
+ 'selec-treatment_admacttreatment_modification',
+ 'pk', pk, reset=True)
+ return redirect(
+ reverse(
+ 'treatment_admacttreatment_modification',
+ kwargs={
+ 'step':
+ 'administrativeact-treatment_admacttreatment_modification'
+ }))
+
+
+# treatment request
+
+treatmentfile_search_wizard = SearchWizard.as_view([
+ ('general-treatmentfile_search', TreatmentFileFormSelection)],
+ label=_(u"Treatment request search"),
+ url_name='treatmentfile_search',)
+
+treatmentfile_wizard_steps = [
+ ('treatmentfile-treatmentfile_creation', TreatmentFileForm),
+ ('final-treatmentfile_creation', FinalForm)]
+
+
+treatmentfile_creation_wizard = 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"Modify"),
+ url_name='treatmentfile_modification',
+)
+
+
+def treatmentfile_modify(request, pk):
+ treatmentfile_modification_wizard(request)
+ 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)],
+ label=_(u"Treatment request deletion"),
+ url_name='treatmentfile_deletion',)
+
+treatmentfile_admacttreatmentfile_search_wizard = \
+ SearchWizard.as_view([
+ ('selec-treatmentfle_admacttreatmentfle_search',
+ AdministrativeActTreatmentFileFormSelection)],
+ label=_(u"Treatment request: search administrative act"),
+ url_name='treatmentfle_admacttreatmentfle_search',)
+
+
+treatmentfile_admacttreatmentfile_wizard = \
+ TreatmentFileAdministrativeActWizard.as_view([
+ ('selec-treatmentfle_admacttreatmentfle', TreatmentFileFormSelection),
+ ('admact-treatmentfle_admacttreatmentfle',
+ AdministrativeActTreatmentFileForm),
+ ('final-treatmentfle_admacttreatmentfle', FinalForm)],
+ label=_(u"Treatment request: new administrative act"),
+ url_name='treatmentfle_admacttreatmentfle',)
+
+treatmentfile_admacttreatmentfile_modification_wizard = \
+ TreatmentFileEditAdministrativeActWizard.as_view([
+ ('selec-treatmentfle_admacttreatmentfle_modification',
+ AdministrativeActTreatmentFileFormSelection),
+ ('admact-treatmentfle_admacttreatmentfle_modification',
+ AdministrativeActTreatmentFileModifForm),
+ ('final-treatmentfle_admacttreatmentfle_modification', FinalForm)],
+ label=_(u"Treatment request: administrative act modification"),
+ url_name='treatmentfle_admacttreatmentfle_modification',)
+
+treatmentfile_admacttreatmentfile_deletion_wizard = \
+ AdministrativeActDeletionWizard.as_view([
+ ('selec-treatmentfle_admacttreatmentfle_deletion',
+ AdministrativeActTreatmentFileFormSelection),
+ ('final-treatmentfle_admacttreatmentfle_deletion',
+ FinalAdministrativeActDeleteForm)],
+ label=_(u"Treatment request: administrative act deletion"),
+ url_name='treatmentfle_admacttreatmentfle_deletion',)
+
+
+def treatmentfile_administrativeacttreatmentfile_modify(request, pk):
+ treatmentfile_admacttreatmentfile_modification_wizard(request)
+ TreatmentFileEditAdministrativeActWizard.session_set_value(
+ request,
+ 'selec-treatmentfle_admacttreatmentfle_modification',
+ 'pk', pk, reset=True)
+ return redirect(
+ reverse(
+ 'treatmentfle_admacttreatmentfle_modification',
+ kwargs={
+ 'step':
+ 'admact-treatmentfle_admacttreatmentfle_modification'
+ }))
+
+# sources
+
+show_treatmentsource = show_item(models.TreatmentSource, 'treatmentsource')
+get_treatmentsource = get_item(models.TreatmentSource, 'get_treatmentsource',
+ 'treatmentsource')
+
+treatment_source_search_wizard = SearchWizard.as_view([
+ ('selec-treatment_source_search', TreatmentSourceFormSelection)],
+ label=_(u"Treatment: source search"),
+ url_name='treatment_source_search',)
+
treatment_source_creation_wizard = TreatmentSourceWizard.as_view([
('selec-treatment_source_creation', SourceTreatmentFormSelection),
('source-treatment_source_creation', SourceForm),
@@ -311,4 +565,72 @@ treatment_source_creation_wizard = TreatmentSourceWizard.as_view([
('final-treatment_source_creation', FinalForm)],
url_name='treatment_source_creation',)
-"""
+treatment_source_modification_wizard = TreatmentSourceWizard.as_view([
+ ('selec-treatment_source_modification', TreatmentSourceFormSelection),
+ ('source-treatment_source_modification', SourceForm),
+ ('authors-treatment_source_modification', AuthorFormset),
+ ('final-treatment_source_modification', FinalForm)],
+ label=_(u"Treatment: source modification"),
+ url_name='treatment_source_modification',)
+
+
+def treatment_source_modify(request, pk):
+ treatment_source_modification_wizard(request)
+ TreatmentSourceWizard.session_set_value(
+ request, 'selec-treatment_source_modification', 'pk', pk, reset=True)
+ return redirect(reverse(
+ 'treatment_source_modification',
+ kwargs={'step': 'source-treatment_source_modification'}))
+
+treatment_source_deletion_wizard = TreatmentSourceDeletionWizard.as_view([
+ ('selec-treatment_source_deletion', TreatmentSourceFormSelection),
+ ('final-treatment_source_deletion', SourceDeletionForm)],
+ label=_(u"Treatment: source deletion"),
+ url_name='treatment_source_deletion',)
+
+# treatment request sources
+
+show_treatmentfilesource = show_item(models.TreatmentFileSource,
+ 'treatmentfilesource')
+get_treatmentfilesource = get_item(
+ models.TreatmentFileSource, 'get_treatmentfilesource',
+ 'treatmentfilesource')
+
+treatmentfile_source_search_wizard = SearchWizard.as_view([
+ ('selec-treatmentfile_source_search', TreatmentFileSourceFormSelection)],
+ label=_(u"Treatment request: source search"),
+ url_name='treatmentfile_source_search',)
+
+treatmentfile_source_creation_wizard = TreatmentFileSourceWizard.as_view([
+ ('selec-treatmentfile_source_creation', SourceTreatmentFileFormSelection),
+ ('source-treatmentfile_source_creation', SourceForm),
+ ('authors-treatmentfile_source_creation', AuthorFormset),
+ ('final-treatmentfile_source_creation', FinalForm)],
+ url_name='treatmentfile_source_creation',)
+
+treatmentfile_source_modification_wizard = TreatmentFileSourceWizard.as_view([
+ ('selec-treatmentfile_source_modification',
+ TreatmentFileSourceFormSelection),
+ ('source-treatmentfile_source_modification', SourceForm),
+ ('authors-treatmentfile_source_modification', AuthorFormset),
+ ('final-treatmentfile_source_modification', FinalForm)],
+ label=_(u"Treatment request: source modification"),
+ url_name='treatmentfile_source_modification',)
+
+
+def treatmentfile_source_modify(request, pk):
+ treatmentfile_source_modification_wizard(request)
+ TreatmentFileSourceWizard.session_set_value(
+ request, 'selec-treatmentfile_source_modification', 'pk', pk,
+ reset=True)
+ return redirect(reverse(
+ 'treatmentfile_source_modification',
+ kwargs={'step': 'source-treatmentfile_source_modification'}))
+
+treatmentfile_source_deletion_wizard = \
+ TreatmentFileSourceDeletionWizard.as_view([
+ ('selec-treatmentfile_source_deletion',
+ TreatmentFileSourceFormSelection),
+ ('final-treatmentfile_source_deletion', SourceDeletionForm)],
+ label=_(u"Treatment request: source deletion"),
+ url_name='treatmentfile_source_deletion',)