예제 #1
0
        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']
예제 #2
0
파일: admin.py 프로젝트: sio2project/oioioi
    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
예제 #3
0
                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)
예제 #4
0
파일: admin.py 프로젝트: wczyz/oioioi
                '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']
    ]
예제 #5
0
파일: admin.py 프로젝트: kinjelom/oioioi
    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
예제 #6
0
파일: admin.py 프로젝트: sio2project/oioioi
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
)
예제 #7
0
            '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)
예제 #8
0
파일: admin.py 프로젝트: sio2project/oioioi
        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)
예제 #9
0
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,
)
예제 #10
0
    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
예제 #11
0
파일: admin.py 프로젝트: papedaniel/oioioi
    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]