diff options
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/forms.py | 26 | ||||
-rw-r--r-- | archaeological_operations/ishtar_menu.py | 10 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 5 | ||||
-rw-r--r-- | archaeological_operations/views.py | 18 | ||||
-rw-r--r-- | archaeological_operations/wizards.py | 10 |
5 files changed, 61 insertions, 8 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 38efb269f..bf69a74b5 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1288,6 +1288,32 @@ class SiteFormSelection(IshtarForm): return cleaned_data +class SiteForm(ManageOldType): + form_label = _(u"General") + form_admin_name = _(u"Archaeological site - 010 - General") + associated_models = {'period': models.Period, 'remain': models.RemainType} + reference = forms.CharField(label=_(u"Reference"), max_length=20) + name = forms.CharField(label=_(u"Name"), max_length=200, required=False) + period = forms.MultipleChoiceField( + label=_("Periods"), choices=[], widget=widgets.Select2Multiple, + required=False) + remain = forms.MultipleChoiceField( + label=_("Remains"), choices=[], widget=widgets.Select2Multiple, + required=False) + + TYPES = [ + FieldType('period', models.Period, True), + FieldType('remain', models.RemainType, True), + ] + + def clean_reference(self): + reference = self.cleaned_data['reference'] + if models.ArchaeologicalSite.objects.filter( + reference=reference).count(): + raise forms.ValidationError(_(u"This reference already exists.")) + return reference + + #################################### # Source management for operations # #################################### diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py index 5c2cca383..55acf810b 100644 --- a/archaeological_operations/ishtar_menu.py +++ b/archaeological_operations/ishtar_menu.py @@ -28,11 +28,6 @@ from archaeological_operations import models """ MenuItem( - 'operation_creation', _(u"Creation"), - model=models.Operation, - access_controls=['add_operation', - 'add_own_operation']), -MenuItem( 'operation_modification', _(u"Modification"), model=models.Operation, access_controls=['change_operation', @@ -116,6 +111,11 @@ MENU_SECTIONS = [ model=models.ArchaeologicalSite, access_controls=['view_archaeologicalsite', 'view_own_archaeologicalsite']), + MenuItem( + 'site_creation', _(u"Creation"), + model=models.ArchaeologicalSite, + access_controls=['add_archaeologicalsite', + 'add_own_archaeologicalsite']), ]), ), (30, SectionItem( diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 8075296e8..fbca132d4 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -163,6 +163,11 @@ urlpatterns = [ check_rights(['view_archaeologicalsite', 'view_own_archaeologicalsite'])( views.site_search_wizard), name='site_search'), + url(r'site_creation/(?P<step>.+)?$', + check_rights(['add_archaeologicalsite', + 'add_own_archaeologicalsite'])( + views.site_creation_wizard), + name='site_creation'), url(r'autocomplete-patriarche/$', views.autocomplete_patriarche, name='autocomplete-patriarche'), diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 8ca97826e..76f712613 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -42,7 +42,8 @@ from archaeological_operations.forms import ArchaeologicalSiteForm, \ SourceOperationFormSelection, OperationSourceForm, \ AdministrativeActOpeFormSelection, AdministrativeActOpeForm, \ AdministrativeActOpeModifForm, FinalAdministrativeActDeleteForm, \ - AdministrativeActRegisterFormSelection, DocumentGenerationAdminActForm + AdministrativeActRegisterFormSelection, DocumentGenerationAdminActForm, \ + SiteForm from ishtar_common.views import get_item, show_item, revert_item, new_item @@ -52,7 +53,7 @@ from archaeological_operations.wizards import has_associated_file, \ OperationClosingWizard, OperationDeletionWizard, SiteSearch, \ OperationSourceWizard, OperationSourceDeletionWizard, \ OperationAdministrativeActWizard, OperationEditAdministrativeActWizard, \ - AdministrativeActDeletionWizard + AdministrativeActDeletionWizard, SiteWizard def autocomplete_patriarche(request): @@ -333,6 +334,7 @@ operation_deletion_wizard = OperationDeletionWizard.as_view( def site_extra_context(request, item): return {'SITE_LABEL': IshtarSiteProfile.get_default_site_label()} + get_site = get_item(models.ArchaeologicalSite, 'get_site', 'site') show_site = show_item( models.ArchaeologicalSite, 'site', @@ -344,6 +346,18 @@ site_search_wizard = SiteSearch.as_view( label=_(u"{} search"), url_name='site_search',) + +site_creation_steps = [ + ('general-site_creation', SiteForm), + ('final-site_creation', FinalForm) +] + +site_creation_wizard = SiteWizard.as_view( + site_creation_steps, + label=_(u"New {}"), + url_name='site_creation', +) + # operation sources operation_source_search_wizard = SearchWizard.as_view([ diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index 01c9cbc2e..9f8ca3f6a 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -448,13 +448,21 @@ class OperationEditAdministrativeActWizard(OperationAdministrativeActWizard): return self.get_current_object().operation -class SiteSearch(SearchWizard): +class SiteLabel(object): def get_label(self): return unicode(_(u"Search {}")).format( get_current_profile().get_site_label() ) +class SiteSearch(SiteLabel, SearchWizard): + pass + + +class SiteWizard(SiteLabel, Wizard): + model = models.ArchaeologicalSite + + class AdministrativeActDeletionWizard(ClosingWizard): wizard_templates = { 'final-operation_administrativeactop_deletion': |