forked from ungleich-public/dynamicweb
75 lines
2.9 KiB
Python
75 lines
2.9 KiB
Python
from django.urls import NoReverseMatch
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from cms.test_utils.project.extensionapp.models import (
|
|
MyPageContentExtension,
|
|
MyPageExtension,
|
|
)
|
|
from cms.toolbar_base import CMSToolbar
|
|
from cms.toolbar_pool import toolbar_pool
|
|
from cms.utils.page_permissions import user_can_change_page
|
|
from cms.utils.urlutils import admin_reverse
|
|
|
|
|
|
@toolbar_pool.register
|
|
class MyPageContentExtensionToolbar(CMSToolbar):
|
|
def populate(self):
|
|
# always use draft if we have a page
|
|
self.page = self.request.current_page
|
|
|
|
if not self.page:
|
|
# Nothing to do
|
|
return
|
|
|
|
if user_can_change_page(self.request.user, page=self.page):
|
|
try:
|
|
mypagecontentextension = MyPageContentExtension.objects.get(extended_object_id=self.page.id)
|
|
except MyPageContentExtension.DoesNotExist:
|
|
mypagecontentextension = None
|
|
try:
|
|
if mypagecontentextension:
|
|
url = admin_reverse(
|
|
'extensionapp_mypagecontentextension_change', args=(mypagecontentextension.pk,)
|
|
)
|
|
else:
|
|
url = admin_reverse(
|
|
'extensionapp_mypagecontentextension_add'
|
|
) + '?extended_object=%s' % self.page.pk
|
|
except NoReverseMatch:
|
|
# not in urls
|
|
pass
|
|
else:
|
|
not_edit_mode = not self.toolbar.edit_mode_active
|
|
current_page_menu = self.toolbar.get_or_create_menu('page')
|
|
current_page_menu.add_modal_item(_('Title Extension'), url=url, disabled=not_edit_mode)
|
|
|
|
|
|
@toolbar_pool.register
|
|
class MyPageExtensionToolbar(CMSToolbar):
|
|
supported_apps = ('cms.test_utils.project.extensionapp.cms_toolbar', 'cms.test_utils.project.placeholderapp')
|
|
|
|
def populate(self):
|
|
# always use draft if we have a page
|
|
self.page = self.request.current_page
|
|
|
|
if not self.page:
|
|
# Nothing to do
|
|
return
|
|
|
|
if user_can_change_page(self.request.user, page=self.page):
|
|
try:
|
|
mypageextension = MyPageExtension.objects.get(extended_object_id=self.page.id)
|
|
except MyPageExtension.DoesNotExist:
|
|
mypageextension = None
|
|
try:
|
|
if mypageextension:
|
|
url = admin_reverse('extensionapp_mypageextension_change', args=(mypageextension.pk,))
|
|
else:
|
|
url = admin_reverse('extensionapp_mypageextension_add') + '?extended_object=%s' % self.page.pk
|
|
except NoReverseMatch:
|
|
# not in urls
|
|
pass
|
|
else:
|
|
not_edit_mode = not self.toolbar.edit_mode_active
|
|
current_page_menu = self.toolbar.get_or_create_menu('page')
|
|
current_page_menu.add_modal_item(_('Page Extension'), url=url, disabled=not_edit_mode)
|