def get_urls(self, page=None, language=None, **kwargs): from shop.search.views import CMSPageCatalogWrapper from shop.views.catalog import AddToCartView, ProductRetrieveView from alby.serializers import CatalogSearchSerializer, RebateAddToCartSerializer, AddSofaToCartSerializer, UpdateDataSerialiser return [ url( r'^$', CMSPageCatalogWrapper.as_view( search_serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view()), url( r'^(?P<slug>[\w-]+)/get-rebate', AddToCartView.as_view( serializer_class=RebateAddToCartSerializer, )), url( r'^(?P<slug>[\w-]+)/add-sofa-to-cart', AddToCartView.as_view( serializer_class=AddSofaToCartSerializer, )), url( r'^(?P<slug>[\w-]+)/update-small-data', UpdateDataView.as_view( serializer_class=UpdateDataSerialiser, )), url( r'^/divany/(?P<slug>[\w-]+)', ProductRetrieveView.as_view( use_modal_dialog=False, serializer_class=CustomizedProductSerializer, )), url(r'^(?P<slug>[\w-]+)', ProductRetrieveView.as_view(use_modal_dialog=False, )), ]
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 myshop.filters import ManufacturerFilterSet from myshop.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, )), ]
def test_catalog_detail(commodity_factory, customer_factory, rf): product = commodity_factory() request = rf.get('/catalog/{}'.format(product.slug)) request.current_page = product.cms_pages.first() request.customer = customer_factory() response = ProductRetrieveView.as_view()(request, slug=product.slug) response.render() assert response.data['product_code'] == product.product_code assert response.data['price'] == six.text_type(product.unit_price) assert response.data['slug'] == product.slug
def get_urls(self, page=None, language=None, **kwargs): from shop.views.catalog import AddToCartView, ProductListView, ProductRetrieveView from giftshop.serializers import ProductDetailSerializer return [ url(r'^$', ProductListView.as_view(redirect_to_lonely_product=True, )), url( r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, lookup_field='translations__slug')), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view(lookup_field='translations__slug')), ]
def get_urls(self, page=None, language=None, **kwargs): from shop.search.mixins import ProductSearchViewMixin from shop.views.catalog import AddToCartView, ProductListView, ProductRetrieveView from myshop.serializers import ProductDetailSerializer ProductListView = type('ProductSearchListView', (ProductSearchViewMixin, ProductListView), {}) return [ url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view()), url( r'^(?P<slug>[\w-]+)', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, )), url(r'^', ProductListView.as_view(redirect_to_lonely_product=True, )), ]
def get_urls(self, page=None, language=None, **kwargs): from shop.search.views import CMSPageCatalogWrapper from shop.views.catalog import AddToCartView, ProductRetrieveView from myshop.filters import ManufacturerFilterSet from myshop.serializers import AddSmartPhoneToCartSerializer, CatalogSearchSerializer return [ url(r'^$', CMSPageCatalogWrapper.as_view( filter_class=ManufacturerFilterSet, search_serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view()), 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, )), ]
def get_urls(self, page=None, language=None, **kwargs): filter_backends = [CMSPagesFilterBackend] filter_backends.extend(api_settings.DEFAULT_FILTER_BACKENDS) ProductListViewClass = type('ProductSearchListView', (ProductSearchViewMixin, ProductListView), {}) return [ url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view()), url( r'^(?P<slug>[\w-]+)', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, )), url( r'^', ProductListViewClass.as_view( filter_backends=filter_backends, redirect_to_lonely_product=True, )), ]
""" These URL routings are used by the example `polymorphic` as found in the django-SHOP's tutorials. The difference here is that we added a special serializer class to add smart phones with their variations to the cart. """ from __future__ import unicode_literals from django.conf.urls import url from shop.search.views import CMSPageCatalogWrapper from shop.views.catalog import AddToCartView, ProductRetrieveView from myshop.filters import ManufacturerFilterSet from myshop.serializers import (AddSmartPhoneToCartSerializer, CatalogSearchSerializer) urlpatterns = [ url( r'^$', CMSPageCatalogWrapper.as_view( filter_class=ManufacturerFilterSet, search_serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view()), 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, )), ]
# -*- coding: utf-8 -*- """ These URL routings are used by the example `i18n_commodity` as found in the django-SHOP's tutorials. The difference here is that we modified the lookup_field for slug, since it is translated. """ from __future__ import unicode_literals from django.conf.urls import url from shop.views.catalog import ProductListView, ProductRetrieveView, AddToCartView from tlmshop.serializers import ProductSummarySerializer, ProductDetailSerializer urlpatterns = [ url(r'^$', ProductListView.as_view( serializer_class=ProductSummarySerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, lookup_field='translations__slug' )), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view( lookup_field='translations__slug' )), ]
variations to the cart. """ from __future__ import unicode_literals from django.conf.urls import url from shop.views.catalog import AddToCartView, CMSPageProductListView, ProductRetrieveView from shop.search.views import SearchView from myshop.filters import ManufacturerFilter from myshop.serializers import (ProductSummarySerializer, ProductDetailSerializer, AddSmartCardToCartSerializer, AddSmartPhoneToCartSerializer, CatalogSearchSerializer) urlpatterns = [ url(r'^$', CMSPageProductListView.as_view( serializer_class=ProductSummarySerializer, filter_class=ManufacturerFilter, )), url(r'^search-catalog$', SearchView.as_view( serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, )), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view( serializer_class=AddSmartCardToCartSerializer, )), url(r'^(?P<slug>[\w-]+)/add-smartphone-to-cart', AddToCartView.as_view( serializer_class=AddSmartPhoneToCartSerializer, )), ]
# -*- coding: utf-8 -*- """ These URL routings are used by the example `i18n_commodity` as found in the django-SHOP's tutorials. The difference here is that we modified the lookup_field for slug, since it is translated. """ from __future__ import unicode_literals from django.conf.urls import url from shop.views.catalog import ProductListView, ProductRetrieveView, AddToCartView from myshop.serializers import ProductSummarySerializer, ProductDetailSerializer urlpatterns = [ url(r'^$', ProductListView.as_view(serializer_class=ProductSummarySerializer, )), url( r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view(serializer_class=ProductDetailSerializer, lookup_field='translations__slug')), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view(lookup_field='translations__slug')), ]
ProductDetailSerializer, AddSmartCardToCartSerializer, AddSmartPhoneToCartSerializer, CatalogSearchSerializer) filter_backends = list(api_settings.DEFAULT_FILTER_BACKENDS) filter_backends.append(CMSPagesFilterBackend()) urlpatterns = patterns( '', url( r'^$', ProductListView.as_view( serializer_class=ProductSummarySerializer, filter_backends=filter_backends, )), url(r'^search-catalog$', SearchView.as_view(serializer_class=CatalogSearchSerializer, )), url( r'^(?P<slug>[\w-]+)$', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, )), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view( serializer_class=AddSmartCardToCartSerializer, )), url( r'^(?P<slug>[\w-]+)/add-smartphone-to-cart', AddToCartView.as_view( serializer_class=AddSmartPhoneToCartSerializer, )), )
class CatalogListApp(CatalogListCMSApp): def get_urls(self, page=None, language=None, **kwargs): {%- if cookiecutter.products_model == 'polymorphic' %} from shop.search.views import CMSPageCatalogWrapper from shop.views.catalog import AddToCartView, ProductRetrieveView from {{ cookiecutter.app_name }}.filters import ManufacturerFilterSet from {{ cookiecutter.app_name }}.serializers import AddSmartPhoneToCartSerializer, CatalogSearchSerializer return [ url(r'^$', CMSPageCatalogWrapper.as_view( filter_class=ManufacturerFilterSet, search_serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view( use_modal_dialog=False, )), 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, )), ] {%- elif cookiecutter.products_model == 'commodity' and cookiecutter.use_i18n == 'y' %} from shop.views.catalog import AddToCartView, ProductListView, ProductRetrieveView from {{ cookiecutter.app_name }}.serializers import ProductSummarySerializer, ProductDetailSerializer return [ url(r'^$', ProductListView.as_view( serializer_class=ProductSummarySerializer, redirect_to_lonely_product=True, )),
# -*- coding: utf-8 -*- """ These URL routings are used by the example `i18n_commodity` as found in the django-SHOP's tutorials. The difference here is that we modified the lookup_field for slug, since it is translated. """ from __future__ import unicode_literals from django.conf.urls import url from shop.views.catalog import ProductListView, ProductRetrieveView, AddToCartView from myshop.serializers import ProductSummarySerializer, ProductDetailSerializer urlpatterns = [ url(r'^$', ProductListView.as_view( serializer_class=ProductSummarySerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, lookup_field='translations__slug' )), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view( lookup_field='translations__slug' )), ]
""" These URL routings are used by the example `polymorphic` as found in the django-SHOP's tutorials. The difference here is that we added a special serializer class to add smart phones with their variations to the cart. """ from __future__ import unicode_literals from django.conf.urls import url from shop.search.views import CMSPageCatalogWrapper from shop.views.catalog import AddToCartView, ProductRetrieveView from myshop.filters import ManufacturerFilterSet from myshop.serializers import (AddSmartCardToCartSerializer, AddSmartPhoneToCartSerializer, CatalogSearchSerializer) urlpatterns = [ url(r'^$', CMSPageCatalogWrapper.as_view( filter_class=ManufacturerFilterSet, search_serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view()), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view( serializer_class=AddSmartCardToCartSerializer, )), url(r'^(?P<slug>[\w-]+)/add-smartphone-to-cart', AddToCartView.as_view( serializer_class=AddSmartPhoneToCartSerializer, )), ]
class CatalogListApp(CatalogListCMSApp): def get_urls(self, page=None, language=None, **kwargs): {%- if cookiecutter.products_model == 'polymorphic' %} from shop.search.views import CMSPageCatalogWrapper from shop.views.catalog import AddToCartView, ProductRetrieveView from {{ cookiecutter.app_name }}.filters import ManufacturerFilterSet from {{ cookiecutter.app_name }}.serializers import AddSmartPhoneToCartSerializer, CatalogSearchSerializer 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'^', CMSPageCatalogWrapper.as_view( filter_class=ManufacturerFilterSet, search_serializer_class=CatalogSearchSerializer, )), ] {%- else %}{% set use_lookup_field = (cookiecutter.products_model == 'commodity' and cookiecutter.use_i18n == 'y') %} from shop.views.catalog import AddToCartView, ProductListView, ProductRetrieveView from {{ cookiecutter.app_name }}.serializers import ProductDetailSerializer return [ url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view({% if use_lookup_field %}lookup_field='translations__slug'{% endif %})), url(r'^(?P<slug>[\w-]+)', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer, {%- if use_lookup_field %}
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf.urls import patterns, url from rest_framework.settings import api_settings from shop.rest.filters import CMSPagesFilterBackend from shop.views.catalog import AddToCartView, ProductListView, ProductRetrieveView from shop.search.views import SearchView from myshop.serializers import ProductSummarySerializer, ProductDetailSerializer, CatalogSearchSerializer filter_backends = list(api_settings.DEFAULT_FILTER_BACKENDS) filter_backends.append(CMSPagesFilterBackend()) urlpatterns = patterns( "", url(r"^$", ProductListView.as_view(serializer_class=ProductSummarySerializer, filter_backends=filter_backends)), url(r"^search-catalog$", SearchView.as_view(serializer_class=CatalogSearchSerializer)), url(r"^(?P<slug>[\w-]+)$", ProductRetrieveView.as_view(serializer_class=ProductDetailSerializer)), url(r"^(?P<slug>[\w-]+)/add-to-cart", AddToCartView.as_view()), )
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf.urls import url from shop.views.catalog import AddToCartView, CMSPageProductListView, ProductRetrieveView from shop.search.views import SearchView from myshop.serializers import (ProductSummarySerializer, ProductDetailSerializer, CatalogSearchSerializer) urlpatterns = [ url(r'^$', CMSPageProductListView.as_view( serializer_class=ProductSummarySerializer, )), url(r'^search-catalog$', SearchView.as_view( serializer_class=CatalogSearchSerializer, )), url(r'^(?P<slug>[\w-]+)/?$', ProductRetrieveView.as_view( serializer_class=ProductDetailSerializer )), url(r'^(?P<slug>[\w-]+)/add-to-cart', AddToCartView.as_view()), ]