Beispiel #1
0
                                     request=request))

    def response_add(self, request, obj, post_url_continue=None):
        if request.user.is_superuser or \
                not request.user.has_perm('teachers.teacher'):
            return super(ContestAdminMixin,
                         self).response_add(request, obj, post_url_continue)
        self.message_user(request, _("Contest added successfully."))
        return redirect('show_members', contest_id=obj.id, member_type='pupil')

    def __init__(self, *args, **kwargs):
        super(ContestAdminMixin, self).__init__(*args, **kwargs)


ContestAdmin.mix_in(ContestAdminMixin)

if 'oioioi.simpleui' not in settings.INSTALLED_APPS:
    personal_menu_registry.register(
        'create_contest',
        _("New contest"),
        lambda request: reverse('oioioiadmin:contests_contest_add'),
        lambda request: request.user.has_perm('teachers.teacher'),
        order=10)
else:
    personal_menu_registry.register(
        'teacher_dashboard',
        _("Contests"),
        lambda request: reverse('teacher_dashboard'),
        lambda request: request.user.has_perm('teachers.teacher'),
        order=5)
Beispiel #2
0
    users who otherwise couldn't create their own contests.
    In essence, if the user can already create contests in some other way
    (or usercontests are disabled) this function should return False.
    """
    if settings.ARCHIVE_USERCONTESTS:
        return False

    user = request.user
    return not (user.is_superuser or user.has_perm('teachers.teacher'))


if 'oioioi.simpleui' not in settings.INSTALLED_APPS:
    personal_menu_registry.register(
        'create_contest',
        _("New contest"),
        lambda request: reverse('oioioiadmin:contests_contest_add'),
        use_usercontest_admin_form,
        order=10,
    )
else:
    personal_menu_registry.register(
        'user_dashboard',
        _("Contests"),
        lambda request: reverse('simpleui_user_dashboard'),
        use_usercontest_admin_form,
        order=5,
    )


class UserRoundInlineFormset(RoundInline.formset):
    def clean(self):
Beispiel #3
0
                                                      **kwargs)

        if db_field.name == 'owners':
            formfield.queryset = User.objects.exclude(
                teacher=None) | User.objects.filter(is_superuser=True)

        if isinstance(db_field, models.ManyToManyField):
            formfield.label_from_instance = types.MethodType(
                get_user_name_and_login_bounded, formfield)

        return formfield


admin.site.register(UserGroup, UserGroupAdmin)

admin.system_admin_menu_registry.register(
    'user_groups',
    _("User Groups"),
    lambda request: reverse('oioioiadmin:usergroups_usergroup_changelist'),
    condition=is_superuser,
    order=10,
)

personal_menu_registry.register(
    'user_groups',
    _("User Groups"),
    lambda request: reverse('teacher_usergroups_list'),
    lambda request: request.user.has_perm('teachers.teacher'),
    order=20,
)
Beispiel #4
0
from django.conf import settings
from django.shortcuts import reverse
from django.utils.translation import ugettext_lazy as _

from oioioi.base.menu import personal_menu_registry
from oioioi.base.utils.permissions import is_regular_user

if 'oioioi.simpleui' not in settings.INSTALLED_APPS:
    personal_menu_registry.register(
        'create_contest',
        _("New contest"),
        lambda request: reverse('oioioiadmin:contests_contest_add'),
        lambda request: is_regular_user(request.user),
        order=10)
else:
    personal_menu_registry.register(
        'user_dashboard',
        _("Contests"),
        lambda request: reverse('simpleui_user_dashboard'),
        lambda request: is_regular_user(request.user),
        order=5)