def _process_undeclared(cleaned_data): to_drop = skip_apartments('consumption_undeclared_ap_', cleaned_data) if not to_drop or not cleaned_data['ap_consumptions'] or not cleaned_data['consumption']: return for pk in to_drop: if pk in cleaned_data['ap_consumptions']: del cleaned_data['ap_consumptions'][pk] declared = sum(cleaned_data['ap_consumptions'].values()) share = (Decimal(cleaned_data['consumption']) - declared) / len(to_drop) for pk in to_drop: cleaned_data['ap_consumptions'][pk] = share
def clean(self): cleaned_data = super(InitialOperations, self).clean() to_skip = skip_apartments('undeclared_ap_', cleaned_data) sums = all_apartments_data('sum_ap_', cleaned_data) dates = all_apartments_data('date_ap_', cleaned_data) for k in to_skip: del(sums[k]) del(dates[k]) msg = _(u'Introduceți o valoare') for k, v in sums.iteritems(): if not v: self._errors['sum_ap_' + str(k)] = self.error_class([msg]) if not sums: raise forms.ValidationError(_(u'Nu a fost introdusă nici o valoare')) drop_skip_checkboxes('undeclared_ap_', cleaned_data) cleaned_data['sums'] = sums cleaned_data['dates'] = dates return cleaned_data