Source code for oioioi.plagiarism.forms

from django import forms
from django.utils.translation import gettext_lazy as _

from oioioi.plagiarism.utils import MOSS_SUPPORTED_LANGUAGES
from oioioi.programs.utils import get_submittable_languages

LANGUAGES = get_submittable_languages()
[docs]LANGUAGES = { lang: d for lang, d in LANGUAGES.items() if lang in MOSS_SUPPORTED_LANGUAGES }
[docs]class MossSubmitForm(forms.Form):
[docs] problem_instance = forms.ModelChoiceField( queryset=None, label=_("Choose problem"), required=True, )
[docs] language = forms.ChoiceField( choices=[(lang, d['display_name']) for lang, d in LANGUAGES.items()], label=_("Programming language"), required=True, )
[docs] only_final = forms.BooleanField( label=_("Only final submissions"), required=False, initial=True )
[docs] userid = forms.IntegerField( label=_("MOSS user ID"), required=True, min_value=0, max_value=2 ** 32, )
def __init__(self, problem_instances, *args, **kwargs): super(MossSubmitForm, self).__init__(*args, **kwargs) self.fields['problem_instance'].queryset = problem_instances