def test_side_menus_registry(self): admin = User.objects.get(username='******') user = User.objects.get(username='******') old_keys = side_pane_menus_registry.keys old_items = side_pane_menus_registry.items side_pane_menus_registry.keys = [] side_pane_menus_registry.items = [] try: side_pane_menus_registry.register(menu_registry, order=200) admin_menu_registry = MenuRegistry("Admin Menu", is_superuser) side_pane_menus_registry.register(admin_menu_registry, order=100) menu_registry.register('test', 'Test Menu Item', lambda request: '/test_menu_link', order=2) admin_menu_registry.register('test_admin', 'Test Admin Item', lambda request: '/spam', order=100) response = self._render_menu(user=user) self.assertIn('class="contesticon"', response) self.assertNotIn('User Menu', response) self.assertNotIn('Admin Menu', response) response = self._render_menu(user=admin) self.assertNotIn('class="contesticon"', response) self.assertIn('User Menu', response) self.assertIn('Admin Menu', response) self.assertLess(response.index('Test Admin Item'), response.index('Test Menu Item')) finally: side_pane_menus_registry.keys = old_keys side_pane_menus_registry.items = old_items
from django.utils.translation import ugettext_lazy as _ from oioioi.base.menu import MenuRegistry, side_pane_menus_registry from oioioi.contests.utils import is_contest_admin, is_contest_observer, \ contest_exists contest_admin_menu_registry = MenuRegistry(_("Contest Administration"), contest_exists & is_contest_admin) side_pane_menus_registry.register(contest_admin_menu_registry, order=100) contest_observer_menu_registry = MenuRegistry(_("Observer Menu"), contest_exists & is_contest_observer & (~is_contest_admin)) side_pane_menus_registry.register(contest_observer_menu_registry, order=200)
cls = getattr(cls, '__unmixed_class__', cls) self._registry[model] = cls(model, self) def get_urls(self): self._reinit_model_admins() return super(AdminSite, self).get_urls() def login(self, request, extra_context=None): query = urllib.urlencode({'next': request.get_full_path()}) return HttpResponseRedirect(reverse('auth_login') + '?' + query) site = AdminSite(name='oioioiadmin') system_admin_menu_registry = MenuRegistry(_("System Administration"), is_superuser) side_pane_menus_registry.register(system_admin_menu_registry, order=10) class OioioiUserAdmin(UserAdmin, ObjectWithMixins): __metaclass__ = ModelAdminMeta # This is handled by AdminSite._reinit_model_admins allow_too_late_mixins = True fieldsets = ( (None, {'fields': ('username', 'password')}), (_("Personal info"), {'fields': ('first_name', 'last_name', 'email')}), (_("Permissions"), {'fields': ('is_active', 'is_superuser', 'groups')}), (_("Important dates"), {'fields': ('last_login', 'date_joined')}), )
from django.utils.translation import ugettext_lazy as _ from oioioi.base.menu import MenuRegistry, side_pane_menus_registry from oioioi.contests.utils import (can_see_personal_data, contest_exists, is_contest_basicadmin, is_contest_observer) contest_admin_menu_registry = MenuRegistry( _("Contest Administration"), contest_exists & is_contest_basicadmin) side_pane_menus_registry.register(contest_admin_menu_registry, order=100) contest_observer_menu_registry = MenuRegistry( _("Observer Menu"), contest_exists & is_contest_observer & (~is_contest_basicadmin)) side_pane_menus_registry.register(contest_observer_menu_registry, order=200) personal_data_menu_registry = MenuRegistry( _("Personal Data Menu"), contest_exists & can_see_personal_data) side_pane_menus_registry.register(personal_data_menu_registry, order=300)
from django.utils.translation import ugettext_lazy as _ from oioioi.base.menu import MenuRegistry, side_pane_menus_registry from oioioi.contests.utils import (can_see_personal_data, contest_exists, is_contest_admin, is_contest_observer) contest_admin_menu_registry = MenuRegistry(_("Contest Administration"), contest_exists & is_contest_admin) side_pane_menus_registry.register(contest_admin_menu_registry, order=100) contest_observer_menu_registry = MenuRegistry(_("Observer Menu"), contest_exists & is_contest_observer & (~is_contest_admin)) side_pane_menus_registry.register(contest_observer_menu_registry, order=200) personal_data_menu_registry = MenuRegistry(_("Personal Data Menu"), contest_exists & can_see_personal_data) side_pane_menus_registry.register(personal_data_menu_registry, order=300)
from django.utils.translation import ugettext_lazy as _ from oioioi.base.menu import MenuRegistry, side_pane_menus_registry teacher_menu_registry = MenuRegistry(_("Teacher Menu"), lambda request: request.user.has_perm('teachers.teacher')) side_pane_menus_registry.register(teacher_menu_registry, order=50)
from django.utils.translation import ugettext_lazy as _ from oioioi.base.menu import MenuRegistry, side_pane_menus_registry from oioioi.contests.utils import is_contest_admin, is_contest_observer, \ contest_exists contest_admin_menu_registry = MenuRegistry(_("Contest Administration"), contest_exists & is_contest_admin) side_pane_menus_registry.register(contest_admin_menu_registry, order=100) contest_observer_menu_registry = MenuRegistry( _("Observer Menu"), contest_exists & is_contest_observer & (~is_contest_admin)) side_pane_menus_registry.register(contest_observer_menu_registry, order=200)