Exemplo n.º 1
0
def get_admin_menu_item_context(request, page, filtered=False):
    """
    Used for rendering the page tree, inserts into context everything what
    we need for single item
    """
    has_add_page_permission = page.has_add_permission(request)
    has_move_page_permission = page.has_move_page_permission(request)

    site = Site.objects.get_current()
    lang = get_language_from_request(request)
    # slug = page.get_slug(language=lang, fallback=True) # why was this here ??
    metadata = ""
    if settings.CMS_PERMISSION:
        # jstree metadata generator
        md = []

        # if not has_add_page_permission:
        if not has_move_page_permission:
            md.append(("valid_children", False))
            md.append(("draggable", False))
        if md:
            # just turn it into simple javasript object
            metadata = (
                "{"
                + ", ".join(map(lambda e: "%s: %s" % (e[0], isinstance(e[1], bool) and str(e[1]) or e[1].lower()), md))
                + "}"
            )

    moderator_state = moderator.page_moderator_state(request, page)
    has_add_on_same_level_permission = False
    opts = Page._meta
    if request.user.has_perm(
        opts.app_label + "." + opts.get_add_permission()
    ) and GlobalPagePermission.objects.with_user(request.user).filter(can_add=True, sites__in=[page.site_id]):
        has_add_on_same_level_permission = True

    if not has_add_on_same_level_permission and page.parent_id:
        has_add_on_same_level_permission = permissions.has_generic_permission(
            page.parent_id, request.user, "add", page.site
        )
    # has_add_on_same_level_permission = has_add_page_on_same_level_permission(request, page)
    context = {
        "page": page,
        "site": site,
        "lang": lang,
        "filtered": filtered,
        "metadata": metadata,
        "has_change_permission": page.has_change_permission(request),
        "has_publish_permission": page.has_publish_permission(request),
        "has_delete_permission": page.has_delete_permission(request),
        "has_move_page_permission": has_move_page_permission,
        "has_add_page_permission": has_add_page_permission,
        "has_moderate_permission": page.has_moderate_permission(request),
        "page_moderator_state": moderator_state,
        "moderator_should_approve": moderator_state["state"] >= moderator.I_APPROVE,
        "has_add_on_same_level_permission": has_add_on_same_level_permission,
        "CMS_PERMISSION": settings.CMS_PERMISSION,
        "CMS_MODERATOR": settings.CMS_MODERATOR,
    }
    return context
Exemplo n.º 2
0
def get_admin_menu_item_context(request, page, filtered=False):
    """
    Used for rendering the page tree, inserts into context everything what
    we need for single item
    """
    has_add_page_permission = page.has_add_permission(request)
    has_move_page_permission = page.has_move_page_permission(request)
    
    site = Site.objects.get_current()
    lang = get_language_from_request(request)
    #slug = page.get_slug(language=lang, fallback=True) # why was this here ??
    metadata = ""
    if settings.CMS_PERMISSION:
        # jstree metadata generator 
        md = []
        
        #if not has_add_page_permission:
        if not has_move_page_permission:
            md.append(('valid_children', False))
            md.append(('draggable', False))
        if md:
            # just turn it into simple javasript object
            metadata = "{" + ", ".join(map(lambda e: "%s: %s" %(e[0], 
                isinstance(e[1], bool) and str(e[1]) or e[1].lower() ), md)) + "}"
        
    moderator_state = moderator.page_moderator_state(request, page)
    has_add_on_same_level_permission = False
    opts = Page._meta
    if settings.CMS_PERMISSION:
        if (request.user.has_perm(opts.app_label + '.' + opts.get_add_permission()) and
                GlobalPagePermission.objects.with_user(request.user).filter(can_add=True, sites__in=[page.site_id])):
                has_add_on_same_level_permission = True
        
    if not has_add_on_same_level_permission and page.parent_id:
        has_add_on_same_level_permission = permissions.has_generic_permission(page.parent_id, request.user, "add", page.site)
    #has_add_on_same_level_permission = has_add_page_on_same_level_permission(request, page)
    context = {
        'page': page,
        'site': site,
        'lang': lang,
        'filtered': filtered,
        'metadata': metadata,
        
        'has_change_permission': page.has_change_permission(request),
        'has_publish_permission': page.has_publish_permission(request),
        'has_delete_permission': page.has_delete_permission(request),
        'has_move_page_permission': has_move_page_permission,
        'has_add_page_permission': has_add_page_permission,
        'has_moderate_permission': page.has_moderate_permission(request),
        'page_moderator_state': moderator_state,
        'moderator_should_approve': moderator_state['state'] >= moderator.I_APPROVE,
        'has_add_on_same_level_permission': has_add_on_same_level_permission,
        'CMS_PERMISSION': settings.CMS_PERMISSION,
        'CMS_MODERATOR': settings.CMS_MODERATOR,
    }
    return context
