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
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
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
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
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
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