summaryrefslogtreecommitdiff
path: root/archaeological_operations/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-03-18 10:30:57 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-03-18 10:30:57 +0100
commit64352a56a5ec8c0c64cf213abaa1b369606fd994 (patch)
tree6139696dd53f07dc7d52a44b00a521bdea09c4c1 /archaeological_operations/forms.py
parentbe4c3810ad560402a6ccee8b2c7eabbe71497989 (diff)
downloadIshtar-64352a56a5ec8c0c64cf213abaa1b369606fd994.tar.bz2
Ishtar-64352a56a5ec8c0c64cf213abaa1b369606fd994.zip
Important fix: parcel rearranging on operation form when file exists
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r--archaeological_operations/forms.py43
1 files changed, 40 insertions, 3 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index a144d8bd5..6ef3d5a21 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -235,15 +235,26 @@ class ParcelFormSet(FormSet):
values[number] = {}
values[number][field] = value
+ if field == 'parcel':
+ if not value:
+ continue
+ try:
+ parcel = models.Parcel.objects.get(pk=value)
+ except models.Parcel.DoesNotExist:
+ continue
+ ordering_keys[number] = [
+ parcel.town, parcel.year, parcel.section,
+ parcel.parcel_number]
+ continue
if number not in ordering_keys:
ordering_keys[number] = ['', '', '', '']
if field == 'town':
ordering_keys[number][0] = value
- if field == 'year':
+ elif field == 'year':
ordering_keys[number][1] = value
- if field == 'section':
+ elif field == 'section':
ordering_keys[number][2] = value
- if field == 'parcel_number':
+ elif field == 'parcel_number':
ordering_keys[number][3] = value
reverse_ordering_keys = {}
@@ -928,6 +939,32 @@ SelectedParcelGeneralFormSet = formset_factory(ParcelForm, can_delete=True,
formset=ParcelFormSet)
SelectedParcelGeneralFormSet.form_label = _("Parcels")
+"""
+class SelectedParcelFormSet(forms.Form):
+ form_label = _("Parcels")
+ base_model = 'parcel'
+ associated_models = {'parcel': models.Parcel}
+ parcel = forms.MultipleChoiceField(
+ label=_("Parcel"), required=False, choices=[],
+ widget=forms.CheckboxSelectMultiple)
+
+ def __init__(self, *args, **kwargs):
+ parcels = None
+ print(kwargs)
+ if 'data' in kwargs and 'PARCELS' in kwargs['data']:
+ parcels = kwargs['data']['PARCELS']
+ # clean data if not "real" data
+ prefix_value = kwargs['prefix'] + '-parcel'
+ 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(SelectedParcelFormSet, self).__init__(*args, **kwargs)
+ if parcels:
+ self.fields['parcel'].choices = [('', '--')] + parcels
+"""
+
class RemainForm(forms.Form):
form_label = _("Remain types")