diff options
| -rw-r--r-- | archaeological_operations/forms.py | 9 | ||||
| -rw-r--r-- | archaeological_operations/ishtar_menu.py | 5 | ||||
| -rw-r--r-- | archaeological_operations/urls.py | 6 | ||||
| -rw-r--r-- | archaeological_operations/views.py | 14 | ||||
| -rw-r--r-- | archaeological_operations/wizards.py | 4 | 
5 files changed, 34 insertions, 4 deletions
| diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index bf69a74b5..8954dae77 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1273,7 +1273,7 @@ class SiteFormSelection(IshtarForm):              reverse_lazy('get-site'), SiteSelect,              models.ArchaeologicalSite,              source_full=reverse_lazy('get-site-full')), -        validators=[valid_id(models.Operation)]) +        validators=[valid_id(models.ArchaeologicalSite)])      @classmethod      def form_label(cls): @@ -1292,6 +1292,7 @@ class SiteForm(ManageOldType):      form_label = _(u"General")      form_admin_name = _(u"Archaeological site - 010 - General")      associated_models = {'period': models.Period, 'remain': models.RemainType} +    pk = forms.IntegerField(required=False, widget=forms.HiddenInput)      reference = forms.CharField(label=_(u"Reference"), max_length=20)      name = forms.CharField(label=_(u"Name"), max_length=200, required=False)      period = forms.MultipleChoiceField( @@ -1308,8 +1309,10 @@ class SiteForm(ManageOldType):      def clean_reference(self):          reference = self.cleaned_data['reference'] -        if models.ArchaeologicalSite.objects.filter( -                reference=reference).count(): +        q = models.ArchaeologicalSite.objects.filter(reference=reference) +        if 'pk' in self.cleaned_data and self.cleaned_data['pk']: +            q = q.exclude(pk=self.cleaned_data['pk']) +        if q.count():              raise forms.ValidationError(_(u"This reference already exists."))          return reference diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py index 55acf810b..746c25f50 100644 --- a/archaeological_operations/ishtar_menu.py +++ b/archaeological_operations/ishtar_menu.py @@ -116,6 +116,11 @@ MENU_SECTIONS = [                  model=models.ArchaeologicalSite,                  access_controls=['add_archaeologicalsite',                                   'add_own_archaeologicalsite']), +            MenuItem( +                'site_modification', _(u"Modification"), +                model=models.ArchaeologicalSite, +                access_controls=['modify_archaeologicalsite', +                                 'modify_own_archaeologicalsite']),          ]),       ),      (30, SectionItem( diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index fbca132d4..be734c031 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -168,6 +168,12 @@ urlpatterns = [                        'add_own_archaeologicalsite'])(              views.site_creation_wizard),          name='site_creation'), +    url(r'site_modification/(?P<step>.+)?$', +        check_rights(['modify_archaeologicalsite', +                      'modify_own_archaeologicalsite'])( +            views.site_modification_wizard), +        name='site_modification'), +      url(r'autocomplete-patriarche/$', views.autocomplete_patriarche,          name='autocomplete-patriarche'), diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 76f712613..4647b0fc7 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -53,7 +53,7 @@ from archaeological_operations.wizards import has_associated_file, \      OperationClosingWizard, OperationDeletionWizard, SiteSearch, \      OperationSourceWizard, OperationSourceDeletionWizard, \      OperationAdministrativeActWizard, OperationEditAdministrativeActWizard, \ -    AdministrativeActDeletionWizard, SiteWizard +    AdministrativeActDeletionWizard, SiteWizard, SiteModificationWizard  def autocomplete_patriarche(request): @@ -358,6 +358,18 @@ site_creation_wizard = SiteWizard.as_view(      url_name='site_creation',  ) +site_modification_steps = [ +    ('selec-site_modification', SiteFormSelection), +    ('general-site_modification', SiteForm), +    ('final-site_modification', FinalForm) +] + +site_modification_wizard = SiteModificationWizard.as_view( +    site_modification_steps, +    label=_(u"{} modification"), +    url_name='site_modification', +) +  # operation sources  operation_source_search_wizard = SearchWizard.as_view([ diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index 9f8ca3f6a..d5cb1d5ac 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -463,6 +463,10 @@ class SiteWizard(SiteLabel, Wizard):      model = models.ArchaeologicalSite +class SiteModificationWizard(SiteWizard): +    modification = True + +  class AdministrativeActDeletionWizard(ClosingWizard):      wizard_templates = {          'final-operation_administrativeactop_deletion': | 
