diff --git a/changes/36.bugfix b/changes/36.bugfix new file mode 100644 index 0000000..1dbf56d --- /dev/null +++ b/changes/36.bugfix @@ -0,0 +1 @@ +Skip creating toolbar item in page types diff --git a/djangocms_page_tags/cms_toolbars.py b/djangocms_page_tags/cms_toolbars.py index 4210810..a8b071a 100644 --- a/djangocms_page_tags/cms_toolbars.py +++ b/djangocms_page_tags/cms_toolbars.py @@ -26,6 +26,9 @@ def populate(self): if not self.page: # Nothing to do return + if self.page.is_page_type: + # we don't need this on page types + return # check global permissions if CMS_PERMISSIONS is active if get_cms_setting("PERMISSION"): diff --git a/tests/test_toolbar.py b/tests/test_toolbar.py index 0d581f0..96c052b 100644 --- a/tests/test_toolbar.py +++ b/tests/test_toolbar.py @@ -44,6 +44,24 @@ def test_no_perm(self): tags_menu = page_menu[0].item.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE)) self.assertEqual(tags_menu, []) + def test_page_types(self): + """ + Test that page meta menu is not displayed on page types. + """ + from cms.toolbar.toolbar import CMSToolbar + + page1, page2 = self.get_pages() + page1.is_page_type = True + page1.save() + self.user_staff.user_permissions.add(Permission.objects.get(codename="change_page")) + self.user_staff = User.objects.get(pk=self.user_staff.pk) + request = self.get_page_request(page1, self.user_staff, "/", edit=True) + toolbar = CMSToolbar(request) + toolbar.get_left_items() + page_menu = toolbar.find_items(Menu, name="Page")[0].item + page_items = page_menu.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE)) + self.assertEqual(len(page_items), 0) + def test_perm(self): """ Test that page tags menu is present if user has Page.change_perm