Example #1
0
    def populate(self):
        # always use draft if we have a page
        self.page = get_page_draft(self.request.current_page)
        if not self.page:
            # Nothing to do
            return

        # check global permissions if CMS_PERMISSIONS is active
        if get_cms_setting('PERMISSION'):
            if not has_page_change_permission:
                has_global_current_page_change_permission = has_page_permission(
                    self.request.user, self.request.current_page, 'change'
                )
            else:
                has_global_current_page_change_permission = has_page_change_permission(
                    self.request
                )
        else:
            has_global_current_page_change_permission = False
            # check if user has page edit permission
        if not has_page_change_permission:
            can_change = (self.request.current_page and
                          self.request.current_page.has_change_permission(self.request.user))
        else:
            can_change = (self.request.current_page and
                          self.request.current_page.has_change_permission(self.request))
        if has_global_current_page_change_permission or can_change:
            not_edit_mode = not self.toolbar.edit_mode
            current_page_menu = self.toolbar.get_or_create_menu('page')
            position = current_page_menu.find_first(
                Break, identifier=PAGE_MENU_THIRD_BREAK) - 1
            # Page tags
            try:
                page_extension = PageSitemapProperties.objects.get(extended_object_id=self.page.pk)
            except PageSitemapProperties.DoesNotExist:
                page_extension = None
            try:
                if page_extension:
                    url = reverse('admin:djangocms_page_sitemap_pagesitemapproperties_change',
                                  args=(page_extension.pk,))
                else:
                    url = "%s?extended_object=%s" % (
                        reverse('admin:djangocms_page_sitemap_pagesitemapproperties_add'),
                        self.page.pk)
            except NoReverseMatch:  # pragma: no cover
                # not in urls
                pass
            else:
                current_page_menu.add_modal_item(PAGE_SITEMAP_MENU_TITLE,
                                                 url=url, disabled=not_edit_mode,
                                                 position=position)
