def get_published_status_name(): """ Gets the value stored for a status of "published". Always assumes the final status choice is the one that means 'published'. """ from pagemanager.util import get_pagemanager_model page_model = get_pagemanager_model() return page_model._meta.get_field('status').choices[-1][0]
def render(self, context): permission_names = get_permissions() permissions = dict([(k, False) for k in permission_names.keys()]) # Adding shortcut permission that combines ``view_private_pages`` and # `` view_draft_pages`` permissions. permissions['view_page'] = False try: user = self.user_var.resolve(context) except template.VariableDoesNotExist: # If user variable can't be resolved, all permissions are False. permissions = self._rename_permissions(permissions, "page") for permission_name, permission in permissions.items(): context[permission_name] = permission return '' # If node variable can't be resolved, some permissions can still # be useful. try: node = self.node_var.resolve(context) except template.VariableDoesNotExist: node = None opts = get_pagemanager_model()._meta else: opts = node.__class__._meta lookup_perm = get_lookup_function(user,permission_names) # Shortcut: if the user is a superuser we can just set all permissions # to True and be done with it. if user.is_superuser: permissions = self._rename_permissions( permissions, opts.module_name ) for permission_name, permission in permissions.items(): context[permission_name] = True return '' # Determine visibility permissions. if node: if not node.is_visible() and lookup_perm('view_private_pages'): permissions['view_private_pages'] = True if not node.is_published() and lookup_perm('view_draft_pages'): permissions['view_draft_pages'] = True if (node.is_visible() or permissions['view_private_pages']) and \ (node.is_published() or permissions['view_draft_pages']): permissions['view_page'] = True # Determine standard model permissions. for verb in ('add', 'change', 'delete'): permission_name = "%s_%s" % (verb, opts.module_name) if lookup_perm(permission_name): permissions[permission_name] = True # Commit all permissions to context: permissions = self._rename_permissions(permissions, opts.module_name) for permission_name, permission in permissions.items(): context[permission_name] = permission return ''
def get_public_visibility_name(): """ Gets the value stored for a visibility of "public". Always assumes the first visibility choice is the one that means 'public'. """ from pagemanager.util import get_pagemanager_model page_model = get_pagemanager_model() return page_model._meta.get_field('visibility').choices[0][0]
def get_unpublished_status_name(): """ Gets an unpublished status. Always assumes the first status choice is the one that means 'not published'. """ from pagemanager.util import get_pagemanager_model page_model = get_pagemanager_model() return page_model._meta.get_field('status').choices[0][0]
def get_permissions(): """ Returns a dictionary of all permissions for the pagemanager model. Keys are short names, values are full names. """ from pagemanager.util import get_pagemanager_model page_model = get_pagemanager_model() # Create a list of permissions defined in the model... perms = [k for k, v in page_model._meta.permissions] # ... and add the standard Django permissions to it. perms.append(page_model._meta.get_add_permission()) perms.append(page_model._meta.get_change_permission()) perms.append(page_model._meta.get_delete_permission()) app_label = page_model._meta.app_label return dict( [(key, "%s.%s" % (app_label, key)) for key in perms] )
from django.conf import settings from django.db.models import get_model from pagemanager.util import get_pagemanager_model, get_pagemanager_modeladmin PAGEMANAGER_DEFAULT_TEMPLATE = getattr(settings, 'PAGEMANAGER_DEFAULT_TEMPLATE', 'base.html') PAGEMANAGER_PAGE_MODEL = get_pagemanager_model() PAGEMANAGER_PAGE_MODELADMIN = get_pagemanager_modeladmin()
from django.conf import settings from django.db.models import get_model from pagemanager.util import get_pagemanager_model, get_pagemanager_modeladmin PAGEMANAGER_DEFAULT_TEMPLATE = getattr(settings, 'PAGEMANAGER_DEFAULT_TEMPLATE', 'base.html' ) PAGEMANAGER_PAGE_MODEL = get_pagemanager_model() PAGEMANAGER_PAGE_MODELADMIN = get_pagemanager_modeladmin()