Exemplo n.º 3
0
def get_admin_menu_item_context(request, page, filtered=False):
    """
    Used for rendering the page tree, inserts into context everything what
    we need for single item
    """
    has_add_page_permission = page.has_add_permission(request)
    has_move_page_permission = page.has_move_page_permission(request)
    
    site = Site.objects.get_current()
    lang = get_language_from_request(request)
    #slug = page.get_slug(language=lang, fallback=True) # why was this here ??
    metadata = ""
    if settings.CMS_PERMISSION:
        # jstree metadata generator 
        md = []
        
        #if not has_add_page_permission:
        if not has_move_page_permission:
            md.append(('valid_children', False))
            md.append(('draggable', False))
        if md:
            # just turn it into simple javasript object
            metadata = "{" + ", ".join(map(lambda e: "%s: %s" %(e[0], 
                isinstance(e[1], bool) and str(e[1]) or e[1].lower() ), md)) + "}"
        
    moderator_state = moderator.page_moderator_state(request, page)
    has_add_on_same_level_permission = False
    opts = Page._meta
    if settings.CMS_PERMISSION:
        perms = has_global_page_permission(request, page.site_id, can_add=True)
        if (request.user.has_perm(opts.app_label + '.' + opts.get_add_permission()) and perms):
            has_add_on_same_level_permission = True
        
    if not has_add_on_same_level_permission and page.parent_id:
        has_add_on_same_level_permission = permissions.has_generic_permission(page.parent_id, request.user, "add", page.site)
    #has_add_on_same_level_permission = has_add_page_on_same_level_permission(request, page)
    context = {
        'page': page,
        'site': site,
        'lang': lang,
        'filtered': filtered,
        'metadata': metadata,
        
        'has_change_permission': page.has_change_permission(request),
        'has_publish_permission': page.has_publish_permission(request),
        'has_delete_permission': page.has_delete_permission(request),
        'has_move_page_permission': has_move_page_permission,
        'has_add_page_permission': has_add_page_permission,
        'has_moderate_permission': page.has_moderate_permission(request),
        'page_moderator_state': moderator_state,
        'moderator_should_approve': moderator_state['state'] >= moderator.I_APPROVE,
        'has_add_on_same_level_permission': has_add_on_same_level_permission,
        'CMS_PERMISSION': settings.CMS_PERMISSION,
        'CMS_MODERATOR': settings.CMS_MODERATOR,
    }
    return context
Exemplo n.º 4
0
def get_admin_menu_item_context(request, page, filtered=False):
    """Used for rendering the page tree, inserts into context everything what
    we need for single item
    """
    has_add_page_permission = page.has_add_permission(request)
    has_move_page_permission = page.has_move_page_permission(request)
    
    site = Site.objects.get_current()
    lang = get_language_from_request(request)
    slug = page.get_slug(language=lang, fallback=True)
    metadata = ""
    if cms_settings.CMS_PERMISSION:
        # jstree metadata generator 
        md = []
        
        #if not has_add_page_permission:
            
        if not has_move_page_permission:
            md.append(('valid_children', False))
            md.append(('draggable', False))
        
        if md:
            # just turn it into simple javasript object
            metadata = "{" + ", ".join(map(lambda e: "%s: %s" %(e[0], 
                str(e[1]).lower() if isinstance(e[1], bool) else str(e[1])), md)) + "}"
        
    moderator_state = page_moderator_state(request, page)
    has_add_on_same_level_permission = has_add_page_on_same_level_permission(request, page)

    context = {
        'page': page,
        'site': site,
        'lang': lang,
        'filtered': filtered,
        'metadata': metadata,
        
        'has_change_permission': page.has_change_permission(request),
        'has_publish_permission': page.has_publish_permission(request),
        'has_delete_permission': page.has_delete_permission(request),
        'has_move_page_permission': has_move_page_permission,
        'has_add_page_permission': has_add_page_permission,
        'has_moderate_permission': page.has_moderate_permission(request),
        'page_moderator_state': moderator_state,
        'moderator_should_approve': moderator_state['state'] is I_APPROVE,
        
        'has_add_on_same_level_permission': has_add_on_same_level_permission,
        
        'CMS_PERMISSION': cms_settings.CMS_PERMISSION,
        'CMS_MODERATOR': cms_settings.CMS_MODERATOR,
    }
    return context