Example #2
0
    def populate(self):
        # always use draft if we have a page
        self.page = get_page_draft(self.request.current_page)
        if not self.page:
            # Nothing to do
            return

        # check global permissions if CMS_PERMISSIONS is active
        if get_cms_setting('PERMISSION'):
            if not has_page_change_permission:
                has_global_current_page_change_permission = has_page_permission(
                    self.request.user, self.request.current_page, 'change')
            else:
                has_global_current_page_change_permission = has_page_change_permission(
                    self.request)
        else:
            has_global_current_page_change_permission = False
            # check if user has page edit permission
        if not has_page_change_permission:
            can_change = (self.request.current_page
                          and self.request.current_page.has_change_permission(
                              self.request.user))
        else:
            can_change = (self.request.current_page
                          and self.request.current_page.has_change_permission(
                              self.request))
        if has_global_current_page_change_permission or can_change:
            not_edit_mode = not self.toolbar.edit_mode
            current_page_menu = self.toolbar.get_or_create_menu('page')
            super_item = current_page_menu.find_first(
                Break, identifier=PAGE_MENU_SECOND_BREAK) + 1
            meta_menu = current_page_menu.get_or_create_menu(
                'pagemeta', PAGE_META_MENU_TITLE, position=super_item)
            position = 0
            # Page tags
            try:
                page_extension = PageMeta.objects.get(
                    extended_object_id=self.page.pk)
            except PageMeta.DoesNotExist:
                page_extension = None
            try:
                if page_extension:
                    url = reverse('admin:djangocms_page_meta_pagemeta_change',
                                  args=(page_extension.pk, ))
                else:
                    url = '%s?extended_object=%s' % (
                        reverse('admin:djangocms_page_meta_pagemeta_add'),
                        self.page.pk)
            except NoReverseMatch:
                # not in urls
                pass
            else:
                meta_menu.add_modal_item(PAGE_META_ITEM_TITLE,
                                         url=url,
                                         disabled=not_edit_mode,
                                         position=position)
            # Title tags
            for title in self.page.title_set.filter(
                    language__in=get_language_list(self.page.site_id)):
                try:
                    title_extension = TitleMeta.objects.get(
                        extended_object_id=title.pk)
                except TitleMeta.DoesNotExist:
                    title_extension = None
                try:
                    if title_extension:
                        url = reverse(
                            'admin:djangocms_page_meta_titlemeta_change',
                            args=(title_extension.pk, ))
                    else:
                        url = '%s?extended_object=%s' % (
                            reverse('admin:djangocms_page_meta_titlemeta_add'),
                            title.pk)
                except NoReverseMatch:
                    # not in urls
                    pass
                else:
                    position += 1
                    language = get_language_object(title.language)
                    meta_menu.add_modal_item(language['name'],
                                             url=url,
                                             disabled=not_edit_mode,
                                             position=position)
    def populate(self):
        # always use draft if we have a page
        self.page = get_page_draft(self.request.current_page)

        if not self.page:
            # Nothing to do
            return

        # check global permissions if CMS_PERMISSIONS is active
        if get_cms_setting('PERMISSION'):
            has_global_current_page_change_permission = has_page_permission(
                self.request.user, self.request.current_page, 'change'
            )
        else:
            has_global_current_page_change_permission = False
            # check if user has page edit permission
        has_change_permission = self.request.current_page.has_change_permission(self.request.user)
        can_change = (self.request.current_page and has_change_permission)
        if has_global_current_page_change_permission or can_change:
            try:
                not_edit_mode = not self.toolbar.edit_mode
            except AttributeError:
                not_edit_mode = not self.toolbar.edit_mode_active

            tags_menu = self.toolbar.get_or_create_menu('page')
            super_item = tags_menu.find_first(Break, identifier=PAGE_MENU_SECOND_BREAK) + 1
            tags_menu = tags_menu.get_or_create_menu(
                'pagetags', PAGE_TAGS_MENU_TITLE, position=super_item
            )
            position = 0
            # Page tags
            try:
                page_extension = PageTags.objects.get(extended_object_id=self.page.pk)
            except PageTags.DoesNotExist:
                page_extension = None
            try:
                if page_extension:
                    url = reverse('admin:djangocms_page_tags_pagetags_change',
                                  args=(page_extension.pk,))
                else:
                    url = '%s?extended_object=%s' % (
                        reverse('admin:djangocms_page_tags_pagetags_add'),
                        self.page.pk
                    )
            except NoReverseMatch:  # pragma: no cover
                # not in urls
                pass
            else:
                tags_menu.add_modal_item(PAGE_TAGS_ITEM_TITLE, url=url, disabled=not_edit_mode,
                                         position=position)
            # Title tags
            try:
                site_id = self.page.node.site_id
            except AttributeError:  # CMS_3_4
                site_id = self.page.site_id
            for title in self.page.title_set.filter(
                language__in=get_language_list(site_id)
            ):
                try:
                    title_extension = TitleTags.objects.get(extended_object_id=title.pk)
                except TitleTags.DoesNotExist:
                    title_extension = None
                try:
                    if title_extension:
                        url = reverse('admin:djangocms_page_tags_titletags_change',
                                      args=(title_extension.pk,))
                    else:
                        url = '%s?extended_object=%s' % (
                            reverse('admin:djangocms_page_tags_titletags_add'),
                            title.pk)
                except NoReverseMatch:  # pragma: no cover
                    # not in urls
                    pass
                else:
                    position += 1
                    language = get_language_object(title.language)
                    tags_menu.add_modal_item(language['name'], url=url, disabled=not_edit_mode,
                                             position=position)
    def populate(self):
        # always use draft if we have a page
        self.page = get_page_draft(self.request.current_page)
        if not self.page:
            # Nothing to do
            return

        # check global permissions if CMS_PERMISSIONS is active
        if get_cms_setting("PERMISSION"):
            has_global_current_page_change_permission = has_page_permission(
                self.request.user, self.request.current_page, "change")
        else:
            has_global_current_page_change_permission = False
            # check if user has page edit permission
        permission = self.request.current_page.has_change_permission(
            self.request.user)
        can_change = self.request.current_page and permission
        if has_global_current_page_change_permission or can_change:
            not_edit_mode = not self.toolbar.edit_mode_active

            current_page_menu = self.toolbar.get_or_create_menu("page")
            super_item = current_page_menu.find_first(
                Break, identifier=PAGE_MENU_SECOND_BREAK)
            if super_item:
                super_item = super_item + 1
            meta_menu = current_page_menu.get_or_create_menu(
                "pagemeta", PAGE_META_MENU_TITLE, position=super_item)
            position = 0
            # Page tags
            try:
                page_extension = PageMeta.objects.get(
                    extended_object_id=self.page.pk)
            except PageMeta.DoesNotExist:
                page_extension = None
            try:
                if page_extension:
                    url = reverse("admin:djangocms_page_meta_pagemeta_change",
                                  args=(page_extension.pk, ))
                else:
                    url = "{}?extended_object={}".format(
                        reverse("admin:djangocms_page_meta_pagemeta_add"),
                        self.page.pk)
            except NoReverseMatch:
                # not in urls
                pass
            else:
                meta_menu.add_modal_item(PAGE_META_ITEM_TITLE,
                                         url=url,
                                         disabled=not_edit_mode,
                                         position=position)
            # Title tags
            site_id = self.page.node.site_id
            titles = self.page.title_set.filter(
                language__in=get_language_list(site_id))

            title_extensions = {
                t.extended_object_id: t
                for t in TitleMeta.objects.filter(
                    extended_object_id__in=[title.id for title in titles])
            }

            for title in titles:
                try:
                    if title.pk in title_extensions:
                        url = reverse(
                            "admin:djangocms_page_meta_titlemeta_change",
                            args=(title_extensions[title.pk].pk, ))
                    else:
                        url = "{}?extended_object={}".format(
                            reverse("admin:djangocms_page_meta_titlemeta_add"),
                            title.pk)
                except NoReverseMatch:
                    # not in urls
                    pass
                else:
                    position += 1
                    language = get_language_object(title.language)
                    meta_menu.add_modal_item(language["name"],
                                             url=url,
                                             disabled=not_edit_mode,
                                             position=position)
    def populate(self):
        # always use draft if we have a page
        self.page = get_page_draft(self.request.current_page)
        if not self.page:
            # Nothing to do
            return

        # check global permissions if CMS_PERMISSIONS is active
        if get_cms_setting("PERMISSION"):
            if not has_page_change_permission:
                has_global_current_page_change_permission = has_page_permission(
                    self.request.user, self.request.current_page, "change"
                )
            else:
                has_global_current_page_change_permission = has_page_change_permission(self.request)
        else:
            has_global_current_page_change_permission = False
            # check if user has page edit permission
        if not has_page_change_permission:
            can_change = self.request.current_page and self.request.current_page.has_change_permission(
                self.request.user
            )
        else:
            can_change = self.request.current_page and self.request.current_page.has_change_permission(self.request)
        if has_global_current_page_change_permission or can_change:
            not_edit_mode = not self.toolbar.edit_mode
            current_page_menu = self.toolbar.get_or_create_menu("page")
            super_item = current_page_menu.find_first(Break, identifier=PAGE_MENU_SECOND_BREAK) + 1
            meta_menu = current_page_menu.get_or_create_menu("pagemeta", PAGE_META_MENU_TITLE, position=super_item)
            position = 0
            # Page tags
            try:
                page_extension = PageMeta.objects.get(extended_object_id=self.page.pk)
            except PageMeta.DoesNotExist:
                page_extension = None
            try:
                if page_extension:
                    url = reverse("admin:djangocms_page_meta_pagemeta_change", args=(page_extension.pk,))
                else:
                    url = "%s?extended_object=%s" % (reverse("admin:djangocms_page_meta_pagemeta_add"), self.page.pk)
            except NoReverseMatch:
                # not in urls
                pass
            else:
                meta_menu.add_modal_item(PAGE_META_ITEM_TITLE, url=url, disabled=not_edit_mode, position=position)
            # Title tags
            for title in self.page.title_set.filter(language__in=get_language_list(self.page.site_id)):
                try:
                    title_extension = TitleMeta.objects.get(extended_object_id=title.pk)
                except TitleMeta.DoesNotExist:
                    title_extension = None
                try:
                    if title_extension:
                        url = reverse("admin:djangocms_page_meta_titlemeta_change", args=(title_extension.pk,))
                    else:
                        url = "%s?extended_object=%s" % (reverse("admin:djangocms_page_meta_titlemeta_add"), title.pk)
                except NoReverseMatch:
                    # not in urls
                    pass
                else:
                    position += 1
                    language = get_language_object(title.language)
                    meta_menu.add_modal_item(language["name"], url=url, disabled=not_edit_mode, position=position)