Source code for oioioi.mp.admin
from django.utils.translation import gettext_lazy as _
from oioioi.base import admin
from oioioi.contests.admin import ContestAdmin
from oioioi.mp.controllers import MPContestController
from oioioi.mp.forms import MPRegistrationForm
from oioioi.mp.models import MPRegistration, SubmissionScoreMultiplier
from oioioi.participants.admin import ParticipantAdmin
[docs]class MPRegistrationInline(admin.StackedInline):
# We don't allow admins to change users' acceptance of contest's terms.
[docs]class MPRegistrationParticipantAdmin(ParticipantAdmin):
[docs] def get_actions(self, request):
actions = super(MPRegistrationParticipantAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
[docs]class SubmissionScoreMultiplierAdminMixin(object):
"""Adds :class:`~oioioi.mp.models.SubmissionScoreMultiplier` to an admin panel
when contest controller is MPContestController.
"""
[docs] def get_inlines(self, request, obj):
inlines = super().get_inlines(request, obj)
if hasattr(obj, 'controller') and isinstance(
obj.controller, MPContestController
):
return inlines + [SubmissionScoreMultiplierInline]
return inlines
ContestAdmin.mix_in(SubmissionScoreMultiplierAdminMixin)