Files
empire/weirdlittleempire/cms_apps.py
2021-02-23 23:00:01 +00:00

61 lines
2.1 KiB
Python

from shop.cms_apphooks import CatalogSearchApp
from django.conf.urls import url
from rest_framework.settings import api_settings
from cms.apphook_pool import apphook_pool
from cms.cms_menus import SoftRootCutter
from menus.menu_pool import menu_pool
from shop.cms_apphooks import CatalogListCMSApp, CatalogSearchApp, OrderApp, PasswordResetApp
from shop.rest.filters import CMSPagesFilterBackend
class CatalogListApp(CatalogListCMSApp):
def get_urls(self, page=None, language=None, **kwargs):
from shop.search.mixins import ProductSearchViewMixin
from shop.views.catalog import AddToCartView, ProductListView, ProductRetrieveView
from shop.views.catalog import AddFilterContextMixin
from weirdlittleempire.filters import ManufacturerFilterSet
from weirdlittleempire.serializers import AddSmartPhoneToCartSerializer
ProductListView = type(
'ProductSearchListView', (AddFilterContextMixin, ProductSearchViewMixin, ProductListView), {})
filter_backends = [CMSPagesFilterBackend]
filter_backends.extend(api_settings.DEFAULT_FILTER_BACKENDS)
return [
url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view()),
url(r'^(?P<slug>[\w-]+)/add-smartphone-to-cart', AddToCartView.as_view(
serializer_class=AddSmartPhoneToCartSerializer,
)),
url(r'^(?P<slug>[\w-]+)', ProductRetrieveView.as_view(
use_modal_dialog=False,
)),
url(r'^', ProductListView.as_view(
filter_backends=filter_backends,
filter_class=ManufacturerFilterSet,
)),
]
apphook_pool.register(CatalogListApp)
apphook_pool.register(CatalogSearchApp)
apphook_pool.register(OrderApp)
apphook_pool.register(PasswordResetApp)
def _deregister_menu_pool_modifier(Modifier):
index = None
for k, modifier_class in enumerate(menu_pool.modifiers):
if issubclass(modifier_class, Modifier):
index = k
if index is not None:
# intentionally only modifying the list
menu_pool.modifiers.pop(index)
_deregister_menu_pool_modifier(SoftRootCutter)