def render(self, context): request = value_or_none('request', context) product = value_or_literal(self._product, context) basket_prefix = value_or_literal(self._basket_prefix_name, context) template_name = value_or_literal(self._template_name, context) if not template_name: template_name = 'cubane/ishop/elements/add_to_basket.html' # construct return url category = product.primary_category if category: return_url = reverse('shop.category', args=[category.slug, category.pk]) else: return_url = '' # render add to basket form form = AddToBasketForm(request=request, product=product, prefix=basket_prefix, with_varieties=self._with_varieties) t = get_template(template_name) d = { 'product': product, 'form': form, 'basket_prefix': basket_prefix, 'post_url': reverse('shop.basket.add') + '?r=%s' % return_url } with context.push(**d): return t.render(context)
def render(self, context): image = value_or_none(self.image, context) shape = value_or_literal(self.shape, context) clippath = value_or_literal(self.clippath, context) if shape: if shape not in settings.IMAGE_SHAPES and shape != 'original': return template_error("Shape '%s' not defined." % shape) else: shape = 'original' return render_svg_image(image, shape, clippath)
def render(self, context): image = value_or_none(self.image, context) shape = value_or_literal(self.shape, context) # additional attributes if self.attr: attr = value_or_literal(self.attr, context) else: attr = None return self.render_image(image, shape, self.noscript, attr, self.inline)
def render(self, context): settings = get_cms_settings() if settings and settings.image_placeholder_id: shape = value_or_literal(self.shape, context) return self.render_image(settings.image_placeholder, shape, noscript=False) else: return ''
def render(self, context): # resolve target (none, category or product) if self._target == None: target = None else: target = value_or_literal(self._target, context) if target == 'None': target = None # resolve sep request = value_or_none('request', context) sep = value_or_literal(self._sep, context) # build list of pages based on given target items = [('Home', '/')] if target == None: pass elif isinstance(target, str) or isinstance(target, unicode): # static page items.append((target, make_absolute_url(request.path))) elif isinstance(target, get_category_model()): # category page items.extend([(c.title, c.get_absolute_url()) for c in target.get_path()]) elif isinstance(target, get_product_model()): # product category first... if target.primary_category: items.extend([(c.title, c.get_absolute_url()) for c in target.primary_category.get_path()]) # ...then the product itself items.append((target.title, target.get_absolute_url())) elif isinstance(target, ChildPage): # page/child page page = target.page items.append((page.title, page.get_absolute_url())) items.append((target.title, target.get_absolute_url())) elif isinstance(target, PageBase): # single cms page items.append((target.title, target.get_absolute_url())) else: raise ValueError('Invalid target argument: Must be instance of Category, Product or None.') t = get_template('cubane/ishop/elements/breadcrumbs.html') d = { 'items': items, 'sep': sep, } with context.push(**d): return t.render(context)
def render(self, context): image = value_or_none(self.image, context) shape = value_or_literal(self.shape, context) # additional attributes if self.attr: attr = value_or_literal(self.attr, context) else: attr = None if shape: if shape not in settings.IMAGE_SHAPES and shape != 'original': return template_error("Shape '%s' not defined." % shape) else: shape = 'original' return render_background_image_attr(image, shape, self.height, attr)
def render(self, context): request = context.get('request') price = value_or_literal(self._price, context) if price is not None: return get_shop_price(price) else: return ''
def render(self, context): request = context.get('request') currency = context.get('CURRENCY') product = value_or_literal(self._product, context) if product and isinstance(product, get_product_model()): return u'%s%.2f' % (currency, product.previous_price) else: return u''
def render(self, context): form = value_or_none(self.form, context) enctype = value_or_literal(self.enctype, context) if form == None: return '' t = self.get_template() d = {'form': form, 'enctype': enctype} with context.push(**d): return t.render(context)
def render(self, context): request = context.get('request') product = value_or_literal(self._product, context) if product: if isinstance(product, get_product_model()): amount = product.price else: amount = product return get_shop_price(amount) else: return ''
def render(self, context): """ Render resource tag. """ target = value_or_literal(self.target, context) css_media = value_or_literal(self.css_media, context) # async if self.is_async is not None: is_async = value_or_literal(self.is_async, context) elif self.ext == 'js': is_async = True else: is_async = False # additonal_data if self.additional_data is not None: additional_data = value_or_literal(self.additional_data, context) else: additional_data = None if css_media and css_media not in settings.CSS_MEDIA: raise template.TemplateSyntaxError( ("'resources' only accepts the following values for css_media argument: " + "%s." ) % settings.CSS_MEDIA ) # if target is not defined, just ignore it. if target not in get_resource_target_definition(): return '' if self.inline: if not settings.MINIFY_RESOURCES: resources = get_resources(target, self.ext) content = '\n'.join([get_resource(url) for url in resources]) else: content = get_resource( get_minified_filename( target, self.ext, 'screen' if self.ext == 'css' else None, self.get_identifier() ) ) return self.inline_include(content, additional_data, css_media) else: if not settings.MINIFY_RESOURCES: resources = get_resources(target, self.ext, css_media) return ''.join([ self.include(url, css_media, is_async, additional_data) for url in resources ]) else: return self.include( get_minified_filename( target, self.ext, css_media, self.get_identifier() ), css_media, is_async, additional_data )
def render(self, context): block = value_or_literal(self._block_name, context) return mark_safe(context.get('request').client.content.get(block))
def render(self, context): return value_or_literal(self.obj, context).get_excerpt(length=self.length)