Source code for oioioi.zeus.admin
from django.conf import settings
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from oioioi.contests.utils import is_contest_admin
from oioioi.zeus.models import ZeusProblemData
[docs]class ZeusProblemDataInline(admin.StackedInline):
[docs] def has_view_permission(self, request, obj=None):
return self.has_change_permission(request, obj)
[docs] def zeus_instance(self, instance):
zeus_id = instance.zeus_id
if zeus_id in settings.ZEUS_INSTANCES:
return '%s: %s' % (zeus_id, settings.ZEUS_INSTANCES[zeus_id][0])
return zeus_id
[docs]class ZeusProblemAdminMixin(object):
"""Adds :class:`~oioioi.zeus.models.ZeusProblemData` to an admin panel."""
def __init__(self, *args, **kwargs):
super(ZeusProblemAdminMixin, self).__init__(*args, **kwargs)
self.inlines = [ZeusProblemDataInline] + self.inlines