inner.short_description = _("Actions") return inner def get_list_display(self, request): return super(ProblemPackageAdmin, self).get_list_display(request) \ + [self.actions_field(request.contest)] def get_list_select_related(self): return super(ProblemPackageAdmin, self).get_list_select_related() \ + ['problem', 'problem__contest'] admin.site.register(ProblemPackage, ProblemPackageAdmin) system_admin_menu_registry.register('problempackage_change', _("Problem packages"), lambda request: reverse('oioioiadmin:problems_problempackage_changelist'), condition=pending_packages, order=70) class ContestProblemPackage(ProblemPackage): class Meta(object): proxy = True verbose_name = _("Contest Problem Package") class ContestProblemPackageAdmin(ProblemPackageAdmin): list_display = [x for x in ProblemPackageAdmin.list_display if x not in ['contest', 'celery_task_id']] list_filter = [x for x in ProblemPackageAdmin.list_filter if x != 'contest']
def has_delete_permission(self, request, obj=None): return True def get_custom_list_select_related(self): return super(SystemJobsQueueAdmin, self) \ .get_custom_list_select_related() + [ 'submission__problem_instance', 'submission__problem_instance__contest', 'submission__problem_instance__problem', 'submission__user'] admin.site.register(QueuedJob, SystemJobsQueueAdmin) system_admin_menu_registry.register('queuedjob_admin', _("Evaluation queue"), lambda request: reverse( 'oioioiadmin:evalmgr_queuedjob_changelist'), order=60) class ContestQueuedJob(QueuedJob): class Meta(object): proxy = True verbose_name = _("Contest Queued Jobs") class ContestJobsQueueAdmin(SystemJobsQueueAdmin): def __init__(self, *args, **kwargs): super(ContestJobsQueueAdmin, self).__init__(*args, **kwargs) self.list_display = [x for x in self.list_display if x not in ('contest', 'celery_task_id_link')] self.list_display_links = None
qs = Contest.objects.filter(id=request.contest.id) kwargs['initial'] = request.contest kwargs['queryset'] = qs elif db_field.name == 'user': qs = User.objects.filter(participant__contest=request.contest) if qs or not request.user.is_superuser: kwargs['queryset'] = qs return super(BalloonsDisplayAdmin, self) \ .formfield_for_foreignkey(db_field, request, **kwargs) admin.site.register(BalloonsDisplay, BalloonsDisplayAdmin) system_admin_menu_registry.register( 'balloonsdisplay_admin', _("Balloons displays"), lambda request: reverse('oioioiadmin:balloons_balloonsdisplay_changelist'), order=60) class BalloonsDeliveryAccessDataInline(admin.TabularInline): model = BalloonsDeliveryAccessData fields = ('access_link', 'valid_until', 'regeneration_link') readonly_fields = ('access_link', 'valid_until', 'regeneration_link') def has_add_permission(self, request): return is_contest_admin(request) def has_change_permission(self, request, obj=None): return is_contest_admin(request)
'created_by', ] items = [item for item in items if item not in disallowed_items] return items def get_custom_list_select_related(self): return \ super(ProblemPackageAdmin, self).get_custom_list_select_related()\ + ['problem', 'problem__contest'] admin.site.register(ProblemPackage, ProblemPackageAdmin) system_admin_menu_registry.register( 'problempackage_change', _("Problem packages"), lambda request: reverse('oioioiadmin:problems_problempackage_changelist'), condition=pending_packages, order=70) class ContestProblemPackage(ProblemPackage): class Meta(object): proxy = True verbose_name = _("Contest Problem Package") class ContestProblemPackageAdmin(ProblemPackageAdmin): list_display = [ x for x in ProblemPackageAdmin.list_display if x not in ['contest', 'celery_task_id'] ]
def has_delete_permission(self, request, obj=None): return True def get_custom_list_select_related(self): return super(SystemJobsQueueAdmin, self) \ .get_custom_list_select_related() + [ 'submission__problem_instance', 'submission__problem_instance__contest', 'submission__problem_instance__problem', 'submission__user'] admin.site.register(QueuedJob, SystemJobsQueueAdmin) system_admin_menu_registry.register( 'queuedjob_admin', _("Evaluation queue"), lambda request: reverse('oioioiadmin:evalmgr_queuedjob_changelist'), order=60) class ContestQueuedJob(QueuedJob): class Meta(object): proxy = True verbose_name = _("Contest Queued Jobs") class ContestJobsQueueAdmin(SystemJobsQueueAdmin): def __init__(self, *args, **kwargs): super(ContestJobsQueueAdmin, self).__init__(*args, **kwargs) self.list_display = [ x for x in self.list_display
from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from oioioi.base.admin import system_admin_menu_registry system_admin_menu_registry.register( 'maintenance_mode', _("Maintenance mode"), lambda request: reverse('set_maintenance_mode'), order=60 )
'select': select, } return result workers_info = map(transform_dict, workers_info) context = { 'workers': workers_info, 'readonly': readonly, 'announce': announce, 'edit': edit, 'delete': delete, 'all_tags': all_tags } return render(request, 'workers/list_workers.html', context) @enforce_condition(is_superuser) def get_load_json(request): data = get_info_about_workers() cap = 0 load = 0 for i in data: cap += min(1, i['info'].get('concurrency', 1)) load += len(i['tasks']) return JsonResponse({'capacity': cap, 'load': load}) system_admin_menu_registry.register('workers_management_admin', _("Manage workers"), lambda request: reverse('show_workers'), order=100)
if request.contest is not None: if db_field.name == 'contest': qs = Contest.objects.filter(id=request.contest.id) kwargs['initial'] = request.contest kwargs['queryset'] = qs elif db_field.name == 'user': qs = User.objects.filter(participant__contest=request.contest) if qs or not request.user.is_superuser: kwargs['queryset'] = qs return super(BalloonsDisplayAdmin, self) \ .formfield_for_foreignkey(db_field, request, **kwargs) admin.site.register(BalloonsDisplay, BalloonsDisplayAdmin) system_admin_menu_registry.register('balloonsdisplay_admin', _("Balloon displays"), lambda request: reverse('oioioiadmin:balloons_balloonsdisplay_changelist'), order=60) class BalloonsDeliveryAccessDataInline(admin.TabularInline): model = BalloonsDeliveryAccessData fields = ('access_link', 'valid_until', 'regeneration_link') readonly_fields = ('access_link', 'valid_until', 'regeneration_link') def access_link(self, instance): if instance.access_key: url = reverse('balloons_access_set_cookie', kwargs={ 'contest_id': instance.contest.id, 'access_key': instance.access_key }) return make_html_link(url, url)
from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from oioioi.base.admin import system_admin_menu_registry system_admin_menu_registry.register( 'maintenance_mode', _("Maintenance mode"), lambda request: reverse('set_maintenance_mode'), order=60, )
def has_delete_permission(self, request, obj=None): return True def get_list_select_related(self): return super(SystemSubmitsQueueAdmin, self) \ .get_list_select_related() + [ 'submission__problem_instance', 'submission__problem_instance__contest', 'submission__problem_instance__problem', 'submission__user'] admin.site.register(QueuedSubmit, SystemSubmitsQueueAdmin) system_admin_menu_registry.register( 'queuedsubmit_admin', _("Evaluation queue"), lambda request: reverse('oioioiadmin:submitsqueue_queuedsubmit_changelist' ), order=60) class ContestQueuedSubmit(QueuedSubmit): class Meta(object): proxy = True verbose_name = _("Contest Queued Submit") class ContestSubmitsQueueAdmin(SystemSubmitsQueueAdmin): def __init__(self, *args, **kwargs): super(ContestSubmitsQueueAdmin, self).__init__(*args, **kwargs) self.list_display = [ x for x in self.list_display
def has_delete_permission(self, request, obj=None): return True def get_list_select_related(self): return super(SystemSubmitsQueueAdmin, self) \ .get_list_select_related() + [ 'submission__problem_instance', 'submission__problem_instance__contest', 'submission__problem_instance__problem', 'submission__user'] admin.site.register(QueuedSubmit, SystemSubmitsQueueAdmin) system_admin_menu_registry.register('queuedsubmit_admin', _("Evaluation queue"), lambda request: reverse( 'oioioiadmin:submitsqueue_queuedsubmit_changelist'), order=60) class ContestQueuedSubmit(QueuedSubmit): class Meta(object): proxy = True verbose_name = _("Contest Queued Submit") class ContestSubmitsQueueAdmin(SystemSubmitsQueueAdmin): def __init__(self, *args, **kwargs): super(ContestSubmitsQueueAdmin, self).__init__(*args, **kwargs) self.list_display = [x for x in self.list_display if x not in ('contest', 'celery_task_id_link')] self.list_filter = self.list_filter + [UserListFilter]