diff options
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r-- | archaeological_operations/forms.py | 43 |
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") |