Source code for oioioi.teachers.controllers

from django.template.response import TemplateResponse
from django.utils.translation import gettext_lazy as _

from oioioi.participants.controllers import ParticipantsController
from oioioi.programs.controllers import ProgrammingContestController
from oioioi.rankings.controllers import DefaultRankingController


[docs]class TeacherRegistrationController(ParticipantsController): @property
[docs] def form_class(self): return None
@property
[docs] def participant_admin(self): return None
[docs] def can_register(self, request): return False
[docs] def can_edit_registration(self, request, participant): return False
[docs] def no_entry_view(self, request): return TemplateResponse(request, 'teachers/no_entry.html')
[docs]class TeacherRankingController(DefaultRankingController):
[docs] def filter_users_for_ranking(self, key, queryset): queryset = super(TeacherRankingController, self).filter_users_for_ranking( key, queryset ) return self.contest.controller.registration_controller().filter_participants( queryset )
[docs]class TeacherContestController(ProgrammingContestController):
[docs] description = _("Contest for teachers")
[docs] create_forum = True
[docs] def fill_evaluation_environ(self, environ, submission): environ['group_scorer'] = 'oioioi.programs.utils.min_group_scorer' environ['test_scorer'] = 'oioioi.programs.utils.threshold_linear_test_scorer' super(TeacherContestController, self).fill_evaluation_environ( environ, submission )
[docs] def registration_controller(self): return TeacherRegistrationController(self.contest)
[docs] def ranking_controller(self): return TeacherRankingController(self.contest)