From 1cac1c5a18082c804f2a6600aa3c689ddd78f84a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 2 Jan 2018 16:25:56 +0100 Subject: Custom form: operations forms - change name and slugs --- archaeological_operations/forms.py | 72 +++++++++++++++++++++----------------- archaeological_operations/views.py | 3 +- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 6966fff50..215ade6ca 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -51,7 +51,7 @@ from ishtar_common.forms import FinalForm, FormSet, get_now, \ reverse_lazy, get_form_selection, TableSelect, get_data_from_formset, \ ManageOldType, CustomForm, FieldType from ishtar_common.forms_common import TownFormSet, SourceForm, SourceSelect, \ - get_town_field + get_town_field, TownForm from archaeological_operations.utils import parse_parcels @@ -477,8 +477,8 @@ class RecordRelationsFormSetBase(FormSet): RecordRelationsFormSet = formset_factory( RecordRelationsForm, can_delete=True, formset=RecordRelationsFormSetBase) RecordRelationsFormSet.form_label = _(u"Relations") -RecordRelationsFormSet.form_admin_name = _("Operations - Relations") -RecordRelationsFormSet.form_slug = "operation-relations" +RecordRelationsFormSet.form_admin_name = _(u"Operation - 080 - Relations") +RecordRelationsFormSet.form_slug = "operation-080-relations" class OperationSelect(TableSelect): @@ -679,8 +679,8 @@ class OperationFormFileChoice(forms.Form): class OperationFormAbstract(CustomForm, forms.Form): form_label = _(u"Abstract") - form_admin_name = _("Operations - Abstract") - form_slug = "operation-abstract" + form_admin_name = _(u"Operation - 090 - Abstract") + form_slug = "operation-090-abstract" abstract = forms.CharField( label=_(u"Abstract"), widget=forms.Textarea(attrs={'class': 'xlarge'}), required=False) @@ -768,8 +768,8 @@ class DashboardForm(forms.Form): class OperationFormGeneral(ManageOldType, CustomForm, forms.Form): form_label = _(u"General") - form_admin_name = _(u"Operation - General") - form_slug = "operation-general" + form_admin_name = _(u"Operation - 010 - General") + form_slug = "operation-010-general" file_upload = True associated_models = {'scientist': Person, @@ -1014,8 +1014,8 @@ OperationFormModifGeneral.associated_models['associated_file'] = File class CollaboratorForm(CustomForm, forms.Form): form_label = _(u"Collaborators") - form_admin_name = _(u"Operation - Collaborators") - form_slug = "operation-collaborators" + form_admin_name = _(u"Operation - 020 - Collaborators") + form_slug = "operation-020-collaborators" base_models = ['collaborator'] associated_models = {'collaborator': Person, } @@ -1030,8 +1030,8 @@ class CollaboratorForm(CustomForm, forms.Form): class OperationFormPreventive(CustomForm, forms.Form): form_label = _(u"Preventive informations - excavation") - form_admin_name = _(u"Operation - Preventive - Excavation") - form_slug = "operation-preventive-excavation" + form_admin_name = _(u"Operation - 033 - Preventive - Excavation") + form_slug = "operation-033-preventive-excavation" cost = forms.IntegerField(label=_(u"Cost (euros)"), required=False) scheduled_man_days = forms.IntegerField(label=_(u"Scheduled man-days"), @@ -1049,8 +1049,8 @@ class OperationFormPreventive(CustomForm, forms.Form): class OperationFormPreventiveDiag(CustomForm, forms.Form): form_label = _("Preventive informations - diagnostic") - form_admin_name = _(u"Operation - Preventive - Diagnostic") - form_slug = "operation-preventive-diagnostic" + form_admin_name = _(u"Operation - 037 - Preventive - Diagnostic") + form_slug = "operation-037-preventive-diagnostic" if settings.COUNTRY == 'fr': zoning_prescription = forms.NullBooleanField( @@ -1080,7 +1080,13 @@ class SelectedTownForm(forms.Form): SelectedTownFormset = formset_factory(SelectedTownForm, can_delete=True, formset=TownFormSet) SelectedTownFormset.form_label = _(u"Towns") -SelectedTownFormset.form_slug = "towns" +SelectedTownFormset.form_admin_name = _(u"Operation - 040 - Towns") +SelectedTownFormset.form_slug = "operation-040-towns" + +TownFormset = formset_factory(TownForm, can_delete=True, formset=TownFormSet) +TownFormset.form_label = _("Towns") +TownFormset.form_admin_name = _(u"Operation - 040 - Towns (2)") +TownFormset.form_slug = "operation-040-towns-2" class SelectedParcelForm(forms.Form): @@ -1101,13 +1107,15 @@ class SelectedParcelForm(forms.Form): SelectedParcelFormSet = formset_factory(SelectedParcelForm, can_delete=True, formset=ParcelFormSet) SelectedParcelFormSet.form_label = _("Parcels") -SelectedParcelFormSet.form_admin_name = _(u"Operations - Parcels") -SelectedParcelFormSet.form_slug = "operation-parcels" +SelectedParcelFormSet.form_admin_name = _(u"Operation - 050 - Parcels") +SelectedParcelFormSet.form_slug = "operation-050-parcels" SelectedParcelGeneralFormSet = formset_factory(ParcelForm, can_delete=True, formset=ParcelFormSet) -SelectedParcelGeneralFormSet.form_admin_name = _("Parcels") -SelectedParcelGeneralFormSet.form_slug = "operation-parcels" +SelectedParcelGeneralFormSet.form_label = _("Parcels") +SelectedParcelGeneralFormSet.form_admin_name = _( + u"Operation - 050 - Parcels (2)") +SelectedParcelGeneralFormSet.form_slug = "operation-050-parcels-2" """ class SelectedParcelFormSet(forms.Form): @@ -1136,9 +1144,9 @@ class SelectedParcelFormSet(forms.Form): class RemainForm(CustomForm, ManageOldType, forms.Form): - form_label = _("Remain types") - form_admin_name = _("Operations - Remains") - form_slug = "operation-remains" + form_label = _(u"Remain types") + form_admin_name = _(u"Operation - 060 - Remains") + form_slug = "operation-060-remains" base_model = 'remain' associated_models = {'remain': models.RemainType} @@ -1152,9 +1160,9 @@ class RemainForm(CustomForm, ManageOldType, forms.Form): class PeriodForm(CustomForm, ManageOldType, forms.Form): - form_label = _("Periods") - form_admin_name = _("Operations - Periods") - form_slug = "operation-periods" + form_label = _(u"Periods") + form_admin_name = _(u"Operation - 070 - Periods") + form_slug = "operation-070-periods" base_model = 'period' associated_models = {'period': models.Period} @@ -1222,12 +1230,12 @@ class ArchaeologicalSiteBasicForm(forms.Form): required=False) -ArchaeologicalSiteFormSet = formset_factory(ArchaeologicalSiteBasicForm, - can_delete=True, formset=FormSet) -ArchaeologicalSiteFormSet.form_label = _("Archaeological sites") -ArchaeologicalSiteFormSet.form_admin_name = _("Operation - Archaeological " - "sites") -ArchaeologicalSiteFormSet.form_slug = "operation-archaeological-sites" +ArchaeologicalSiteFormSet = formset_factory( + ArchaeologicalSiteBasicForm, can_delete=True, formset=FormSet) +ArchaeologicalSiteFormSet.form_label = _(u"Archaeological sites") +ArchaeologicalSiteFormSet.form_admin_name = _( + u"Operation - 030 - Archaeological sites") +ArchaeologicalSiteFormSet.form_slug = "operation-030-archaeological-sites" class ArchaeologicalSiteSelectionForm(forms.Form): @@ -1255,7 +1263,7 @@ class OperationDeletionForm(FinalForm): class OperationSourceForm(SourceForm): - form_admin_name = _("Operation Sources - Main") + form_admin_name = _("Operation source - General") form_slug = "operation-source-relations" pk = forms.IntegerField(required=False, widget=forms.HiddenInput) @@ -1407,7 +1415,7 @@ class AdministrativeActOpeFormSelection(forms.Form): class AdministrativeActOpeForm(CustomForm, ManageOldType, forms.Form): form_label = _("General") - form_admin_name = _("Operations - Administrative act - General") + form_admin_name = _(u"Operation - Administrative act - General") form_slug = "operation-adminact-general" associated_models = {'act_type': models.ActType, } diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index f295e0f9d..a4cb1f673 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -28,8 +28,7 @@ from django.utils.translation import ugettext_lazy as _, pgettext_lazy from ishtar_common.views import get_item, show_item, revert_item, new_item from ishtar_common.wizards import SearchWizard, check_rights_condition from ishtar_common.forms import ClosingDateFormSelection -from ishtar_common.forms_common import AuthorFormset, TownFormset, \ - SourceDeletionForm +from ishtar_common.forms_common import AuthorFormset, SourceDeletionForm from ishtar_common.models import get_current_profile from wizards import * from forms import * -- cgit v1.2.3 From cba23bc33928cc5c3a047efdcf1ad1d56ed32bc7 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 2 Jan 2018 16:27:36 +0100 Subject: Custom form: context records forms --- archaeological_context_records/forms.py | 72 ++++++++++++++++----------------- ishtar_common/forms_common.py | 1 + 2 files changed, 35 insertions(+), 38 deletions(-) diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index c310e98fa..7cc94bb9a 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -37,14 +37,17 @@ import models from ishtar_common import widgets from archaeological_operations.widgets import OAWidget from ishtar_common.forms import FinalForm, FormSet, \ - reverse_lazy, get_form_selection, TableSelect, ManageOldType + reverse_lazy, get_form_selection, TableSelect, ManageOldType, CustomForm,\ + FieldType from ishtar_common.forms_common import get_town_field, SourceSelect from archaeological_operations.forms import OperationSelect, ParcelField,\ RecordRelationsForm as OpeRecordRelationsForm, RecordRelationsFormSetBase -class OperationFormSelection(forms.Form): +class OperationFormSelection(CustomForm, forms.Form): form_label = _("Operation") + form_admin_name = _(u"Context record - 010 - Operation choice") + form_slug = "contextrecord-010-operationchoice" associated_models = {'operation': Operation} currents = {'operation': Operation} operation = forms.IntegerField( @@ -129,8 +132,10 @@ class RecordFormSelection(forms.Form): return cleaned_data -class RecordFormGeneral(ManageOldType, forms.Form): +class RecordFormGeneral(CustomForm, ManageOldType, forms.Form): form_label = _("General") + form_admin_name = _(u"Context record - 020 - General") + form_slug = "contextrecord-020-general" file_upload = True base_models = ["documentation"] associated_models = { @@ -175,6 +180,12 @@ class RecordFormGeneral(ManageOldType, forms.Form): 'height': settings.IMAGE_MAX_SIZE[1]}), max_length=255, required=False, widget=widgets.ImageFileInput()) + TYPES = [ + FieldType('unit', models.Unit), + FieldType('excavation_technic', models.ExcavationTechnicType), + FieldType('documentation', models.DocumentationType, is_multiple=True) + ] + def __init__(self, *args, **kwargs): # TODO: simplify operation = None @@ -222,19 +233,6 @@ class RecordFormGeneral(ManageOldType, forms.Form): (" - ".join([k for k in key if k]), [(parcel.pk, parcel.short_label) for parcel in gparcels]) ) - self.fields['unit'].choices = models.Unit.get_types( - initial=self.init_data.get('unit')) - self.fields['unit'].help_text = models.Unit.get_help() - self.fields['excavation_technic'].choices = \ - models.ExcavationTechnicType.get_types( - initial=self.init_data.get('excavation_technic')) - self.fields['excavation_technic'].help_text = \ - models.ExcavationTechnicType.get_help() - self.fields['documentation'].choices = \ - models.DocumentationType.get_types(empty_first=False, - initial=self.init_data.get('documentation')) - self.fields['documentation'].help_text = \ - models.DocumentationType.get_help() def clean(self): # manage unique context record ID @@ -264,22 +262,18 @@ class DatingForm(ManageOldType, forms.Form): dating_type = forms.ChoiceField(label=_("Dating type"), required=False, choices=[]) - def __init__(self, *args, **kwargs): - super(DatingForm, self).__init__(*args, **kwargs) - self.fields['dating_type'].choices = models.DatingType.get_types( - initial=self.init_data.get('dating_type')) - self.fields['dating_type'].help_text = models.DatingType.get_help() - self.fields['quality'].choices = models.DatingQuality.get_types( - initial=self.init_data.get('quality')) - self.fields['quality'].help_text = models.DatingQuality.get_help() - self.fields['period'].choices = Period.get_types( - initial=self.init_data.get('period')) - self.fields['period'].help_text = Period.get_help() + TYPES = [ + FieldType('dating_type', models.DatingType), + FieldType('quality', models.DatingQuality), + FieldType('period', models.Period) + ] DatingFormSet = formset_factory(DatingForm, can_delete=True, formset=FormSet) DatingFormSet.form_label = _("Dating") +DatingFormSet.form_admin_name = _(u"Context record - 030 - Dating") +DatingFormSet.form_slug = "contextrecord-030-datings" class RecordRelationsForm(OpeRecordRelationsForm): @@ -301,13 +295,19 @@ class RecordRelationsForm(OpeRecordRelationsForm): if crs: self.fields['right_record'].choices = [('', '-' * 2)] + crs + RecordRelationsFormSet = formset_factory( RecordRelationsForm, can_delete=True, formset=RecordRelationsFormSetBase) RecordRelationsFormSet.form_label = _(u"Relations") +RecordRelationsFormSet.form_admin_name = _(u"Context record - 050 - Relations") +RecordRelationsFormSet.form_slug = "contextrecord-050-recordrelations" -class RecordFormInterpretation(ManageOldType, forms.Form): +class RecordFormInterpretation(CustomForm, ManageOldType, forms.Form): form_label = _("Interpretation") + form_admin_name = "Context record - 040 - Interpretation" + form_slug = "contextrecord-040-interpretation" + associated_models = {'activity': models.ActivityType, 'identification': models.IdentificationType} datings_comment = forms.CharField( @@ -328,16 +328,11 @@ class RecordFormInterpretation(ManageOldType, forms.Form): tpq_estimated = forms.IntegerField(label=_(u"Estimated TPQ"), required=False) - def __init__(self, *args, **kwargs): - super(RecordFormInterpretation, self).__init__(*args, **kwargs) - self.fields['activity'].choices = models.ActivityType.get_types( - initial=self.init_data.get('activity')) - self.fields['activity'].help_text = models.ActivityType.get_help() - self.fields['identification'].choices = \ - models.IdentificationType.get_types( - initial=self.init_data.get('identification')) - self.fields['identification'].help_text = \ - models.IdentificationType.get_help() + TYPES = [ + FieldType('activity', models.ActivityType), + FieldType('identification', models.IdentificationType), + ] + OperationRecordFormSelection = get_form_selection( 'OperationRecordFormSelection', _(u"Operation search"), 'operation_id', @@ -353,6 +348,7 @@ class RecordDeletionForm(FinalForm): # Source management for context records # ######################################### + SourceRecordFormSelection = get_form_selection( 'SourceRecordFormSelection', _(u"Context record search"), 'context_record', models.ContextRecord, RecordSelect, 'get-contextrecord', diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 32c91b683..7f4d94449 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -731,6 +731,7 @@ class TownFormSet(FormSet): return self.check_duplicate(('town',), _("There are identical towns.")) + TownFormset = formset_factory(TownForm, can_delete=True, formset=TownFormSet) TownFormset.form_label = _("Towns") TownFormset.form_admin_name = _(u"Towns") -- cgit v1.2.3 From ffcc9a1b31a6ba783b4ab6032fc7039c739d568e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 2 Jan 2018 16:56:15 +0100 Subject: Custom form: finds forms --- archaeological_finds/forms.py | 79 ++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 50 deletions(-) diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 2a895064f..eca12f6e9 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -43,7 +43,7 @@ from ishtar_common.forms import FormSet, FloatField, \ get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm, \ ManageOldType, FieldType -from ishtar_common.forms_common import get_town_field, SourceSelect +from ishtar_common.forms_common import get_town_field, SourceSelect, CustomForm from ishtar_common.utils import convert_coordinates_to_point from ishtar_common import widgets from archaeological_operations.widgets import OAWidget @@ -92,8 +92,10 @@ __all__ = [ logger = logging.getLogger(__name__) -class RecordFormSelection(forms.Form): +class RecordFormSelection(CustomForm, forms.Form): form_label = _("Context record") + form_admin_name = _(u"Find - 010 - Context record choice") + form_slug = "find-010-contextrecord" base_models = ['get_first_base_find'] associated_models = {'get_first_base_find__context_record': ContextRecord} get_first_base_find__context_record = forms.IntegerField( @@ -124,9 +126,11 @@ class RecordFormSelection(forms.Form): cr.operation.pk) -class FindForm(ManageOldType, forms.Form): +class FindForm(CustomForm, ManageOldType, forms.Form): file_upload = True form_label = _("Find") + form_admin_name = _(u"Find - 020 - General") + form_slug = "find-020-general" base_models = ['get_first_base_find', 'object_type', 'material_type', 'integritie', 'remarkabilitie'] associated_models = {'material_type': models.MaterialType, @@ -206,6 +210,14 @@ class FindForm(ManageOldType, forms.Form): 'height': settings.IMAGE_MAX_SIZE[1]}), max_length=255, required=False, widget=widgets.ImageFileInput()) + TYPES = [ + FieldType('material_type', models.MaterialType, is_multiple=True), + FieldType('object_type', models.ObjectType, is_multiple=True), + FieldType('get_first_base_find__batch', models.BatchType), + FieldType('integritie', models.IntegrityType, is_multiple=True), + FieldType('remarkabilitie', models.RemarkabilityType, is_multiple=True) + ] + def __init__(self, *args, **kwargs): super(FindForm, self).__init__(*args, **kwargs) if not get_current_profile().mapping: @@ -224,35 +236,6 @@ class FindForm(ManageOldType, forms.Form): self.fields[srs].help_text = \ SpatialReferenceSystem.get_help() self.fields['checked'].choices = models.CHECK_CHOICES - self.fields['material_type'].choices = models.MaterialType.get_types( - initial=self.init_data.get('material_type'), - empty_first=False - ) - self.fields['material_type'].help_text = models.MaterialType.get_help() - - self.fields['object_type'].choices = models.ObjectType.get_types( - initial=self.init_data.get('object_type'), - empty_first=False - ) - self.fields['object_type'].help_text = models.ObjectType.get_help() - - self.fields['get_first_base_find__batch'].choices = \ - models.BatchType.get_types( - initial=self.init_data.get('get_first_base_find__batch')) - self.fields['get_first_base_find__batch'].help_text = \ - models.BatchType.get_help() - self.fields['integritie'].choices = \ - models.IntegrityType.get_types( - empty_first=False, - initial=self.init_data.get('integritie')) - self.fields['integritie'].help_text = \ - models.IntegrityType.get_help() - self.fields['remarkabilitie'].choices = \ - models.RemarkabilityType.get_types( - empty_first=False, - initial=self.init_data.get('remarkabilitie')) - self.fields['remarkabilitie'].help_text = \ - models.RemarkabilityType.get_help() self.fields['estimated_value'].label = u"{} ({})".format( unicode(self.fields['estimated_value'].label), get_current_profile().currency) @@ -285,8 +268,10 @@ class FindForm(ManageOldType, forms.Form): return self.cleaned_data -class PreservationForm(ManageOldType, forms.Form): +class PreservationForm(CustomForm, ManageOldType, forms.Form): form_label = _("Preservation") + form_admin_name = _(u"Find - 030 - Preservation") + form_slug = "find-030-preservation" base_models = ['alteration', 'alteration_cause', 'preservation_to_consider'] associated_models = {'alteration': models.AlterationType, @@ -346,23 +331,18 @@ class DateForm(ManageOldType, forms.Form): required=False, choices=[]) precise_dating = forms.CharField(label=_("Precise dating"), required=False) - - def __init__(self, *args, **kwargs): - super(DateForm, self).__init__(*args, **kwargs) - self.fields['dating_type'].choices = DatingType.get_types( - initial=self.init_data.get('dating_type')) - self.fields['dating_type'].help_text = DatingType.get_help() - self.fields['period'].choices = Period.get_types( - initial=self.init_data.get('period')) - self.fields['period'].help_text = Period.get_help() - self.fields['quality'].choices = DatingQuality.get_types( - initial=self.init_data.get('quality')) - self.fields['quality'].help_text = DatingQuality.get_help() + TYPES = [ + FieldType('dating_type', DatingType), + FieldType('period', Period), + FieldType('quality', DatingQuality), + ] DatingFormSet = formset_factory(DateForm, can_delete=True, formset=FormSet) DatingFormSet.form_label = _("Dating") +DatingFormSet.form_admin_name = _(u"Find - 040 - Dating") +DatingFormSet.form_slug = "find-040-dating" class FindSelect(TableSelect): @@ -660,11 +640,10 @@ class ResultFindForm(ManageOldType, forms.Form): weight = forms.IntegerField(label=_(u"Weight (g)")) find_number = forms.IntegerField(label=_(u"Find number")) - def __init__(self, *args, **kwargs): - super(ResultFindForm, self).__init__(*args, **kwargs) - self.fields['material_type'].choices = models.MaterialType.get_types( - initial=self.init_data.get('material_type')) - self.fields['material_type'].help_text = models.MaterialType.get_help() + TYPES = [ + FieldType('material_type', models.MaterialType) + ] + ResultFindFormSet = formset_factory(ResultFindForm, can_delete=True, formset=FormSet) -- cgit v1.2.3 From dc554527696e3fa96b589330a60d278192eb399d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 2 Jan 2018 17:06:56 +0100 Subject: Fix tests for custom forms (update slugs) --- archaeological_operations/tests.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index af6199774..21b7da2a0 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -1178,7 +1178,7 @@ class CustomFormTest(TestCase, OperationInitTest): key_in_charge, response.content, msg="filter all - 'in charge' field not found on the modification " "wizard") - f = CustomForm.objects.create(name="Test", form="operation-general", + f = CustomForm.objects.create(name="Test", form="operation-010-general", available=True, apply_to_all=True) ExcludedField.objects.create(custom_form=f, field="in_charge") @@ -1190,7 +1190,7 @@ class CustomFormTest(TestCase, OperationInitTest): # user type form prevail on "all" f_scientist = CustomForm.objects.create( - name="Test", form="operation-general", available=True) + name="Test", form="operation-010-general", available=True) tpe = PersonType.objects.get(txt_idx='head_scientist') key_address = "address" f_scientist.user_types.add(tpe) @@ -1208,7 +1208,7 @@ class CustomFormTest(TestCase, OperationInitTest): # user prevail on "all" and "user_types" f_user = CustomForm.objects.create( - name="Test", form="operation-general", available=True) + name="Test", form="operation-010-general", available=True) f_user.users.add(self.user.ishtaruser) self.user.ishtaruser.person.person_types.add(tpe) response = c.post(url, data) @@ -1239,7 +1239,7 @@ class CustomFormTest(TestCase, OperationInitTest): response = c.post(url, data) self.assertNotEqual(response.status_code, 404) CustomForm.objects.create( - name="Test2", form="operation-collaborators", available=True, + name="Test2", form="operation-020-collaborators", available=True, apply_to_all=True, enabled=False) response = c.post(url, data) self.assertEqual(response.status_code, 404) -- cgit v1.2.3 From 7101be68fefe107a5037b11e0f1b9c209e712145 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 2 Jan 2018 18:23:45 +0100 Subject: Custom form: change label --- ishtar_common/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index b0751f661..626770011 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1651,6 +1651,9 @@ class CustomForm(models.Model): verbose_name_plural = _(u"Custom forms") ordering = ['name', 'form'] + def __unicode__(self): + return u"{} - {}".format(self.name, self.form) + def users_lbl(self): users = [unicode(user) for user in self.users.all()] return " ; ".join(users) -- cgit v1.2.3 From 99860f574a9af4c95ee888a839b2fc2e9391a935 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 11:26:01 +0100 Subject: Custom form: treatment form --- archaeological_finds/forms_treatments.py | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index 99813ea31..93a98bf1a 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -37,7 +37,7 @@ from archaeological_operations.forms import AdministrativeActOpeForm, \ AdministrativeActOpeFormSelection, AdministrativeActModifForm from ishtar_common.forms import reverse_lazy, TableSelect, FinalForm, \ - ManageOldType, get_form_selection + ManageOldType, get_form_selection, CustomForm, FieldType from ishtar_common.forms_common import SourceSelect from ishtar_common import widgets @@ -75,8 +75,10 @@ class TreatmentFormSelection(forms.Form): validators=[valid_id(models.Treatment)]) -class BaseTreatmentForm(ManageOldType, forms.Form): +class BaseTreatmentForm(CustomForm, ManageOldType, forms.Form): form_label = _(u"Base treatment") + form_admin_name = _(u"Treatment - 020 - General") + form_slug = "treatment-020-general" base_models = ['treatment_type'] associated_models = {'treatment_type': models.TreatmentType, 'person': Person, @@ -154,6 +156,13 @@ class BaseTreatmentForm(ManageOldType, forms.Form): 'height': settings.IMAGE_MAX_SIZE[1]}), max_length=255, required=False, widget=widgets.ImageFileInput()) + TYPES = [ + FieldType('treatment_state', models.TreatmentState), + FieldType('treatment_type', models.TreatmentType, is_multiple=True, + extra_args={'dct': {'upstream_is_many': False, + 'downstream_is_many': False}}) + ] + def __init__(self, *args, **kwargs): user = kwargs.pop('user') super(BaseTreatmentForm, self).__init__(*args, **kwargs) @@ -172,20 +181,6 @@ class BaseTreatmentForm(ManageOldType, forms.Form): self.fields['organization'].initial = person.attached_to.pk self.fields['target_is_basket'].widget.choices = \ ((False, _(u"Single find")), (True, _(u"Basket"))) - self.fields['treatment_type'].choices = models.TreatmentType.get_types( - initial=self.init_data.get('treatment_type'), - dct={'upstream_is_many': False, 'downstream_is_many': False}, - empty_first=False - ) - self.fields['treatment_type'].help_text = \ - models.TreatmentType.get_help( - dct={'upstream_is_many': False, 'downstream_is_many': False}) - self.fields['treatment_state'].choices = \ - models.TreatmentState.get_types( - initial=self.init_data.get('treatment_state'), - ) - self.fields['treatment_state'].help_text = \ - models.TreatmentState.get_help() # TODO """ self.fields['basket'].required = False @@ -266,8 +261,10 @@ class TreatmentModifyForm(BaseTreatmentForm): return cleaned_data -class TreatmentFormFileChoice(forms.Form): +class TreatmentFormFileChoice(CustomForm, forms.Form): form_label = _(u"Associated request") + form_admin_name = _(u"Treatment - 010 - Request choice") + form_slug = "treatment-010-requestchoice" associated_models = {'file': models.TreatmentFile, } currents = {'file': models.TreatmentFile} file = forms.IntegerField( -- cgit v1.2.3 From 7ba3671effea5b4b92ca86e770a4a544e4ce5052 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 11:48:54 +0100 Subject: Custom form: administrativ act forms --- archaeological_files/forms.py | 15 +++++++-------- archaeological_finds/forms_treatments.py | 27 ++++++++++++--------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index afb62ae4f..5085455d8 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -35,7 +35,7 @@ from archaeological_operations.models import ActType, AdministrativeAct, \ OperationType import models from ishtar_common.forms import FinalForm, get_now, reverse_lazy, TableSelect, \ - ManageOldType + ManageOldType, CustomForm, FieldType from ishtar_common.forms_common import get_town_field from archaeological_operations.forms import AdministrativeActOpeForm, \ AdministrativeActOpeFormSelection, \ @@ -528,15 +528,14 @@ class AdministrativeActFileModifyFormSelection( class AdministrativeActFileForm(AdministrativeActOpeForm): + form_admin_name = _(u"Archaeological files - Administrative act - General") + form_slug = "file-adminact-general" act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) - def __init__(self, *args, **kwargs): - super(AdministrativeActFileForm, self).__init__(*args, **kwargs) - self.fields['act_type'].choices = ActType.get_types( - initial=self.init_data.get('act_type'), - dct={'intented_to': 'F'}) - self.fields['act_type'].help_text = ActType.get_help( - dct={'intented_to': 'F'}) + TYPES = [ + FieldType('act_type', ActType, + extra_args={"dct": {'intented_to': 'F'}}), + ] class AdministrativeActFileModifForm(AdministrativeActModifForm, diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index 93a98bf1a..4e5994ca9 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -380,15 +380,14 @@ class AdministrativeActTreatmentFormSelection( class AdministrativeActTreatmentForm(AdministrativeActOpeForm): + form_admin_name = _(u"Treatment - Administrative act - General") + form_slug = "treatment-adminact-general" act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) - def __init__(self, *args, **kwargs): - super(AdministrativeActTreatmentForm, self).__init__(*args, **kwargs) - self.fields['act_type'].choices = ActType.get_types( - initial=self.init_data.get('act_type'), - dct={'intented_to': 'T'}) - self.fields['act_type'].help_text = ActType.get_help( - dct={'intented_to': 'T'}) + TYPES = [ + FieldType('act_type', ActType, + extra_args={"dct": {'intented_to': 'T'}}), + ] class AdministrativeActTreatmentModifForm( @@ -637,16 +636,14 @@ class AdministrativeActTreatmentFileFormSelection( class AdministrativeActTreatmentFileForm(AdministrativeActOpeForm): + form_admin_name = _(u"Treatment request - Administrative act - General") + form_slug = "treatmentfile-adminact-general" act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) - def __init__(self, *args, **kwargs): - super(AdministrativeActTreatmentFileForm, self).__init__(*args, - **kwargs) - self.fields['act_type'].choices = ActType.get_types( - initial=self.init_data.get('act_type'), - dct={'intented_to': 'TF'}) - self.fields['act_type'].help_text = ActType.get_help( - dct={'intented_to': 'TF'}) + TYPES = [ + FieldType('act_type', ActType, + extra_args={"dct": {'intented_to': 'TF'}}), + ] class AdministrativeActTreatmentFileModifForm( -- cgit v1.2.3 From 61b8b7bd6e2ac8e16accc573fa65f0b5db159d0a Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 11:55:03 +0100 Subject: Custom form: generic source --- archaeological_files/forms.py | 2 +- archaeological_operations/forms.py | 3 --- ishtar_common/forms_common.py | 3 +++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 5085455d8..7c254f936 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -528,7 +528,7 @@ class AdministrativeActFileModifyFormSelection( class AdministrativeActFileForm(AdministrativeActOpeForm): - form_admin_name = _(u"Archaeological files - Administrative act - General") + form_admin_name = _(u"Archaeological file - Administrative act - General") form_slug = "file-adminact-general" act_type = forms.ChoiceField(label=_(u"Act type"), choices=[]) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 215ade6ca..b85b5e937 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1263,9 +1263,6 @@ class OperationDeletionForm(FinalForm): class OperationSourceForm(SourceForm): - form_admin_name = _("Operation source - General") - form_slug = "operation-source-relations" - pk = forms.IntegerField(required=False, widget=forms.HiddenInput) index = forms.IntegerField(label=_(u"Index")) hidden_operation_id = forms.IntegerField(label="", diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 7f4d94449..dadeefee0 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -865,6 +865,9 @@ class MergeOrganizationForm(MergeForm): ###################### class SourceForm(CustomForm, ManageOldType, forms.Form): form_label = _(u"Documentation informations") + form_admin_name = _("Source - General") + form_slug = "source-general" + file_upload = True associated_models = {'source_type': models.SourceType} title = forms.CharField(label=_(u"Title"), -- cgit v1.2.3 From 7fa12413028c8681f81832770b00bf07a950693d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 12:16:14 +0100 Subject: Custom form: warehouse forms --- archaeological_warehouse/forms.py | 18 +++++++++++------- ishtar_common/models.py | 4 +++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index f020864ff..f98adc33a 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -30,7 +30,8 @@ from archaeological_finds.models import TreatmentType, FindBasket import models from ishtar_common import widgets from ishtar_common.forms import name_validator, reverse_lazy, \ - get_form_selection, TableSelect, ManageOldType, FinalForm, FormSet + get_form_selection, TableSelect, ManageOldType, FinalForm, FormSet, \ + CustomForm, FieldType from archaeological_finds.forms import FindMultipleFormSelection, \ SelectFindBasketForm @@ -67,9 +68,12 @@ class DivisionFormSet(FormSet): return self.check_duplicate(('division',), _("There are identical divisions.")) + SelectedDivisionFormset = formset_factory( SelectedDivisionForm, can_delete=True, formset=DivisionFormSet) SelectedDivisionFormset.form_label = _(u"Divisions") +SelectedDivisionFormset.form_admin_name = _(u"Warehouse - 020 - Divisions") +SelectedDivisionFormset.form_slug = "warehouse-020-divisions" class WarehouseSelect(TableSelect): @@ -97,8 +101,10 @@ class WarehouseFormSelection(forms.Form): validators=[valid_id(models.Warehouse)]) -class WarehouseForm(ManageOldType, forms.Form): +class WarehouseForm(CustomForm, ManageOldType, forms.Form): form_label = _(u"Warehouse") + form_admin_name = _(u"Warehouse - 010 - General") + form_slug = "warehouse-010-general" associated_models = {'warehouse_type': models.WarehouseType, 'person_in_charge': Person} @@ -127,16 +133,14 @@ class WarehouseForm(ManageOldType, forms.Form): phone = forms.CharField(label=_(u"Phone"), max_length=18, required=False) mobile_phone = forms.CharField(label=_(u"Mobile phone"), max_length=18, required=False) + TYPES = [ + FieldType('warehouse_type', models.WarehouseType) + ] def __init__(self, *args, **kwargs): if 'limits' in kwargs: kwargs.pop('limits') super(WarehouseForm, self).__init__(*args, **kwargs) - self.fields['warehouse_type'].choices = \ - models.WarehouseType.get_types( - initial=self.init_data.get('warehouse_type')) - self.fields['warehouse_type'].help_text = \ - models.WarehouseType.get_help() def save(self, user): dct = self.cleaned_data diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 626770011..4db445c41 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -23,6 +23,7 @@ Models description from cStringIO import StringIO import copy import datetime +import inspect from PIL import Image import logging import os @@ -1686,7 +1687,8 @@ class CustomForm(models.Model): # not very clean... but do not treat inappropriate items continue form = getattr(app_form, form) - if not issubclass(form, CustomForm) \ + if not inspect.isclass(form) \ + or not issubclass(form, CustomForm) \ or not getattr(form, 'form_slug', None): continue cls._register[form.form_slug] = form -- cgit v1.2.3 From d897adfa1aa9b32d3b65c123676651fbd68c0390 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 12:26:35 +0100 Subject: Custom form: container forms --- archaeological_warehouse/forms.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index f98adc33a..2e672efd4 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -160,8 +160,10 @@ class WarehouseDeletionForm(FinalForm): confirm_end_msg = _(u"Would you like to delete this warehouse?") -class ContainerForm(ManageOldType, forms.Form): +class ContainerForm(CustomForm, ManageOldType, forms.Form): form_label = _(u"Container") + form_admin_name = _(u"Container - 010 - General") + form_slug = "container-010-general" file_upload = True associated_models = {'container_type': models.ContainerType, 'location': models.Warehouse, @@ -189,16 +191,14 @@ class ContainerForm(ManageOldType, forms.Form): max_length=255, required=False, widget=widgets.ImageFileInput()) comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, required=False) + TYPES = [ + FieldType('container_type', models.ContainerType), + ] def __init__(self, *args, **kwargs): if 'limits' in kwargs: kwargs.pop('limits') super(ContainerForm, self).__init__(*args, **kwargs) - self.fields['container_type'].choices = \ - models.ContainerType.get_types( - initial=self.init_data.get('container_type')) - self.fields['container_type'].help_text = \ - models.ContainerType.get_help() def save(self, user): dct = self.cleaned_data @@ -286,7 +286,9 @@ class FindPackagingFormSelection(FindMultipleFormSelection): form_label = _(u"Packaged finds") -class LocalisationForm(forms.Form): +class LocalisationForm(CustomForm, forms.Form): + form_admin_name = _(u"Container - 020 - Localisation") + form_slug = "container-020-localisation" form_label = _(u"Localisation") def __init__(self, *args, **kwargs): -- cgit v1.2.3 From b30e6719c948336f71343d67823aaf51fa9d8902 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 13:16:24 +0100 Subject: Custom form: archaeological files forms --- archaeological_files/forms.py | 15 ++++++++++-- archaeological_files/views.py | 7 +++--- archaeological_files_pdl/forms.py | 50 ++++++++++++++++++++++++++------------ archaeological_files_pdl/views.py | 5 ++-- archaeological_operations/forms.py | 4 --- ishtar_common/admin.py | 3 ++- 6 files changed, 54 insertions(+), 30 deletions(-) diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 7c254f936..cf8b8ea4b 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -25,6 +25,7 @@ import datetime from django import forms from django.conf import settings from django.core import validators +from django.forms.formsets import formset_factory from django.utils.translation import ugettext_lazy as _ from django.utils.safestring import mark_safe @@ -34,12 +35,13 @@ from ishtar_common.models import Person, Organization, \ from archaeological_operations.models import ActType, AdministrativeAct, \ OperationType import models + from ishtar_common.forms import FinalForm, get_now, reverse_lazy, TableSelect, \ ManageOldType, CustomForm, FieldType from ishtar_common.forms_common import get_town_field from archaeological_operations.forms import AdministrativeActOpeForm, \ AdministrativeActOpeFormSelection, \ - ParcelField, SLICING, AdministrativeActModifForm + ParcelField, SLICING, AdministrativeActModifForm, ParcelForm, ParcelFormSet from ishtar_common import widgets @@ -271,6 +273,13 @@ class FileFormGeneralRO(FileFormGeneral): return cleaned_data +ParcelFormset = formset_factory(ParcelForm, can_delete=True, + formset=ParcelFormSet) +ParcelFormset.form_label = _(u"Parcels") +ParcelFormset.form_admin_name = _("Archaeological file - 020 - Parcel") +ParcelFormset.form_slug = "source-general" + + class FileFormPreventive(ManageOldType, forms.Form): form_label = _(u"Preventive informations") associated_models = {'general_contractor': Person, @@ -329,8 +338,10 @@ class FileFormPreventive(ManageOldType, forms.Form): self.fields['permit_type'].help_text = models.PermitType.get_help() -class FileFormResearch(ManageOldType, forms.Form): +class FileFormResearch(CustomForm, ManageOldType, forms.Form): form_label = _("Research archaeology") + form_admin_name = _("Archaeological file - 045 - Research - General") + form_slug = "file-045-research-general" base_model = 'department' associated_models = {'scientist': Person, 'requested_operation_type': OperationType, diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 0c0dac3f3..86fa83ee4 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -37,8 +37,7 @@ from archaeological_operations.wizards import AdministrativeActDeletionWizard, \ from wizards import * from ishtar_common.forms_common import TownFormset -from archaeological_operations.forms import ParcelFormSet, \ - FinalAdministrativeActDeleteForm +from archaeological_operations.forms import FinalAdministrativeActDeleteForm from ishtar_common.forms import ClosingDateFormSelection from forms import * @@ -108,7 +107,7 @@ file_search_wizard = SearchWizard.as_view( file_creation_wizard = FileWizard.as_view( [('general-file_creation', FileFormGeneral), ('towns-file_creation', TownFormset), - ('parcels-file_creation', ParcelFormSet), + ('parcels-file_creation', ParcelFormset), ('preventive-file_creation', FileFormPreventive), ('research-file_creation', FileFormResearch), ('final-file_creation', FinalForm)], @@ -127,7 +126,7 @@ file_modification_wizard = FileModificationWizard.as_view( [('selec-file_modification', FileFormSelection), ('general-file_modification', FileFormGeneralRO), ('towns-file_modification', TownFormset), - ('parcels-file_modification', ParcelFormSet), + ('parcels-file_modification', ParcelFormset), ('preventive-file_modification', FileFormPreventive), ('research-file_modification', FileFormResearch), ('final-file_modification', FinalForm)], diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index e5fbb4a96..e0a8f119b 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -29,13 +29,16 @@ from ishtar_common.models import Person, Town, Department, valid_id, \ organization_type_pk_lazy from archaeological_files import models -from ishtar_common.forms import get_now, reverse_lazy, ManageOldType +from ishtar_common.forms import get_now, reverse_lazy, ManageOldType, \ + CustomForm, FieldType from ishtar_common import widgets -class FileFormGeneral(ManageOldType, forms.Form): +class FileFormGeneral(CustomForm, ManageOldType, forms.Form): form_label = _("General") + form_admin_name = _(u"Archaeological file - 010 - General") + form_slug = "file-010-general" associated_models = {'file_type': models.FileType} file_type = forms.ChoiceField(label=_("File type"), choices=[]) year = forms.IntegerField(label=_("Year"), @@ -47,11 +50,9 @@ class FileFormGeneral(ManageOldType, forms.Form): reception_date = forms.DateField( label=_(u"Reception date"), initial=get_now, widget=widgets.JQueryDate) - def __init__(self, *args, **kwargs): - super(FileFormGeneral, self).__init__(*args, **kwargs) - self.fields['file_type'].choices = models.FileType.get_types( - initial=self.init_data.get('file_type')) - self.fields['file_type'].help_text = models.FileType.get_help() + TYPES = [ + FieldType('file_type', models.FileType), + ] def clean_reception_date(self): value = self.cleaned_data.get('reception_date', None) @@ -61,27 +62,31 @@ class FileFormGeneral(ManageOldType, forms.Form): return value -class FileFormPreventiveType(ManageOldType, forms.Form): +class FileFormPreventiveType(CustomForm, ManageOldType, forms.Form): form_label = u"Saisine" + form_admin_name = _(u"Archaeological file - 013 - Preventive - Saisine") + form_slug = "file-013-preventivesaisine" associated_models = {'saisine_type': models.SaisineType, 'permit_type': models.PermitType} permit_type = forms.ChoiceField(label=_(u"Permit type"), required=False, choices=[]) saisine_type = forms.ChoiceField(label=_(u"Saisine type"), choices=[]) + TYPES = [ + FieldType('saisine_type', models.SaisineType), + ] def __init__(self, *args, **kwargs): super(FileFormPreventiveType, self).__init__(*args, **kwargs) - self.fields['saisine_type'].choices = models.SaisineType.get_types( - initial=self.init_data.get('saisine_type')) - self.fields['saisine_type'].help_text = models.SaisineType.get_help() self.fields['permit_type'].choices = models.PermitType.get_types( default='NP', initial=self.init_data.get('permit_type')) self.fields['permit_type'].help_text = models.PermitType.get_help() -class FileFormPlanning(forms.Form): +class FileFormPlanning(CustomForm, forms.Form): form_label = _(u"Planning") + form_admin_name = _(u"Archaeological file - 017 - Preventive - Planning") + form_slug = "file-017-preventiveplanning" base_models = ['town', 'department'] associated_models = {'town': Town, 'department': Department} name = forms.CharField(label=_(u"Planning name"), required=False, @@ -112,8 +117,10 @@ class FileFormPlanning(forms.Form): validators.MaxValueValidator(999999999)]) -class FileFormResearchAddress(forms.Form): +class FileFormResearchAddress(CustomForm, forms.Form): form_label = _(u"Address") + form_admin_name = _(u"Archaeological file - 015 - Research - Address") + form_slug = "file-015-researchplanning" base_models = ['town', 'department'] associated_models = {'town': Town, 'department': Department} name = forms.CharField(label=_(u"Project name"), required=False, @@ -228,8 +235,11 @@ class PersonOrgaForm(forms.Form): validators=[valid_id(models.Organization)]) -class FileFormGeneralContractor(PersonOrgaForm): +class FileFormGeneralContractor(CustomForm, PersonOrgaForm): form_label = _(u"General contractor") + form_admin_name = _("Archaeological file - 030 - General contrator") + form_slug = "file-030-generalcontractor" + associated_models = {'general_contractor': models.Person, 'corporation_general_contractor': models.Organization} corporation_general_contractor = forms.IntegerField( @@ -323,6 +333,10 @@ class FileFormGeneralContractor(PersonOrgaForm): if status not in ('natural', 'corporation'): status = DEFAULT_STATUS + user = None + if 'user' in kwargs: + user = kwargs.pop('user') + super(PersonOrgaForm, self).__init__(*args, **kwargs) # distinct widget for natural and corporation @@ -344,8 +358,10 @@ class FileFormGeneralContractor(PersonOrgaForm): self.fields.pop(self.ORGA_FIELD) -class FileFormPlanningService(forms.Form): +class FileFormPlanningService(CustomForm, forms.Form): form_label = _(u"Planning service") + form_admin_name = _("Archaeological file - 040 - Planning service") + form_slug = "file-040-planningservice" associated_models = {'responsible_town_planning_service': models.Person, 'planning_service': models.Organization} @@ -387,8 +403,10 @@ class FileFormPlanningService(forms.Form): ) -class FileFormInstruction(forms.Form): +class FileFormInstruction(CustomForm, forms.Form): form_label = u"Instruction SRA" + form_admin_name = _("Archaeological file - 050 - Instruction") + form_slug = "file-050-instruction" associated_models = {'in_charge': models.Person, 'related_file': models.File} in_charge = forms.IntegerField( diff --git a/archaeological_files_pdl/views.py b/archaeological_files_pdl/views.py index d03fd958d..cf412efb6 100644 --- a/archaeological_files_pdl/views.py +++ b/archaeological_files_pdl/views.py @@ -27,7 +27,6 @@ from ishtar_common.views import OrganizationPersonCreate, \ from archaeological_files_pdl import forms from archaeological_files import forms as ref_forms -from archaeological_operations.forms import ParcelFormSet from archaeological_files import models @@ -41,7 +40,7 @@ file_creation_wizard = FileWizard.as_view([ ('preventivetype-file_creation', forms.FileFormPreventiveType), ('preventiveplanning-file_creation', forms.FileFormPlanning), ('researchaddress-file_creation', forms.FileFormResearchAddress), - ('parcelspdl-file_creation', ParcelFormSet), + ('parcelspdl-file_creation', ref_forms.ParcelFormset), ('generalcontractor-file_creation', forms.FileFormGeneralContractor), ('planningservice-file_creation', forms.FileFormPlanningService), ('research-file_creation', ref_forms.FileFormResearch), @@ -68,7 +67,7 @@ file_modification_wizard = FileModificationWizard.as_view([ ('preventivetype-file_modification', forms.FileFormPreventiveType), ('preventiveplanning-file_modification', forms.FileFormPlanning), ('researchaddress-file_modification', forms.FileFormResearchAddress), - ('parcelspdl-file_modification', ParcelFormSet), + ('parcelspdl-file_modification', ref_forms.ParcelFormset), ('generalcontractor-file_modification', forms.FileFormGeneralContractor), ('planningservice-file_modification', forms.FileFormPlanningService), ('research-file_modification', ref_forms.FileFormResearch), diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index b85b5e937..6ba343508 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -366,10 +366,6 @@ class ParcelFormSet(FormSet): if hasattr(self, 'cleaned_data') and self.cleaned_data: return self.cleaned_data -ParcelFormSet = formset_factory(ParcelForm, can_delete=True, - formset=ParcelFormSet) -ParcelFormSet.form_label = _(u"Parcels") - class RecordRelationsForm(ManageOldType, forms.Form): base_model = 'right_relation' diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 189a02c05..fa71c4d3f 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -46,6 +46,7 @@ from ishtar_common.utils import get_cache from ishtar_common import forms as common_forms from archaeological_files import forms as file_forms +from archaeological_files_pdl import forms as file_pdl_forms from archaeological_operations import forms as operation_forms from archaeological_context_records import forms as context_record_forms from archaeological_finds import forms as find_forms, \ @@ -53,7 +54,7 @@ from archaeological_finds import forms as find_forms, \ from archaeological_warehouse import forms as warehouse_forms -ISHTAR_FORMS = [common_forms, file_forms, operation_forms, +ISHTAR_FORMS = [common_forms, file_pdl_forms, file_forms, operation_forms, context_record_forms, find_forms, treatment_forms, warehouse_forms] -- cgit v1.2.3 From 7125b34ef93aec4ea15e7419b1f1c02728868271 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 4 Jan 2018 15:54:20 +0100 Subject: French translation (refs #3804) --- ishtar_common/fixtures/initial_importtypes-fr.json | 10 +++++----- translations/fr/archaeological_operations.po | 15 ++++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/ishtar_common/fixtures/initial_importtypes-fr.json b/ishtar_common/fixtures/initial_importtypes-fr.json index 97c0856a2..f0949b126 100644 --- a/ishtar_common/fixtures/initial_importtypes-fr.json +++ b/ishtar_common/fixtures/initial_importtypes-fr.json @@ -1641,7 +1641,7 @@ "ishtar-operations" ], "col_number": 24, - "description": "Date de cl\u00f4ture (peut \u00eatre la date de rendu de la documentation, la fin de la recherche associ\u00e9e ou autre). Habituellement cela repr\u00e9sente la date \u00e0 partir de laquelle la documentation issue de l'op\u00e9ration n'est plus du ressort du responsable d'op\u00e9ration, mais vous pouvez utiliser autre chose.", + "description": "Date de cl\u00f4ture (peut \u00eatre la date de versement de la documentation, la fin de la recherche associ\u00e9e ou autre). Habituellement cela repr\u00e9sente la date \u00e0 partir de laquelle la documentation issue de l'op\u00e9ration n'est plus du ressort du responsable d'op\u00e9ration, mais vous pouvez utiliser autre chose.", "regexp_pre_filter": null, "required": false, "export_field_name": null @@ -1720,12 +1720,12 @@ { "model": "ishtar_common.importercolumn", "fields": { - "label": "Date limite pour le rendu de la documentation", + "label": "Date limite pour le versement de la documentation", "importer_type": [ "ishtar-operations" ], "col_number": 30, - "description": "Date limite pr\u00e9vue pour le rendu de la documentation scientifique.", + "description": "Date limite pr\u00e9vue pour le versement de la documentation scientifique.", "regexp_pre_filter": null, "required": false, "export_field_name": null @@ -1748,12 +1748,12 @@ { "model": "ishtar_common.importercolumn", "fields": { - "label": "Date limite rendu du mobilier", + "label": "Date limite versement du mobilier", "importer_type": [ "ishtar-operations" ], "col_number": 32, - "description": "Date limite pr\u00e9vue pour le rendu du mobilier.", + "description": "Date limite pr\u00e9vue pour le versement du mobilier.", "regexp_pre_filter": null, "required": false, "export_field_name": null diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index 490111733..37b6c0938 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -7,12 +7,13 @@ # Étienne Loks , 2016. #zanata # Valérie-Emma Leroux , 2017. #zanata # Étienne Loks , 2017. #zanata +# Étienne Loks , 2018. #zanata msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2017-11-02 05:38-0400\n" +"PO-Revision-Date: 2018-01-04 09:51-0500\n" "Last-Translator: Étienne Loks \n" "Language-Team: \n" "Language: fr\n" @@ -246,11 +247,11 @@ msgstr "Modifié par" #: forms.py:569 msgid "Documentation deadline before" -msgstr "Date limite de rendu de la documentation avant" +msgstr "Date limite de versement de la documentation avant" #: forms.py:571 msgid "Documentation deadline after" -msgstr "Date limite de rendu de la documentation après" +msgstr "Date limite de versement de la documentation après" #: forms.py:573 forms.py:861 models.py:365 msgid "Documentation received" @@ -258,11 +259,11 @@ msgstr "Documentation reçue" #: forms.py:575 msgid "Finds deadline before" -msgstr "Date limite de rendu du mobilier avant" +msgstr "Date limite de versement du mobilier avant" #: forms.py:577 msgid "Finds deadline after" -msgstr "Date limite de rendu du mobilier après" +msgstr "Date limite de versement du mobilier après" #: forms.py:579 forms.py:866 models.py:369 msgid "Finds received" @@ -384,11 +385,11 @@ msgstr "Date de livraison du rapport" #: forms.py:858 models.py:362 msgid "Deadline for submission of the documentation" -msgstr "Date limite de rendu de la documentation" +msgstr "Date limite de versement de la documentation" #: forms.py:863 models.py:367 msgid "Deadline for submission of the finds" -msgstr "Date limite de rendu du mobilier" +msgstr "Date limite de versement du mobilier" #: forms.py:878 msgid "Image" -- cgit v1.2.3