summaryrefslogtreecommitdiff
path: root/archaeological_context_records/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/forms.py')
-rw-r--r--archaeological_context_records/forms.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index 462300317..daaf5f5ed 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -43,6 +43,18 @@ from archaeological_operations.forms import OperationSelect, ParcelField,\
RecordRelationsForm as OpeRecordRelationsForm
+class OperationFormSelection(forms.Form):
+ form_label = _("Operation")
+ associated_models = {'operation': Operation}
+ currents = {'operation': Operation}
+ operation = forms.IntegerField(
+ label=_(u"Operation"), required=False,
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-operation'),
+ associated_model=Operation),
+ validators=[valid_id(Operation)])
+
+
class RecordSelect(TableSelect):
label = forms.CharField(label=_(u"ID"), max_length=100)
parcel__town = get_town_field()
@@ -148,7 +160,24 @@ class RecordFormGeneral(ManageOldType, forms.Form):
('operation' in kwargs['data'] or
'context_record' in kwargs['data']):
if 'operation' in kwargs['data']:
- operation = kwargs['data']['operation']
+ operation = kwargs['data'].pop('operation')
+ if type(operation) in (list, tuple):
+ operation = operation[0]
+ if not hasattr(operation, 'id'):
+ operation_id = operation
+ try:
+ operation = Operation.objects.get(pk=operation_id)
+ except Operation.DoesNotExist:
+ operation = None
+ # force operation modification
+ # if posted
+ if operation and kwargs['data']:
+ if hasattr(operation, 'id'):
+ kwargs['data'][kwargs['prefix'] + '-operation_id'] = \
+ operation.id
+ else:
+ kwargs['data'][kwargs['prefix'] + '-operation_id'] = \
+ operation
if 'context_record' in kwargs['data'] and \
kwargs['data']['context_record']:
operation = kwargs['data']['context_record'].operation