Source code for oioioi.simpleui.forms
from django import forms
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from oioioi.base.utils import make_html_link
from oioioi.contests.models import ProblemInstance, Round
from oioioi.programs.models import Test
[docs]class ProblemInstanceForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ProblemInstanceForm, self).__init__(*args, **kwargs)
self.fields['round'].queryset = Round.objects.filter(
contest=kwargs['instance'].contest
)
[docs]class TestForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(TestForm, self).__init__(*args, **kwargs)
instance = kwargs['instance']
self.fields['input_file'].link = self.input_file_link(instance)
self.fields['output_file'].link = self.output_file_link(instance)
[docs] class Meta(object):
[docs] fields = (
'name',
'time_limit',
'memory_limit',
'max_score',
'kind',
'input_file',
'output_file',
'is_active',
'id',
)
[docs] def input_file_link(self, instance):
if instance.id is not None:
href = reverse('download_input_file', kwargs={'test_id': instance.id})
return make_html_link(href, _("in"))
return None
[docs] def output_file_link(self, instance):
if instance.id is not None:
href = reverse('download_output_file', kwargs={'test_id': instance.id})
return make_html_link(href, _("out"))
return None
output_file_link.short_description = _("Output/hint file")