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] class Meta(object):
[docs] fields = '__all__'
[docs] model = ExclusivenessConfig
[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