Exemplo n.º 5
0
 def get_items(self, context, **kwargs):
     """
     Get the CMS items on the toolbar
     """
     items = [
         Anchor(LEFT, 'logo', _('django CMS'), 'https://www.django-cms.org'),
     ]
     
     self.page_states = []
     
     
     if self.is_staff:
         
         items.append(
             self.edit_mode_switcher
         )
         
         if self.request.current_page:
             states = self.request.current_page.last_page_states()
             has_states = states.exists()
             self.page_states = states
             if has_states:
                 items.append(
                     TemplateHTML(LEFT, 'status',
                                  'cms/toolbar/items/status.html')
                 )
             
             # publish button
             if self.edit_mode and settings.CMS_MODERATOR:
                 moderator_state = page_moderator_state(self.request, self.request.current_page)
                 should_approve = moderator_state['state'] >= I_APPROVE
                 has_perms = self.request.current_page.has_moderate_permission(self.request)
                 if should_approve and has_perms:
                     label = moderator_state['label']
                     urlgetter = _get_approve_url
                 elif has_perms:
                     label = _("Publish")
                     urlgetter = _get_publish_url
                 else:
                     urlgetter = _get_approve_url
                     label = _("Request Approval")
                 items.append(
                     GetButton(RIGHT, 'moderator', label, urlgetter)
                 )
         
             # The 'templates' Menu
             items.append(self.get_template_menu(context, self.can_change, self.is_staff))
             
             # The 'page' Menu
             items.append(self.get_page_menu(context, self.can_change, self.is_staff))
         
         # The 'Admin' Menu
         items.append(self.get_admin_menu(context, self.can_change, self.is_staff))
         
         items.append(
             GetButton(RIGHT, 'logout', _('Logout'), '?cms-toolbar-logout',
                       cms_static_url('images/toolbar/icons/icon_lock.png'))
         )
     elif not self.request.user.is_authenticated():
         items.append(
             TemplateHTML(LEFT, 'login', 'cms/toolbar/items/login.html')
         )
     else:
         items.append(
             GetButton(RIGHT, 'logout', _('Logout'), '?cms-toolbar-logout',
                       cms_static_url('images/toolbar/icons/icon_lock.png'))
         )
     return items
Exemplo n.º 6
0
    def get_items(self, context, **kwargs):
        """
        Get the CMS items on the toolbar
        """
        items = [
            Anchor(LEFT, 'logo', _('django CMS'),
                   'https://www.django-cms.org'),
        ]

        self.page_states = []

        if self.is_staff:

            items.append(self.edit_mode_switcher)

            if self.request.current_page:
                states = self.request.current_page.last_page_states()
                has_states = states.exists()
                self.page_states = states
                if has_states:
                    items.append(
                        TemplateHTML(LEFT, 'status',
                                     'cms/toolbar/items/status.html'))

                # publish button
                if self.edit_mode and settings.CMS_MODERATOR:
                    moderator_state = page_moderator_state(
                        self.request, self.request.current_page)
                    should_approve = moderator_state['state'] >= I_APPROVE
                    has_perms = self.request.current_page.has_moderate_permission(
                        self.request)
                    if should_approve and has_perms:
                        label = moderator_state['label']
                        urlgetter = _get_approve_url
                    elif has_perms:
                        label = _("Publish")
                        urlgetter = _get_publish_url
                    else:
                        urlgetter = _get_approve_url
                        label = _("Request Approval")
                    items.append(
                        GetButton(RIGHT, 'moderator', label, urlgetter))

                # The 'templates' Menu
                items.append(
                    self.get_template_menu(context, self.can_change,
                                           self.is_staff))

                # The 'page' Menu
                items.append(
                    self.get_page_menu(context, self.can_change,
                                       self.is_staff))

            # The 'Admin' Menu
            items.append(
                self.get_admin_menu(context, self.can_change, self.is_staff))

            items.append(
                GetButton(
                    RIGHT, 'logout', _('Logout'), '?cms-toolbar-logout',
                    cms_static_url('images/toolbar/icons/icon_lock.png')))
        elif not self.request.user.is_authenticated():
            items.append(
                TemplateHTML(LEFT, 'login', 'cms/toolbar/items/login.html'))
        else:
            items.append(
                GetButton(
                    RIGHT, 'logout', _('Logout'), '?cms-toolbar-logout',
                    cms_static_url('images/toolbar/icons/icon_lock.png')))
        return items