diff options
Diffstat (limited to 'archaeological_finds/views.py')
| -rw-r--r-- | archaeological_finds/views.py | 364 | 
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',)  | 
