diff options
Diffstat (limited to 'archaeological_operations/views.py')
| -rw-r--r-- | archaeological_operations/views.py | 107 | 
1 files changed, 59 insertions, 48 deletions
| diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index ca09510f7..d71bd0d02 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -52,7 +52,8 @@ from ishtar_common.forms import ClosingDateFormSelection, FinalForm, \  from ishtar_common.models import get_current_profile, IshtarSiteProfile, \      DocumentTemplate  from ishtar_common.utils import put_session_message, check_rights_condition -from ishtar_common.views import gen_generate_doc, QAItemEditForm, QABaseLockView +from ishtar_common.views import gen_generate_doc, QAItemEditForm, \ +    QABaseLockView, wizard_is_available  from ishtar_common.views_item import get_item, show_item, revert_item, \      new_qa_item  from ishtar_common.wizards import SearchWizard @@ -163,7 +164,8 @@ show_operation = show_item(models.Operation, 'operation')  revert_operation = revert_item(models.Operation)  get_administrativeactop = get_item( -    models.AdministrativeAct, 'get_administrativeactop', 'administrativeactop') +    models.AdministrativeAct, 'get_administrativeactop', 'administrativeactop', +    base_request={"operation__pk__isnull": False})  get_administrativeact = get_item(      models.AdministrativeAct, 'get_administrativeact', 'administrativeact') @@ -299,27 +301,15 @@ operation_modification_wizard = OperationModificationWizard.as_view(  def operation_modify(request, pk): -    try: -        operation_modification_wizard(request) -    except IndexError:  # no step available -        put_session_message( -            request.session.session_key, -            _(u"You don't have sufficient permissions to do this action."), -            'warning' -        ) +    if not wizard_is_available(operation_modification_wizard, request, +                               models.Operation, pk):          return HttpResponseRedirect("/") -    q = models.Operation.objects.filter(pk=pk) -    if not q.count(): -        raise Http404() -    item = q.all()[0] -    if item.locked: -        raise Http404() - +    wizard_url = 'operation_modification'      OperationModificationWizard.session_set_value( -        request, 'selec-operation_modification', 'pk', pk, reset=True) -    return redirect(reverse('operation_modification', -                            kwargs={'step': 'general-operation_modification'})) +        request, 'selec-' + wizard_url, 'pk', pk, reset=True) +    return redirect(reverse(wizard_url, +                            kwargs={'step': 'general-' + wizard_url}))  def operation_add(request, file_id): @@ -352,6 +342,18 @@ operation_deletion_wizard = OperationDeletionWizard.as_view(      url_name='operation_deletion',) +def operation_delete(request, pk): +    if not wizard_is_available(operation_deletion_wizard, request, +                               models.Operation, pk): +        return HttpResponseRedirect("/") + +    wizard_url = 'operation_deletion' +    OperationDeletionWizard.session_set_value( +        request, 'selec-' + wizard_url, 'pk', pk, reset=True) +    return redirect(reverse(wizard_url, +                            kwargs={'step': 'final-' + wizard_url})) + +  # archaeological sites  def site_extra_context(request, item): @@ -401,27 +403,14 @@ site_modification_wizard = SiteModificationWizard.as_view(  def site_modify(request, pk): -    try: -        site_modification_wizard(request) -    except IndexError:  # no step available -        put_session_message( -            request.session.session_key, -            _(u"You don't have sufficient permissions to do this action."), -            'warning' -        ) +    if not wizard_is_available(site_modification_wizard, request, +                               models.ArchaeologicalSite, pk):          return HttpResponseRedirect("/") - -    q = models.ArchaeologicalSite.objects.filter(pk=pk) -    if not q.count(): -        raise Http404() -    item = q.all()[0] -    if item.locked: -        raise Http404() - +    wizard_url = 'site_modification'      SiteModificationWizard.session_set_value( -        request, 'selec-site_modification', 'pk', pk, reset=True) -    return redirect(reverse('site_modification', -                            kwargs={'step': 'general-site_modification'})) +        request, 'selec-' + wizard_url, 'pk', pk, reset=True) +    return redirect(reverse(wizard_url, +                            kwargs={'step': 'general-' + wizard_url}))  site_deletion_steps = [ @@ -434,6 +423,17 @@ site_deletion_wizard = SiteDeletionWizard.as_view(      label=_(u"Site deletion"),      url_name='site_deletion',) + +def site_delete(request, pk): +    if not wizard_is_available(site_deletion_wizard, request, +                               models.ArchaeologicalSite, pk): +        return HttpResponseRedirect("/") +    wizard_url = 'site_deletion' +    SiteDeletionWizard.session_set_value( +        request, 'selec-' + wizard_url, 'pk', pk, reset=True) +    return redirect(reverse(wizard_url, +                            kwargs={'step': 'final-' + wizard_url})) +  operation_administrativeactop_search_wizard = SearchWizard.as_view([      ('general-operation_administrativeactop_search',       AdministrativeActOpeFormSelection)], @@ -465,17 +465,15 @@ operation_administrativeactop_modification_wizard = \  def operation_administrativeactop_modify(request, pk): -    operation_administrativeactop_modification_wizard(request) +    if not wizard_is_available( +            operation_administrativeactop_modification_wizard, request, +            models.AdministrativeAct, pk): +        return HttpResponseRedirect("/") +    wizard_url = 'operation_administrativeactop_modification'      OperationEditAdministrativeActWizard.session_set_value( -        request, 'selec-operation_administrativeactop_modification', -        'pk', pk, reset=True) +        request, 'selec-' + wizard_url, 'pk', pk, reset=True)      return redirect( -        reverse( -            'operation_administrativeactop_modification', -            kwargs={ -                'step': -                'administrativeact-operation_administrativeactop_modification' -            })) +        reverse(wizard_url, kwargs={'step': 'administrativeact-' + wizard_url}))  operation_administrativeactop_deletion_wizard = \ @@ -487,6 +485,19 @@ operation_administrativeactop_deletion_wizard = \          label=_(u"Operation: administrative act deletion"),          url_name='operation_administrativeactop_deletion',) + +def operation_administrativeactop_delete(request, pk): +    if not wizard_is_available( +            operation_administrativeactop_deletion_wizard, request, +            models.AdministrativeAct, pk): +        return HttpResponseRedirect("/") +    wizard_url = 'operation_administrativeactop_deletion' +    AdministrativeActDeletionWizard.session_set_value( +        request, 'selec-' + wizard_url, 'pk', pk, reset=True) +    return redirect( +        reverse(wizard_url, kwargs={'step': 'final-' + wizard_url})) + +  administrativact_register_wizard = SearchWizard.as_view([      ('general-administrativact_register',       AdministrativeActRegisterFormSelection)], | 
