diff options
Diffstat (limited to 'archaeological_operations')
| -rw-r--r-- | archaeological_operations/models.py | 4 | ||||
| -rw-r--r-- | archaeological_operations/urls.py | 13 | ||||
| -rw-r--r-- | archaeological_operations/views.py | 107 | 
3 files changed, 74 insertions, 50 deletions
| diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 91162f05c..601779e49 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -116,6 +116,7 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, QRCodeItem,      APP = "archaeological-operations"      MODEL = "archaeological-site"      SHOW_URL = 'show-site' +    DELETE_URL = 'delete-site'      TABLE_COLS = ['reference', 'name', 'cached_towns_label',                    'cached_periods', 'cached_remains']      NEW_QUERY_ENGINE = True @@ -596,6 +597,7 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem,      APP = "archaeological-operations"      MODEL = "operation"      SHOW_URL = 'show-operation' +    DELETE_URL = 'delete-operation'      TABLE_COLS = ['code_patriarche', 'year', 'cached_towns_label',                    'common_name', 'operation_type__label', 'start_date',                    'excavation_end_date', 'cached_remains'] @@ -2052,6 +2054,8 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):      @property      def DELETE_URL(self): +        if self.operation: +            return 'delete-administrativeact-operation'          if self.associated_file:              return 'delete-administrativeact-file'          if self.treatment: diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 38dbe2cbf..a52aab3de 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -46,6 +46,10 @@ urlpatterns = [          check_rights(['change_administrativeact'])(              views.operation_administrativeactop_deletion_wizard),          name='operation_administrativeactop_deletion'), +    url(r'operation_administrativeactop_delete/(?P<pk>.+)/$', +        views.operation_administrativeactop_delete, +        name='delete-administrativeact-operation'), +      url(r'operation_search/(?P<step>.+)?$',          check_rights(['view_operation', 'view_own_operation'])(              views.operation_search_wizard), name='operation_search'), @@ -67,6 +71,9 @@ urlpatterns = [      url(r'operation_deletion/(?P<step>.+)?$',          check_rights(['change_operation', 'change_own_operation'])(              views.operation_deletion_wizard), name='operation_deletion'), +    url(r'operation_delete/(?P<pk>.+)/$', +        views.operation_delete, name='delete-operation'), +      url(r'administrativact_register/(?P<step>.+)?$',          check_rights(['view_administrativeact', 'view_own_administrativeact'])(              views.administrativact_register_wizard), @@ -155,12 +162,14 @@ urlpatterns = [                        'change_own_archaeologicalsite'])(              views.site_modification_wizard),          name='site_modification'), +    url(r'site_modify/(?P<pk>.+)/$', +        views.site_modify, name='site_modify'),      url(r'site_deletion/(?P<step>.+)?$',          check_rights(['change_archaeologicalsite'])(              views.site_deletion_wizard),          name='site_deletion'), -    url(r'site_modify/(?P<pk>.+)/$', -        views.site_modify, name='site_modify'), +    url(r'site_delete/(?P<pk>.+)/$', +        views.site_delete, name='delete-site'),      url(r'autocomplete-patriarche/$', views.autocomplete_patriarche,          name='autocomplete-patriarche'), 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)], | 
