# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from django.utils.html import mark_safe
from cms.plugin_pool import plugin_pool
from cmsplugin_cascade.plugin_base import CascadePluginBase


class ShopCartPlugin(CascadePluginBase):
    module = 'Shop'
    name = _("Cart")
    require_parent = False
    render_template = 'shop/cart.html'

    @classmethod
    def get_identifier(cls, obj):
        return mark_safe(_("The Shopping Cart"))

plugin_pool.register_plugin(ShopCartPlugin)

@@ -57,16 +57,100 @@
 iterals%0A
+from django.conf import settings%0Afrom django.template.loader import select_template%0A
 from dja
@@ -197,16 +197,16 @@
 zy as _%0A
-
 from dja
@@ -451,47 +451,8 @@
 alse
-%0A    render_template = 'shop/cart.html'
 %0A%0A  
@@ -500,16 +500,16 @@
 , obj):%0A
-
         
@@ -550,16 +550,236 @@
 art%22))%0A%0A
+    @property%0A    def render_template(self):%0A        template_names = %5B%0A            '%7B%7D/cart.html'.format(settings.SHOP_APP_LABEL),%0A            'shop/cart.html',%0A        %5D%0A        return select_template(template_names)%0A%0A
 plugin_p

Determine cart template on runtime