diff --git a/mayan/apps/acls/forms.py b/mayan/apps/acls/forms.py index 8ad9437a98..e1f3b292d8 100644 --- a/mayan/apps/acls/forms.py +++ b/mayan/apps/acls/forms.py @@ -1,16 +1,20 @@ from __future__ import absolute_import from django import forms -from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.models import User, Group +from django.utils.translation import ugettext_lazy as _ +from django.utils.functional import SimpleLazyObject -from permissions.models import Role -from common.utils import get_object_name from common.models import AnonymousUserSingleton +from common.utils import get_object_name +from permissions.models import Role from .classes import AccessHolder from .models import CreatorSingleton +anonymous_singleton = SimpleLazyObject(lambda: AnonymousUserSingleton.objects.get()) +creator_singleton = SimpleLazyObject(lambda: CreatorSingleton.objects.get()) + def _as_choice_list(holders): return sorted([(AccessHolder.encapsulate(holder).gid, get_object_name(holder, display_object_type=False)) for holder in holders], key=lambda x: x[1]) @@ -51,8 +55,8 @@ class BaseHolderSelectionForm(forms.Form): class HolderSelectionForm(BaseHolderSelectionForm): - special_holders = [AnonymousUserSingleton.objects.get_or_create()[0]] + special_holders = [anonymous_singleton] class ClassHolderSelectionForm(BaseHolderSelectionForm): - special_holders = [AnonymousUserSingleton.objects.get_or_create()[0], CreatorSingleton.objects.get_or_create()[0]] + special_holders = [anonymous_singleton, creator_singleton]