diff options
| 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 | 
| commit | be76912dec8d7b49f601487b777129c32043117c (patch) | |
| tree | 6139696dd53f07dc7d52a44b00a521bdea09c4c1 | |
| parent | f68bf9b2aa25549a237c59e129da89165360965b (diff) | |
| download | Ishtar-be76912dec8d7b49f601487b777129c32043117c.tar.bz2 Ishtar-be76912dec8d7b49f601487b777129c32043117c.zip | |
Important fix: parcel rearranging on operation form when file exists
| -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") | 
