diff options
Diffstat (limited to 'archaeological_files/views.py')
| -rw-r--r-- | archaeological_files/views.py | 347 | 
1 files changed, 207 insertions, 140 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py index dcd1387f9..35bd9d7c8 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3  # -*- coding: utf-8 -*-  # Copyright (C) 2010-2016  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> @@ -29,14 +29,22 @@ from ishtar_common.utils import ugettext_lazy as _  from ishtar_common.views import wizard_is_available  from ishtar_common.views_item import get_item, show_item, revert_item -from archaeological_operations.wizards import AdministrativeActDeletionWizard, \ -    is_preventive, is_not_preventive +from archaeological_operations.wizards import ( +    AdministrativeActDeletionWizard, +    is_preventive, +    is_not_preventive, +)  from ishtar_common.wizards import SearchWizard  from archaeological_files import wizards -from archaeological_files.wizards import FileWizard, \ -    FileModificationWizard, FileClosingWizard, FileDeletionWizard, \ -    FileAdministrativeActWizard, FileEditAdministrativeActWizard +from archaeological_files.wizards import ( +    FileWizard, +    FileModificationWizard, +    FileClosingWizard, +    FileDeletionWizard, +    FileAdministrativeActWizard, +    FileEditAdministrativeActWizard, +)  from archaeological_operations.wizards import OperationWizard  from archaeological_operations.views import operation_creation_wizard @@ -52,19 +60,25 @@ RE_YEAR_INDEX = re.compile(r"([1-2][0-9]{3})-([0-9]+)")  # eg.: 2014-123  def autocomplete_file(request): -    if not request.user.has_perm('ishtar_common.view_file', models.File) and \ -       not request.user.has_perm('ishtar_common.view_own_file', models.File) \ -       and not request.user.ishtaruser.has_right('file_search', -                                                 session=request.session): -        return HttpResponse(content_type='text/plain') -    if not request.GET.get('term'): -        return HttpResponse(content_type='text/plain') -    q = request.GET.get('term') +    if ( +        not request.user.has_perm("ishtar_common.view_file", models.File) +        and not request.user.has_perm("ishtar_common.view_own_file", models.File) +        and not request.user.ishtaruser.has_right( +            "file_search", session=request.session +        ) +    ): +        return HttpResponse(content_type="text/plain") +    if not request.GET.get("term"): +        return HttpResponse(content_type="text/plain") +    q = request.GET.get("term")      query = Q() -    for q in q.split(' '): -        extra = Q(internal_reference__icontains=q) | \ -            Q(towns__name__icontains=q) | \ -            Q(address__icontains=q) | Q(name__icontains=q) +    for q in q.split(" "): +        extra = ( +            Q(internal_reference__icontains=q) +            | Q(towns__name__icontains=q) +            | Q(address__icontains=q) +            | Q(name__icontains=q) +        )          try:              int(q)              extra = extra | Q(year=q) | Q(numeric_reference=q) @@ -77,100 +91,121 @@ def autocomplete_file(request):          query = query & extra      limit = 20      files = models.File.objects.filter(query)[:limit] -    data = json.dumps([{'id': file.pk, 'value': str(file)} -                       for file in files]) -    return HttpResponse(data, content_type='text/plain') +    data = json.dumps([{"id": file.pk, "value": str(file)} for file in files]) +    return HttpResponse(data, content_type="text/plain") -get_file = get_item(models.File, 'get_file', 'file', -                    search_form=forms.FileSelect) +get_file = get_item(models.File, "get_file", "file", search_form=forms.FileSelect)  revert_file = revert_item(models.File)  def extra_file_dct(request, item):      dct = {} -    if (request.user.has_perm('ishtar_common.add_operation', Operation) -       or request.user.ishtaruser.has_right('add_operation')): -        dct['can_add_operation'] = True +    if request.user.has_perm( +        "ishtar_common.add_operation", Operation +    ) or request.user.ishtaruser.has_right("add_operation"): +        dct["can_add_operation"] = True      return dct -show_file = show_item(models.File, 'file', extra_dct=extra_file_dct) + +show_file = show_item(models.File, "file", extra_dct=extra_file_dct)  get_administrativeactfile = get_item( -    AdministrativeAct, 'get_administrativeactfile', 'administrativeactfile', -    base_request={"associated_file__pk__isnull": False}) +    AdministrativeAct, +    "get_administrativeactfile", +    "administrativeactfile", +    base_request={"associated_file__pk__isnull": False}, +)  def dashboard_file(request, *args, **kwargs):      """      Main dashboard      """ -    dct = {'dashboard': models.FileDashboard()} -    return render(request, 'ishtar/dashboards/dashboard_file.html', dct) +    dct = {"dashboard": models.FileDashboard()} +    return render(request, "ishtar/dashboards/dashboard_file.html", dct) +  file_search_wizard = wizards.FileSearch.as_view( -    [('general-file_search', forms.FileFormSelection)], -    label=_("File search"), url_name='file_search',) +    [("general-file_search", forms.FileFormSelection)], +    label=_("File search"), +    url_name="file_search", +)  file_creation_wizard = wizards.FileWizard.as_view( -    [('general-file_creation', forms.FileFormGeneral), -     ('towns-file_creation', TownFormset), -     ('parcels-file_creation', forms.ParcelFormset), -     ('preventive-file_creation', forms.FileFormPreventive), -     ('research-file_creation', forms.FileFormResearch), -     ('final-file_creation', forms.FinalForm)], +    [ +        ("general-file_creation", forms.FileFormGeneral), +        ("towns-file_creation", TownFormset), +        ("parcels-file_creation", forms.ParcelFormset), +        ("preventive-file_creation", forms.FileFormPreventive), +        ("research-file_creation", forms.FileFormResearch), +        ("final-file_creation", forms.FinalForm), +    ],      label=_("New file"),      condition_dict={ -        'preventive-file_creation': -            is_preventive('general-file_creation', models.FileType, -                          type_key='file_type'), -        'research-file_creation': -            is_not_preventive('general-file_creation', models.FileType, -                              type_key='file_type'), +        "preventive-file_creation": is_preventive( +            "general-file_creation", models.FileType, type_key="file_type" +        ), +        "research-file_creation": is_not_preventive( +            "general-file_creation", models.FileType, type_key="file_type" +        ),      }, -    url_name='file_creation',) +    url_name="file_creation", +)  file_modification_wizard = wizards.FileModificationWizard.as_view( -    [('selec-file_modification', forms.FileFormSelection), -     ('general-file_modification', forms.FileFormGeneralRO), -     ('towns-file_modification', TownFormset), -     ('parcels-file_modification', forms.ParcelFormset), -     ('preventive-file_modification', forms.FileFormPreventive), -     ('research-file_modification', forms.FileFormResearch), -     ('final-file_modification', forms.FinalForm)], +    [ +        ("selec-file_modification", forms.FileFormSelection), +        ("general-file_modification", forms.FileFormGeneralRO), +        ("towns-file_modification", TownFormset), +        ("parcels-file_modification", forms.ParcelFormset), +        ("preventive-file_modification", forms.FileFormPreventive), +        ("research-file_modification", forms.FileFormResearch), +        ("final-file_modification", forms.FinalForm), +    ],      label=_("File modification"),      condition_dict={ -        'preventive-file_modification': -            is_preventive('general-file_modification', -                          models.FileType, type_key='file_type'), -        'research-file_modification': -            is_not_preventive('general-file_modification', -                              models.FileType, type_key='file_type'), +        "preventive-file_modification": is_preventive( +            "general-file_modification", models.FileType, type_key="file_type" +        ), +        "research-file_modification": is_not_preventive( +            "general-file_modification", models.FileType, type_key="file_type" +        ),      }, -    url_name='file_modification',) +    url_name="file_modification", +)  def file_modify(request, pk): -    if not wizard_is_available(file_modification_wizard, request, -                               models.File, pk): +    if not wizard_is_available(file_modification_wizard, request, models.File, pk):          return HttpResponseRedirect("/")      FileModificationWizard.session_set_value( -        request, 'selec-file_modification', 'pk', pk, reset=True) -    return redirect(reverse('file_modification', -                    kwargs={'step': 'general-file_modification'})) +        request, "selec-file_modification", "pk", pk, reset=True +    ) +    return redirect( +        reverse("file_modification", kwargs={"step": "general-file_modification"}) +    ) +  file_closing_wizard = wizards.FileClosingWizard.as_view( -    [('selec-file_closing', forms.FileFormSelection), -     ('date-file_closing', ClosingDateFormSelection), -     ('final-file_closing', forms.FinalFileClosingForm)], -    label=_("File closing"), url_name='file_closing',) +    [ +        ("selec-file_closing", forms.FileFormSelection), +        ("date-file_closing", ClosingDateFormSelection), +        ("final-file_closing", forms.FinalFileClosingForm), +    ], +    label=_("File closing"), +    url_name="file_closing", +)  file_deletion_wizard = wizards.FileDeletionWizard.as_view( -    [('selec-file_deletion', forms.FileFormMultiSelection), -     ('final-file_deletion', forms.FinalFileDeleteForm)], +    [ +        ("selec-file_deletion", forms.FileFormMultiSelection), +        ("final-file_deletion", forms.FinalFileDeleteForm), +    ],      label=_("File deletion"), -    url_name='file_deletion',) +    url_name="file_deletion", +)  def file_delete(request, pk): @@ -178,74 +213,100 @@ def file_delete(request, pk):          return HttpResponseRedirect("/")      wizards.FileDeletionWizard.session_set_value( -        request, 'selec-file_deletion', 'pks', pk, reset=True) -    return redirect(reverse('file_deletion', -                            kwargs={'step': 'final-file_deletion'})) - -file_administrativeactfile_search_wizard = \ -    SearchWizard.as_view([ -        ('selec-file_administrativeactfile_search', -        forms.AdministrativeActFileFormSelection)], -        label=_("File: search administrative act"), -        url_name='file_administrativeactfile_search',) - -file_administrativeactfile_wizard = \ -    wizards.FileAdministrativeActWizard.as_view([ -        ('selec-file_administrativeactfile', forms.FileFormSelection), -        ('administrativeact-file_administrativeactfile', -         forms.AdministrativeActFileForm), -        ('final-file_administrativeactfile', forms.FinalForm)], -        label=_("File: new administrative act"), -        url_name='file_administrativeactfile',) - -file_administrativeactfile_modification_wizard = \ -    wizards.FileEditAdministrativeActWizard.as_view([ -        ('selec-file_administrativeactfile_modification', -         forms.AdministrativeActFileModifyFormSelection), -        ('administrativeact-file_administrativeactfile_modification', -         forms.AdministrativeActFileModifForm), -        ('final-file_administrativeactfile_modification', forms.FinalForm)], +        request, "selec-file_deletion", "pks", pk, reset=True +    ) +    return redirect(reverse("file_deletion", kwargs={"step": "final-file_deletion"})) + + +file_administrativeactfile_search_wizard = SearchWizard.as_view( +    [ +        ( +            "selec-file_administrativeactfile_search", +            forms.AdministrativeActFileFormSelection, +        ) +    ], +    label=_("File: search administrative act"), +    url_name="file_administrativeactfile_search", +) + +file_administrativeactfile_wizard = wizards.FileAdministrativeActWizard.as_view( +    [ +        ("selec-file_administrativeactfile", forms.FileFormSelection), +        ( +            "administrativeact-file_administrativeactfile", +            forms.AdministrativeActFileForm, +        ), +        ("final-file_administrativeactfile", forms.FinalForm), +    ], +    label=_("File: new administrative act"), +    url_name="file_administrativeactfile", +) + +file_administrativeactfile_modification_wizard = ( +    wizards.FileEditAdministrativeActWizard.as_view( +        [ +            ( +                "selec-file_administrativeactfile_modification", +                forms.AdministrativeActFileModifyFormSelection, +            ), +            ( +                "administrativeact-file_administrativeactfile_modification", +                forms.AdministrativeActFileModifForm, +            ), +            ("final-file_administrativeactfile_modification", forms.FinalForm), +        ],          label=_("File: administrative act modification"), -        url_name='file_administrativeactfile_modification',) +        url_name="file_administrativeactfile_modification", +    ) +)  def file_administrativeactfile_modify(request, pk): -    if not wizard_is_available(file_administrativeactfile_modification_wizard, -                               request, AdministrativeAct, pk): +    if not wizard_is_available( +        file_administrativeactfile_modification_wizard, request, AdministrativeAct, pk +    ):          return HttpResponseRedirect("/")      wizards.FileEditAdministrativeActWizard.session_set_value( -        request, 'selec-file_administrativeactfile_modification', -        'pk', pk, reset=True) +        request, "selec-file_administrativeactfile_modification", "pk", pk, reset=True +    )      return redirect(          reverse( -            'file_administrativeactfile_modification', +            "file_administrativeactfile_modification",              kwargs={ -                'step': -                'administrativeact-file_administrativeactfile_modification' -            })) +                "step": "administrativeact-file_administrativeactfile_modification" +            }, +        ) +    ) -file_administrativeactfile_deletion_wizard = \ -    AdministrativeActDeletionWizard.as_view([ -        ('selec-file_administrativeactfile_deletion', -         forms.AdministrativeActFileFormSelection), -        ('final-file_administrativeactfile_deletion', -         FinalAdministrativeActDeleteForm)], -        label=_("File: administrative act deletion"), -        url_name='file_administrativeactfile_deletion',) +file_administrativeactfile_deletion_wizard = AdministrativeActDeletionWizard.as_view( +    [ +        ( +            "selec-file_administrativeactfile_deletion", +            forms.AdministrativeActFileFormSelection, +        ), +        ("final-file_administrativeactfile_deletion", FinalAdministrativeActDeleteForm), +    ], +    label=_("File: administrative act deletion"), +    url_name="file_administrativeactfile_deletion", +)  def file_administrativeact_delete(request, pk): -    if not wizard_is_available(file_administrativeactfile_deletion_wizard, -                               request, AdministrativeAct, pk): +    if not wizard_is_available( +        file_administrativeactfile_deletion_wizard, request, AdministrativeAct, pk +    ):          return HttpResponseRedirect("/")      AdministrativeActDeletionWizard.session_set_value( -        request, 'selec-file_administrativeactfile_deletion', 'pk', pk, -        reset=True) +        request, "selec-file_administrativeactfile_deletion", "pk", pk, reset=True +    )      return redirect( -        reverse('file_administrativeactfile_deletion', -                kwargs={'step': 'final-file_administrativeactfile_deletion'})) +        reverse( +            "file_administrativeactfile_deletion", +            kwargs={"step": "final-file_administrativeactfile_deletion"}, +        ) +    )  def file_adminact_add(request, pk, current_right=None): @@ -255,10 +316,14 @@ def file_adminact_add(request, pk, current_right=None):          raise Http404()      file_administrativeactfile_wizard(request)      wizards.FileAdministrativeActWizard.session_set_value( -        request, 'selec-file_administrativeactfile', 'pk', pk, reset=True) -    return redirect(reverse( -        'file_administrativeactfile', -        kwargs={'step': 'administrativeact-file_administrativeactfile'})) +        request, "selec-file_administrativeactfile", "pk", pk, reset=True +    ) +    return redirect( +        reverse( +            "file_administrativeactfile", +            kwargs={"step": "administrativeact-file_administrativeactfile"}, +        ) +    )  def file_add_operation(request, pk, current_right=None): @@ -268,22 +333,24 @@ def file_add_operation(request, pk, current_right=None):          raise Http404()      operation_creation_wizard(request)      OperationWizard.session_set_value( -        request, 'filechoice-operation_creation', 'associated_file', pk, -        reset=True) -    return redirect(reverse( -        'operation_creation', -        kwargs={'step': 'general-operation_creation'})) +        request, "filechoice-operation_creation", "associated_file", pk, reset=True +    ) +    return redirect( +        reverse("operation_creation", kwargs={"step": "general-operation_creation"}) +    )  def reset_wizards(request):      for wizard_class, url_name in ( -            (FileWizard, 'file_creation'), -            (FileModificationWizard, 'file_modification'), -            (FileClosingWizard, 'file_modification'), -            (FileDeletionWizard, 'file_deletion'), -            (FileAdministrativeActWizard, 'file_administrativeactfile'), -            (FileEditAdministrativeActWizard, -             'file_administrativeactfile_modification_wizard'), -            (AdministrativeActDeletionWizard, -             'file_administrativeactfile_deletion_wizard'),): +        (FileWizard, "file_creation"), +        (FileModificationWizard, "file_modification"), +        (FileClosingWizard, "file_modification"), +        (FileDeletionWizard, "file_deletion"), +        (FileAdministrativeActWizard, "file_administrativeactfile"), +        ( +            FileEditAdministrativeActWizard, +            "file_administrativeactfile_modification_wizard", +        ), +        (AdministrativeActDeletionWizard, "file_administrativeactfile_deletion_wizard"), +    ):          wizard_class.session_reset(request, url_name)  | 
