Init Django-SHOP
This commit is contained in:
60
weirdlittleempire/cms_apps.py
Normal file
60
weirdlittleempire/cms_apps.py
Normal file
@@ -0,0 +1,60 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user