diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-12-18 17:46:12 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-12-18 17:46:12 +0100 |
commit | 2cdd0113bef60cefabd09fb41123d0add9f1137d (patch) | |
tree | a04efd3e00a5a5928ce6495d24ad3bff076d21d5 | |
parent | 557d6e5d552f6fbae85a7170756d9b7c977e0b79 (diff) | |
download | Ishtar-2cdd0113bef60cefabd09fb41123d0add9f1137d.tar.bz2 Ishtar-2cdd0113bef60cefabd09fb41123d0add9f1137d.zip |
RecordRelations form for operations
-rw-r--r-- | archaeological_operations/forms.py | 22 | ||||
-rw-r--r-- | archaeological_operations/models.py | 3 | ||||
-rw-r--r-- | archaeological_operations/views.py | 2 |
3 files changed, 26 insertions, 1 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 3d679d555..8c3650c21 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -335,6 +335,28 @@ ParcelFormSet = formset_factory(ParcelForm, can_delete=True, formset=ParcelFormSet) ParcelFormSet.form_label = _(u"Parcels") + +class RecordRelationsForm(forms.Form): + base_model = 'right_relation' + associated_models = {'right_record': models.Operation, + 'relation_type': models.RelationType} + relation_type = forms.ChoiceField(label=_(u"Relation type"), + choices=[], required=False) + right_record = forms.IntegerField( + label=_(u"Operation"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-operation'), + associated_model=models.Operation), + validators=[valid_id(models.Operation)], required=False) + + def __init__(self, *args, **kwargs): + super(RecordRelationsForm, self).__init__(*args, **kwargs) + self.fields['relation_type'].choices = \ + models.RelationType.get_types() + +RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True) +RecordRelationsFormSet.form_label = _(u"Relations") + SRA_AGENT, created = PersonType.objects.get_or_create(txt_idx='sra_agent') HEAD_SCIENTIST, created = PersonType.objects.get_or_create( txt_idx='head_scientist') diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index a1cd43b58..58281250f 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -257,7 +257,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, @property def short_label(self): if settings.COUNTRY == 'fr': - return self.code_patriarche + return self.reference return unicode(self) @property @@ -457,6 +457,7 @@ class RelationType(GeneralRelationType): class RecordRelations(GeneralRecordRelations, models.Model): + MAIN_ATTR = 'left_record' left_record = models.ForeignKey(Operation, related_name='right_relations') right_record = models.ForeignKey(Operation, diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index d3d50d791..bde48b1b6 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -211,6 +211,7 @@ wizard_steps = [ ('parcels-operation_creation', SelectedParcelFormSet), ('remains-operation_creation', RemainForm), ('periods-operation_creation', PeriodForm), + ('relations-operation_creation', RecordRelationsFormSet), ('final-operation_creation', FinalForm)] if FILES_AVAILABLE: wizard_steps.insert(0, ('filechoice-operation_creation', @@ -250,6 +251,7 @@ operation_modification_wizard = OperationModificationWizard.as_view([ ('parcelsgeneral-operation_modification', SelectedParcelGeneralFormSet), ('remains-operation_modification', RemainForm), ('periods-operation_modification', PeriodForm), + ('relations-operation_modification', RecordRelationsFormSet), ('final-operation_modification', FinalForm)], label=_(u"Operation modification"), condition_dict={ |