summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/forms.py85
-rw-r--r--ishtar_common/forms.py18
-rw-r--r--ishtar_common/forms_common.py15
3 files changed, 67 insertions, 51 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 4dd896966..6966fff50 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -477,6 +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"
class OperationSelect(TableSelect):
@@ -675,12 +677,15 @@ class OperationFormFileChoice(forms.Form):
validators=[valid_id(File)], required=False)
-class OperationFormAbstract(forms.Form):
+class OperationFormAbstract(CustomForm, forms.Form):
form_label = _(u"Abstract")
+ form_admin_name = _("Operations - Abstract")
+ form_slug = "operation-abstract"
abstract = forms.CharField(
label=_(u"Abstract"),
widget=forms.Textarea(attrs={'class': 'xlarge'}), required=False)
+
SLICING = (("month", _(u"months")), ('year', _(u"years")),)
DATE_SOURCE = (('creation', _(u"Creation date")),
@@ -763,8 +768,8 @@ class DashboardForm(forms.Form):
class OperationFormGeneral(ManageOldType, CustomForm, forms.Form):
form_label = _(u"General")
- form_admin_name = _(u"Operation - General - Creation")
- form_slug = "operation-general-creation"
+ form_admin_name = _(u"Operation - General")
+ form_slug = "operation-general"
file_upload = True
associated_models = {'scientist': Person,
@@ -978,9 +983,6 @@ class OperationFormGeneral(ManageOldType, CustomForm, forms.Form):
class OperationFormModifGeneral(OperationFormGeneral):
- form_admin_name = _(u"Operation - General - Modification")
- form_slug = "operation-general-modification"
-
operation_code = forms.IntegerField(label=_(u"Operation code"),
required=False)
currents = {'associated_file': File}
@@ -1078,6 +1080,7 @@ class SelectedTownForm(forms.Form):
SelectedTownFormset = formset_factory(SelectedTownForm, can_delete=True,
formset=TownFormSet)
SelectedTownFormset.form_label = _(u"Towns")
+SelectedTownFormset.form_slug = "towns"
class SelectedParcelForm(forms.Form):
@@ -1094,13 +1097,17 @@ class SelectedParcelForm(forms.Form):
if parcels:
self.fields['parcel'].choices = [('', '--')] + parcels
+
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"
SelectedParcelGeneralFormSet = formset_factory(ParcelForm, can_delete=True,
formset=ParcelFormSet)
-SelectedParcelGeneralFormSet.form_label = _("Parcels")
+SelectedParcelGeneralFormSet.form_admin_name = _("Parcels")
+SelectedParcelGeneralFormSet.form_slug = "operation-parcels"
"""
class SelectedParcelFormSet(forms.Form):
@@ -1128,36 +1135,36 @@ class SelectedParcelFormSet(forms.Form):
"""
-class RemainForm(ManageOldType, forms.Form):
+class RemainForm(CustomForm, ManageOldType, forms.Form):
form_label = _("Remain types")
+ form_admin_name = _("Operations - Remains")
+ form_slug = "operation-remains"
+
base_model = 'remain'
associated_models = {'remain': models.RemainType}
remain = forms.MultipleChoiceField(
label=_("Remain type"), required=False, choices=[],
widget=forms.CheckboxSelectMultiple)
- def __init__(self, *args, **kwargs):
- super(RemainForm, self).__init__(*args, **kwargs)
- self.fields['remain'].choices = models.RemainType.get_types(
- initial=self.init_data.get('remain'),
- empty_first=False)
- self.fields['remain'].help_text = models.RemainType.get_help()
+ TYPES = [
+ FieldType('remain', models.RemainType, True),
+ ]
-class PeriodForm(ManageOldType, forms.Form):
+class PeriodForm(CustomForm, ManageOldType, forms.Form):
form_label = _("Periods")
+ form_admin_name = _("Operations - Periods")
+ form_slug = "operation-periods"
+
base_model = 'period'
associated_models = {'period': models.Period}
period = forms.MultipleChoiceField(
label=_("Period"), required=False, choices=[],
widget=forms.CheckboxSelectMultiple)
- def __init__(self, *args, **kwargs):
- super(PeriodForm, self).__init__(*args, **kwargs)
- self.fields['period'].choices = models.Period.get_types(
- initial=self.init_data.get('period'),
- empty_first=False)
- self.fields['period'].help_text = models.Period.get_help()
+ TYPES = [
+ FieldType('period', models.Period, True),
+ ]
class ArchaeologicalSiteForm(ManageOldType, forms.Form):
@@ -1170,21 +1177,16 @@ class ArchaeologicalSiteForm(ManageOldType, forms.Form):
label=_("Remains"), choices=[], widget=widgets.Select2Multiple,
required=False)
+ TYPES = [
+ FieldType('periods', models.Period, True),
+ FieldType('remains', models.RemainType, True),
+ ]
+
def __init__(self, *args, **kwargs):
self.limits = {}
if 'limits' in kwargs:
kwargs.pop('limits')
super(ArchaeologicalSiteForm, self).__init__(*args, **kwargs)
- self.fields['periods'].choices = \
- models.Period.get_types(
- empty_first=False,
- initial=self.init_data.get('periods'))
- self.fields['periods'].help_text = models.Period.get_help()
- self.fields['remains'].choices = \
- models.RemainType.get_types(
- initial=self.init_data.get('remains'),
- empty_first=False)
- self.fields['remains'].help_text = models.RemainType.get_help()
def clean_reference(self):
reference = self.cleaned_data['reference']
@@ -1253,6 +1255,9 @@ class OperationDeletionForm(FinalForm):
class OperationSourceForm(SourceForm):
+ form_admin_name = _("Operation Sources - Main")
+ 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="",
@@ -1400,8 +1405,11 @@ class AdministrativeActOpeFormSelection(forms.Form):
return cleaned_data
-class AdministrativeActOpeForm(ManageOldType, forms.Form):
+class AdministrativeActOpeForm(CustomForm, ManageOldType, forms.Form):
form_label = _("General")
+ form_admin_name = _("Operations - Administrative act - General")
+ form_slug = "operation-adminact-general"
+
associated_models = {'act_type': models.ActType, }
# 'signatory':Person}
act_type = forms.ChoiceField(label=_("Act type"), choices=[])
@@ -1417,13 +1425,10 @@ class AdministrativeActOpeForm(ManageOldType, forms.Form):
ref_sra = forms.CharField(label=u"Autre référence", max_length=15,
required=False)
- def __init__(self, *args, **kwargs):
- super(AdministrativeActOpeForm, self).__init__(*args, **kwargs)
- self.fields['act_type'].choices = models.ActType.get_types(
- initial=self.init_data.get('act_type'),
- dct={'intented_to': 'O'})
- self.fields['act_type'].help_text = models.ActType.get_help(
- dct={'intented_to': 'O'})
+ TYPES = [
+ FieldType('act_type', models.ActType,
+ extra_args={"dct": {'intented_to': 'O'}}),
+ ]
class AdministrativeActModifForm(object):
@@ -1439,7 +1444,7 @@ class AdministrativeActModifForm(object):
def clean(self):
# manage unique act ID
- year = self.cleaned_data.get("signature_date")
+ year = self.cleaned_data.get("signature_date", None)
if not year or not hasattr(year, 'year'):
return self.cleaned_data
year = year.year
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 8b97cfbab..eebd912ea 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -336,18 +336,26 @@ def get_data_from_formset(data):
class FieldType(object):
- def __init__(self, key, model, is_multiple=False):
+ def __init__(self, key, model, is_multiple=False, extra_args=None):
self.key = key
self.model = model
self.is_multiple = is_multiple
+ self.extra_args = extra_args
def get_choices(self, initial=None):
- return self.model.get_types(
- empty_first=not self.is_multiple,
- initial=initial)
+ args = {
+ 'empty_first': not self.is_multiple,
+ 'initial': initial
+ }
+ if self.extra_args:
+ args.update(self.extra_args)
+ return self.model.get_types(**args)
def get_help(self):
- return self.model.get_help()
+ args = {}
+ if self.extra_args:
+ args.update(self.extra_args)
+ return self.model.get_help(**args)
class ManageOldType(object):
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 116c8c277..32c91b683 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -35,7 +35,7 @@ import models
import widgets
from ishtar_common.templatetags.link_to_window import link_to_window
from forms import FinalForm, FormSet, reverse_lazy, name_validator, \
- TableSelect, ManageOldType
+ TableSelect, ManageOldType, CustomForm, FieldType
def get_town_field(label=_(u"Town"), required=True):
@@ -733,6 +733,8 @@ class TownFormSet(FormSet):
TownFormset = formset_factory(TownForm, can_delete=True, formset=TownFormSet)
TownFormset.form_label = _("Towns")
+TownFormset.form_admin_name = _(u"Towns")
+TownFormset.form_slug = "towns"
class MergeFormSet(BaseModelFormSet):
@@ -860,7 +862,7 @@ class MergeOrganizationForm(MergeForm):
######################
# Sources management #
######################
-class SourceForm(ManageOldType, forms.Form):
+class SourceForm(CustomForm, ManageOldType, forms.Form):
form_label = _(u"Documentation informations")
file_upload = True
associated_models = {'source_type': models.SourceType}
@@ -899,10 +901,9 @@ class SourceForm(ManageOldType, forms.Form):
'height': settings.IMAGE_MAX_SIZE[1]}),
max_length=255, required=False, widget=widgets.ImageFileInput())
- def __init__(self, *args, **kwargs):
- super(SourceForm, self).__init__(*args, **kwargs)
- self.fields['source_type'].choices = models.SourceType.get_types(
- initial=self.init_data.get('source_type'))
+ TYPES = [
+ FieldType('source_type', models.SourceType),
+ ]
class SourceSelect(TableSelect):
@@ -986,3 +987,5 @@ class AuthorFormSet(FormSet):
AuthorFormset = formset_factory(AuthorFormSelection, can_delete=True,
formset=AuthorFormSet)
AuthorFormset.form_label = _("Authors")
+AuthorFormset.form_admin_name = _(u"Authors")
+AuthorFormset.form_slug = "authors"