summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit2cdd0113bef60cefabd09fb41123d0add9f1137d (patch)
treea04efd3e00a5a5928ce6495d24ad3bff076d21d5
parent557d6e5d552f6fbae85a7170756d9b7c977e0b79 (diff)
downloadIshtar-2cdd0113bef60cefabd09fb41123d0add9f1137d.tar.bz2
Ishtar-2cdd0113bef60cefabd09fb41123d0add9f1137d.zip
RecordRelations form for operations
-rw-r--r--archaeological_operations/forms.py22
-rw-r--r--archaeological_operations/models.py3
-rw-r--r--archaeological_operations/views.py2
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={