Merge pull request 'fix(widget): gère la possible absence de valeur dans un multiwidget' (#52) from fpoulain/gvot:hotfix into master

Reviewed-on: #52
pull/54/head
François Poulain 2021-06-19 21:02:08 +02:00
révision 6ab3879522
1 fichiers modifiés avec 4 ajouts et 3 suppressions

Voir le fichier

@ -99,18 +99,19 @@ class PonderatedField(forms.MultiValueField):
)
def compress(self, data_list):
if self.required and sum(data_list) < self.ponderation:
cleaned_data = [i or 0 for i in data_list]
if self.required and sum(cleaned_data) < self.ponderation:
raise ValidationError(
"Vous devez affecter tous les choix disponibles "
"parmi les options proposées."
)
if sum(data_list) > self.ponderation:
if sum(cleaned_data) > self.ponderation:
raise ValidationError(
"Vous ne pouvez pas affecter plus de choix que "
"le nombre de mandats disponibles."
)
return ','.join([str(i) for i in data_list])
return ','.join([str(i) for i in cleaned_data])
class MyFormBuilder(FormBuilder):