def build_namespace(self, context): here = context.resource shop = context.site_root.get_resource('shop') site_root = context.site_root namespace = NeutralSkin.build_namespace(self, context) # Title # Menu XXX Done in ikaaro nav namespace['menu'] = get_menu_namespace(context, self.menu_level, src='menu') # Search namespace['product_search_text'] = context.get_query_value( 'product_search_text') # XXX Page id css (see itws) class_id = getattr(here, 'class_id', None) if class_id: view_name = context.view_name or here.get_default_view_name() page_css_id = 'page-%s-%s' % (class_id, view_name) page_css_id = page_css_id.replace('_', '-') namespace['page_css_id'] = page_css_id.lower() else: namespace['page_css_id'] = None # Cart preview cart_preview = site_root.cart_preview_class().GET(shop, context) namespace['cart_preview'] = cart_preview # Page title namespace['page_title'] = context.resource.get_title() # Current view type namespace['is_on_view_product'] = isinstance(context.resource, Product) # Dynamic property dynamic_property = ShopSkinDynamicProperty() dynamic_property.context = context dynamic_property.resource = self namespace['dynamic_property'] = dynamic_property # Canonical uri XXX (see bug #1144) if site_root != here: namespace['canonical_uri'].path.endswith_slash = True # Get admin bar site_root_ac = site_root.get_access_control() if site_root_ac.is_allowed_to_edit(context.user, site_root): namespace['admin_bar'] = AdminBarTemplate(context=context) else: namespace['admin_bar'] = None # Modules shop_module = ModuleLoader() shop_module.context = context shop_module.here = context.resource namespace['module'] = shop_module return namespace
def get_sidebar_resource(self, context): # Show sidebar here = context.resource shop = get_shop(here) site_root = here.get_site_root() if isinstance(here, site_root.shop_class): return site_root.get_resource('shop/shop-sidebar', soft=True) elif isinstance(here, shop.product_class): return site_root.get_resource('product-sidebar') elif isinstance(here, shop.category_class): cat = here sidebar = None while cat.name != 'categories' and sidebar is None: sidebar = cat.get_resource('sidebar', soft=True) cat = cat.parent if sidebar: return sidebar return site_root.get_resource('category-sidebar') return NeutralSkin.get_sidebar_resource(self, context)
def get_styles(self, context): styles = ['/ui/shop/style.css'] styles.extend(NeutralSkin.get_styles(self, context)) styles.remove('/ui/common/menu.css') return styles