Source code for oioioi.oisubmit.admin

from django.template.loader import render_to_string
from django.utils.translation import gettext_lazy as _

from oioioi.contests.admin import SubmissionAdmin
from oioioi.oisubmit.err_dict import SUSPICION_REASONS


[docs]class OISubmitSubmissionAdminMixin(object): """Adds oisubmit specific information (e.g. suspected submissions) to an admin panel. """ def __init__(self, *args, **kwargs): super(OISubmitSubmissionAdminMixin, self).__init__(*args, **kwargs)
[docs] def get_list_display(self, request): return super(OISubmitSubmissionAdminMixin, self).get_list_display(request) + [ 'received_suspected' ]
[docs] def get_list_filter(self, request): return super(OISubmitSubmissionAdminMixin, self).get_list_filter(request) + [ 'oisubmitextradata__received_suspected' ]
[docs] def received_suspected(self, instance): received_suspected = getattr( instance.oisubmitextradata, 'received_suspected', None ) is_oisubmit = received_suspected is not None comments = getattr(instance.oisubmitextradata, 'comments', '') comments = [SUSPICION_REASONS[c] for c in comments.split(',') if c] comments = '<br />'.join(map(str, comments)) return render_to_string( 'received-suspected.html', { 'received_suspected': received_suspected, 'is_oisubmit': is_oisubmit, 'comments': comments, }, )
[docs] received_suspected.short_description = _("Received suspected")
SubmissionAdmin.mix_in(OISubmitSubmissionAdminMixin)