from django.utils.html_parser import HTMLParser from .models import Product #@TODO: MAKE DESCTIPTION PREVIEW class ProductDesctipionHtmlParser(HTMLParser): def __init__(self, convert_charrefs=False, **kwargs): super().__init__(convert_charrefs, **kwargs) def error(self, message): pass def handle_startendtag(self, tag, attrs): super().handle_startendtag(tag, attrs) def handle_data(self, data): super().handle_data(data) def handle_endtag(self, tag): super().handle_endtag(tag) #@TODO: NOT USED. FIGURE OUT THE PUPRPOSE OF THIS CODE def get_variant_picker_data(product): variants = product.variants.all() variant_attributes = product.attributes.all() data = {'variants': [], 'variantAttributes': [], 'discount_policy': product.discount_policy} for attribute in sorted(variant_attributes, key=lambda x: x.main_attribute, reverse=True): data['variantAttributes'].append({ 'name': attribute.name, 'public_name': attribute.name.split('_')[1], 'slug': attribute.slug, 'values': [{'name': value.name, 'slug': value.slug} for value in attribute.values.all()] }) for variant in variants: price = variant.price variant_data = { 'id': variant.id, 'slug': variant.slug, 'name': variant.name, 'price': int(price), 'attributes': variant.attributes, } data['variants'].append(variant_data) return data def expand_categories(categories): products = None for e in categories: if e.name.startswith('None'): products = Product.objects.filter(category=e) return [x for x in categories if not x.name.startswith('None')], products