On applique à la main les changements de catégorie
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from django.forms import ModelForm, ValidationError, TextInput, Form, URLField, MultipleHiddenInput, Textarea, CharField, ChoiceField, RadioSelect, MultipleChoiceField
|
||||
from django.forms import ModelForm, ValidationError, TextInput, Form, URLField, MultipleHiddenInput, Textarea, CharField, ChoiceField, RadioSelect, MultipleChoiceField, BooleanField, HiddenInput
|
||||
from datetime import date
|
||||
from django_better_admin_arrayfield.forms.widgets import DynamicArrayWidget
|
||||
|
||||
@@ -270,3 +270,27 @@ class ModerateForm(ModelForm):
|
||||
if a.question == q and a.valid_event(self.instance):
|
||||
self.fields[q.complete_id()].initial = a.pk
|
||||
break
|
||||
|
||||
class CategorisationForm(Form):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "events" in kwargs:
|
||||
events = kwargs.pop('events', None)
|
||||
else:
|
||||
events = []
|
||||
for f in args[0]:
|
||||
logger.warning('fff: ' + f)
|
||||
if '_' not in f:
|
||||
if f + '_cat' in args[0]:
|
||||
events.append((Event.objects.get(pk=int(f)), args[0][f + '_cat']))
|
||||
|
||||
# TODO
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
for e, c in events:
|
||||
self.fields[str(e.pk)] = BooleanField(initial=False, label=_('Apply category {} to the event {}').format(c, e.title), required=False)
|
||||
self.fields[str(e.pk) + "_cat"] = CharField(initial=c, widget=HiddenInput())
|
||||
|
||||
def get_validated(self):
|
||||
return [(e, self.cleaned_data.get(e + '_cat')) for e in self.fields if '_' not in e and self.cleaned_data.get(e)]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user