def get_fieldsets(self, request, obj=None): if obj or request.user.is_superuser: return super(ContestAdminMixin, self).get_fieldsets(request, obj) fields = TeacherContestForm().base_fields.keys() return [(None, {'fields': fields})] def get_form(self, request, obj=None, **kwargs): if obj or request.user.is_superuser: return super(ContestAdminMixin, self).get_form(request, obj, **kwargs) return modelform_factory(self.model, form=TeacherContestForm, formfield_callback=partial(self.formfield_for_dbfield, request=request)) def response_add(self, request, obj, post_url_continue='../%s/'): if request.user.is_superuser: return super(ContestAdminMixin, self).response_add(request, obj, post_url_continue) self.message_user(request, _("Contest added successfully.")) return redirect('oioioi.teachers.views.pupils_view', contest_id=obj.id) def __init__(self, *args, **kwargs): super(ContestAdminMixin, self).__init__(*args, **kwargs) ContestAdmin.mix_in(ContestAdminMixin) teacher_menu_registry.register('create_contest', _("New contest"), lambda request: reverse('oioioiadmin:contests_contest_add'), order=10)
from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from oioioi.teachers.menu import teacher_menu_registry teacher_menu_registry.register('teacher_dashboard', _("Contests"), lambda request: reverse('teacher_dashboard'), order=5)
if obj or request.user.is_superuser: return super(ContestAdminMixin, self).get_form(request, obj, **kwargs) return modelform_factory(self.model, form=TeacherContestForm, formfield_callback=partial( self.formfield_for_dbfield, request=request)) def response_add(self, request, obj, post_url_continue=None): if request.user.is_superuser: return super(ContestAdminMixin, self).response_add(request, obj, post_url_continue) self.message_user(request, _("Contest added successfully.")) return redirect('oioioi.teachers.views.members_view', 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: teacher_menu_registry.register( 'create_contest', _("New contest"), lambda request: reverse('oioioiadmin:contests_contest_add'), order=10)