summaryrefslogtreecommitdiff
path: root/archaeological_context_records/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2016-01-10 15:35:51 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2016-01-10 15:35:51 +0100
commit11d7e76203e13a6d4c2a0c9aa29bd2d1dd86f5b6 (patch)
tree8d8e7c09faf179b2fed07878d1cf450a245a78d0 /archaeological_context_records/forms.py
parent19fcd922361b045894c0eeb56e095d785299909e (diff)
parent2c063aace94e5a9f3b5dc596e4a502ef062db059 (diff)
downloadIshtar-11d7e76203e13a6d4c2a0c9aa29bd2d1dd86f5b6.tar.bz2
Ishtar-11d7e76203e13a6d4c2a0c9aa29bd2d1dd86f5b6.zip
Merge branch 'master' into master-land-planner-2999
Diffstat (limited to 'archaeological_context_records/forms.py')
-rw-r--r--archaeological_context_records/forms.py34
1 files changed, 32 insertions, 2 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index df5a83539..59f683620 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -36,7 +36,8 @@ from ishtar_common import widgets
from ishtar_common.forms import FinalForm, FormSet, \
reverse_lazy, get_form_selection, TableSelect
from ishtar_common.forms_common import get_town_field, SourceSelect
-from archaeological_operations.forms import OperationSelect, ParcelField
+from archaeological_operations.forms import OperationSelect, ParcelField,\
+ RecordRelationsForm as OpeRecordRelationsForm
class RecordSelect(TableSelect):
@@ -181,6 +182,35 @@ DatingFormSet = formset_factory(DatingForm, can_delete=True,
DatingFormSet.form_label = _("Dating")
+class RecordRelationsForm(OpeRecordRelationsForm):
+ current_model = models.RelationType
+ current_related_model = models.ContextRecord
+ associated_models = {'right_record': models.ContextRecord,
+ 'relation_type': models.RelationType}
+ right_record = forms.ChoiceField(
+ label=_(u"Context record"), choices=[], required=False)
+
+ def __init__(self, *args, **kwargs):
+ crs = None
+ if 'data' in kwargs and 'CONTEXT_RECORDS' in kwargs['data']:
+ crs = kwargs['data']['CONTEXT_RECORDS']
+ # clean data if not "real" data
+ prefix_value = kwargs['prefix'] + '-right_record'
+ if not [k for k in kwargs['data'].keys()
+ if k.startswith(prefix_value) and kwargs['data'][k]]:
+ kwargs['data'] = None
+ if 'files' in kwargs:
+ kwargs.pop('files')
+ super(RecordRelationsForm, self).__init__(*args, **kwargs)
+ self.fields['relation_type'].choices = \
+ models.RelationType.get_types()
+ if crs:
+ self.fields['right_record'].choices = [('', '-' * 2)] + crs
+
+RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True)
+RecordRelationsFormSet.form_label = _(u"Relations")
+
+
class RecordFormInterpretation(forms.Form):
form_label = _("Interpretation")
associated_models = {'activity': models.ActivityType,