diff --git a/core/management/commands/addtaxonomy.py b/core/management/commands/addtaxonomy.py index 569c4ac..040fe32 100644 --- a/core/management/commands/addtaxonomy.py +++ b/core/management/commands/addtaxonomy.py @@ -3,7 +3,7 @@ import logging from django.core.management.base import BaseCommand from django.conf import settings -from core.models import TreeTag +from products.models import CategoryTag from products.models import Product @@ -15,7 +15,7 @@ class Command(BaseCommand): print(self.help) print("Deleting existing instances") - TreeTag.objects.all().delete() + CategoryTag.objects.all().delete() file_path = settings.BASE_DIR + '/../datasets/' + settings.TAXONOMY_FILE counter = 0 @@ -23,11 +23,11 @@ class Command(BaseCommand): print(f"Reading from {settings.TAXONOMY_FILE}") for line in data_file.readlines(): try: - tag = Product.tags.tag_model.objects.create(name=line) + tag = Product.category.tag_model.objects.create(name=line) counter += 1 print('.', end='') logging.debug(f"{tag} created from {line}") except Exception as e: logging.error(f"{type(e)} while creating tags from {settings.TAXONOMY_FILE}") - print(f"\nAdded {counter} Tag objects to Product.tags") + print(f"\nAdded {counter} Tag objects to Product.category") print('Shutting down\n') diff --git a/core/management/commands/extractparenttags.py b/core/management/commands/extractparenttags.py index 7e14657..2ffec50 100644 --- a/core/management/commands/extractparenttags.py +++ b/core/management/commands/extractparenttags.py @@ -3,19 +3,19 @@ import logging from django.core.management.base import BaseCommand from django.conf import settings -from core.models import TreeTag +from products.models import CategoryTag class Command(BaseCommand): - help = 'Extract top level tags' + help = 'Extract top level catefory tags' def handle(self, *args, **kwargs): # get all instances - tags = TreeTag.objects.all() + tags = CategoryTag.objects.all() top_tags = [] - print("Extracting top-level tags from TreeTag instances") + print("Extracting top-level tags from CategoryTag instances") # extract tags with no ancestor for tag in tags: if not tag.get_ancestors(): diff --git a/core/models.py b/core/models.py index 5e42300..3c49a74 100644 --- a/core/models.py +++ b/core/models.py @@ -73,10 +73,3 @@ class CustomUser(AbstractBaseUser, PermissionsMixin): verbose_name = 'Usuario' verbose_name_plural = 'Usuarios' - -class TreeTag(TagTreeModel): - class TagMeta: - initial = "" - force_lowercase = True - max_count=20 - # autocomplete_view = 'myapp.views.hobbies_autocomplete' diff --git a/products/models.py b/products/models.py index 30631bb..81f5146 100644 --- a/products/models.py +++ b/products/models.py @@ -2,11 +2,34 @@ from django.contrib.gis.db import models from tagulous.models import SingleTagField, TagField, TagTreeModel -from core.models import TreeTag from companies.models import Company # Create your models here. +class TreeTag(TagTreeModel): + class TagMeta: + initial = "" + force_lowercase = True + max_count=20 + # autocomplete_view = 'myapp.views.hobbies_autocomplete' + + +class CategoryTag(TagTreeModel): + class TagMeta: + initial = "" + force_lowercase = True + max_count=20 + # autocomplete_view = 'myapp.views.hobbies_autocomplete' + + +class AttributeTag(TagTreeModel): + class TagMeta: + initial = "" + force_lowercase = True + max_count=20 + # autocomplete_view = 'myapp.views.hobbies_autocomplete' + + class Product(models.Model): @@ -35,8 +58,8 @@ class Product(models.Model): discount = models.DecimalField('Descuento', max_digits=5, decimal_places=2, null=True, blank=True) stock = models.PositiveIntegerField('Stock', null=True, blank=True) tags = TagField(to=TreeTag) - category = SingleTagField(null=True, blank=True) # main tag category - attributes = TagField(to=TreeTag, related_name='product_attributes') + category = SingleTagField(to=CategoryTag, null=True, blank=True) # main tag category + attributes = TagField(to=AttributeTag, related_name='product_attributes') identifiers = models.TextField('Identificador Ășnico de producto', null=True, blank=True) # internal diff --git a/products/tests.py b/products/tests.py index 4b57c8d..4a6540b 100644 --- a/products/tests.py +++ b/products/tests.py @@ -318,7 +318,7 @@ class ProductViewSetTest(APITestCase): 'discount': '0.05', 'stock': 22, 'tags': ['tag1x, tag2x'], - 'category': 'MayorTagCategory2', + 'category': 'mayortagcategory2', 'attributes': ['color/blue', 'size/m'], 'identifiers': '34rf34f43c43', } diff --git a/utils/woocommerce.py b/utils/woocommerce.py index 36f1cd1..3d5cc7c 100644 --- a/utils/woocommerce.py +++ b/utils/woocommerce.py @@ -89,7 +89,7 @@ def create_imported_product(info, company, history, user): return new else: logging.error(f"{serializer.errors}") - return [] + return None def migrate_shop_products(url, key, secret, user=None, version="wc/v3"): @@ -145,10 +145,11 @@ def migrate_shop_products(url, key, secret, user=None, version="wc/v3"): counter = 0 for product in products: new = create_imported_product(product, company, history, user) - new_products.append(new) - counter += 1 - logging.info(f"Product '{new.name}' created") - print(f"Product '{new.name}' created") + if new is not None: + new_products.append(new) + counter += 1 + logging.info(f"Product '{new.name}' created") + print(f"Product '{new.name}' created") # update history.quantity history.quantity = counter