Source code for oioioi.contestexcl.forms
from django import forms
from django.forms import BooleanField, ValidationError
from django.utils.translation import gettext_lazy as _
from oioioi.base.forms import AlwaysChangedModelForm
from oioioi.contestexcl.models import ExclusivenessConfig
[docs]class ExclusivenessConfigForm(AlwaysChangedModelForm):
[docs] disable = forms.BooleanField(
label=_("disable?"),
help_text=_(
"Caution! If you disable exclusiveness, "
"it can only be re-enabled by a superadmin!"
),
required=False,
)
[docs] def clean(self):
super(ExclusivenessConfigForm, self).clean()
if self.cleaned_data['disable'] and not self.instance.enabled:
raise ValidationError(_("This exclusiveness config is already disabled!"))
[docs] def save(self, commit=True):
instance = super(ExclusivenessConfigForm, self).save(commit=False)
if self.cleaned_data['disable']:
instance.enabled = False
if commit:
instance.save()
return instance