Пример #1
0
def get_licence_price(product_code):
    product = get_product(product_code)

    if product is None:
        return 0.00

    selector = Selector()
    strategy = selector.strategy()
    purchase_info = strategy.fetch_for_product(product=product)

    return purchase_info.price.effective_price
Пример #2
0
def is_licence_free(product_code):
    product = get_product(product_code)

    if product is None:
        return True

    selector = Selector()
    strategy = selector.strategy()
    purchase_info = strategy.fetch_for_product(product=product)

    return purchase_info.price.effective_price == 0
Пример #3
0
def is_licence_free(product_title):
    product = get_product(product_title)

    if product is None:
        return True

    selector = Selector()
    strategy = selector.strategy()
    purchase_info = strategy.fetch_for_product(product=product)

    return purchase_info.price.effective_price == 0
Пример #4
0
def get_licence_price(product_title):
    product = get_product(product_title)

    if product is None:
        return 0.00

    selector = Selector()
    strategy = selector.strategy()
    purchase_info = strategy.fetch_for_product(product=product)

    return purchase_info.price.effective_price
Пример #5
0
    def form_valid(self, form):
        super(BasketAddView, self).form_valid(form)
        selector = Selector()
        strategy = selector.strategy(request=self.request,
                                     user=self.request.user)
        purchase_info = strategy.fetch_for_product(product=self.product)
        price = purchase_info.price.excl_tax
        if price is None:
            price = 0
        img = self.product.primary_image()
        if isinstance(img, ProductImage):
            img_url = img.original.url
        else:
            img_url = img['original'].name

        return JsonResponse({
            'id': self.product.id,
            'upc': self.product.upc,
            'title': self.product.title,
            'img': img_url,
            'price': price
        })
Пример #6
0
def meta_tag(page_type, tag, object, request, category=None, filter=None):
    # Return ModelMetaTag if exists
    if isinstance(object, Product) or isinstance(object, Category):
        model_meta_tag = ModelMetaTag.objects.filter(
            content_type=ContentType.objects.get_for_model(object),
            object_id=object.id,
        )
        if model_meta_tag.exists():
            tag = getattr(model_meta_tag[0], tag)
            return tag

    # else return tag from tokens
    morph = pymorphy2.MorphAnalyzer(lang=get_language())
    meta_tags = MetaTag.objects.get(type=page_type)
    tag = getattr(meta_tags, tag)
    tokens = get_tokens(tag)
    for k in tokens:
        value = object
        for token in k:
            token_clean = token.replace('[', '').replace(']', '')
            if token_clean in OpencorporaTag.CASES:
                try:
                    word = morph.parse(unicode(value))[0]
                    value = word.inflect({token_clean}).word
                except AttributeError:
                    value = value
            elif token_clean == 'filter':
                value = ''
                for item in filter:
                    filter_values = ', '.join([m for m in filter[item]])
                    value += u' {}: {};'.format(item, filter_values)
            elif token_clean == 'category' and category is not None:
                value = category.name
            elif token_clean == 'site_name':
                current_site = get_current_site(request)
                value = current_site.name
            elif token_clean == 'site_domain':
                current_site = get_current_site(request)
                value = current_site.domain
            elif (page_type == MetaTag.PRODUCT and
                    (token_clean == 'price' or
                        token_clean == 'availability')):
                selector = Selector()
                strategy = selector.strategy()
                purchase_info = strategy.fetch_for_product(object)
                if token_clean == 'price':
                    value = unicode(purchase_info.price.incl_tax)
                elif token_clean == 'availability':
                    value = unicode(purchase_info.availability.message)
            else:
                if (token_clean == 'name' and
                    (page_type == MetaTag.BRAND or
                        page_type == MetaTag.BRAND_FILTER)):
                    token_clean = 'option'
                try:
                    value = getattr(value, token_clean)
                except AttributeError:
                    value = ''
        tag = tag.replace(''.join(k), value)
    if tag[0:2] == ' .':
        tag = tag[2:]
    tag = tag.replace(' . ', '. ')
    return tag