from django.utils.translation import gettext_lazy as _
from shuup.admin.base import AdminModule, MenuEntry
from shuup.admin.menu import CONTENT_MENU_CATEGORY
from shuup.admin.utils.urls import admin_url, derive_model_url, get_edit_and_list_urls
from shuup.admin.views.home import HelpBlockCategory, SimpleHelpBlock
from shuup.simple_cms.models import Page
[docs]
class SimpleCMSAdminModule(AdminModule):
name = _("Content Pages")
breadcrumbs_menu_entry = MenuEntry(name, "shuup_admin:simple_cms.page.list")
[docs]
def get_urls(self):
url_prefix = "^cms/page"
view_template = "shuup.simple_cms.admin_module.views.Page%sView"
name_template = "simple_cms.page.%s"
return get_edit_and_list_urls(
url_prefix=url_prefix,
view_template=view_template,
name_template=name_template,
) + [
admin_url(
rf"{url_prefix}/delete/(?P<pk>\d+)/",
view_template % "Delete",
name=name_template % "delete",
permissions=(name_template % "delete",),
),
]
[docs]
def get_help_blocks(self, request, kind):
if kind == "quicklink":
yield SimpleHelpBlock(
text=_("Add a web page"),
actions=[{"text": _("New page"), "url": self.get_model_url(Page, "new")}],
priority=100,
category=HelpBlockCategory.STOREFRONT,
icon_url="simple_cms/page.png",
)
[docs]
def get_model_url(self, object, kind, shop=None):
return derive_model_url(Page, "shuup_admin:simple_cms.page", object, kind)