Source code for django_opt_out.forms
# coding=utf-8
from django import forms
from django.utils.translation import get_language
from django.utils.translation import ugettext_lazy as _
from . import models
[docs]class OptOutForm(forms.ModelForm):
required_css_class = 'required'
feedback = TranslatedMultipleChoiceField(
label=_('Please help us provide a better service'),
widget=forms.CheckboxSelectMultiple,
queryset=models.OptOutFeedback.objects.all(),
required=False)
[docs] class Meta:
model = models.OptOut
fields = ('email', 'feedback', 'comment')
labels = {
'comment': _('Please tell us what can we do better'),
}
[docs] def save(self, commit=True):
item = super(OptOutForm, self).save(commit)
if commit: # pragma: no cover
feedback = models.OptOutFeedback.objects.filter(pk__in=self.cleaned_data['feedback'])
item.feedback.add(*feedback)
return item