From 78a8a5d6995bda78db58ef281ce146ae1acf745f Mon Sep 17 00:00:00 2001 From: Anatoly Date: Fri, 1 Nov 2019 11:53:32 +0300 Subject: [PATCH] intermediate commit --- apps/product/models.py | 30 +++++++++++++--- apps/product/transfer_data.py | 19 +++++++++++ apps/transfer/models.py | 51 ++++++++++++++++++++++------ apps/transfer/serializers/product.py | 0 4 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 apps/transfer/serializers/product.py diff --git a/apps/product/models.py b/apps/product/models.py index f4052963..48ccfd7c 100644 --- a/apps/product/models.py +++ b/apps/product/models.py @@ -123,8 +123,6 @@ class ProductQuerySet(models.QuerySet): class Product(TranslatedFieldsMixin, BaseAttributes): """Product models.""" - STR_FIELD_NAME = 'name' - COMMON = 0 ONLINE = 1 @@ -135,8 +133,9 @@ class Product(TranslatedFieldsMixin, BaseAttributes): category = models.PositiveIntegerField(choices=CATEGORY_CHOICES, default=COMMON) - name = TJSONField(_('Name'), null=True, blank=True, default=None, - help_text='{"en-GB":"some text"}') + name = models.CharField(max_length=255, + default=None, null=True, + verbose_name=_('name')) description = TJSONField(_('Description'), null=True, blank=True, default=None, help_text='{"en-GB":"some text"}') characteristics = JSONField(_('Characteristics')) @@ -178,6 +177,10 @@ class Product(TranslatedFieldsMixin, BaseAttributes): verbose_name = _('Product') verbose_name_plural = _('Products') + def __str__(self): + """Override str dunder method.""" + return self.name + def clean_fields(self, exclude=None): super().clean_fields(exclude=exclude) if self.product_type.index_name == ProductType.WINE and not self.wine_region: @@ -210,6 +213,25 @@ class OnlineProduct(Product): verbose_name_plural = _('Online products') +class Characteristic(TranslatedFieldsMixin, models.Model): + """Characteristic model.""" + + STR_FIELD_NAME = 'name' + + name = TJSONField(_('name'), + help_text='{"en-GB":"some text"}') + value = models.CharField(max_length=255, + verbose_name=_('value')) + unit = models.ForeignKey('Unit', on_delete=models.PROTECT, + ) + priority = models.IntegerField(unique=True, null=True, default=None) + + class Meta: + """Meta model.""" + verbose_name = _('characteristic') + verbose_name_plural = _('characteristics') + + class WineStandardQuerySet(models.QuerySet): """Wine appellation queryset.""" diff --git a/apps/product/transfer_data.py b/apps/product/transfer_data.py index e69de29b..eb8ac740 100644 --- a/apps/product/transfer_data.py +++ b/apps/product/transfer_data.py @@ -0,0 +1,19 @@ +from pprint import pprint + +from transfer.models import EstablishmentBacklinks +from transfer.serializers.partner import PartnerSerializer + + +def transfer_partner(): + queryset = EstablishmentBacklinks.objects.filter(type="Partner") + + serialized_data = PartnerSerializer(data=list(queryset.values()), many=True) + if serialized_data.is_valid(): + serialized_data.save() + else: + pprint(f"News serializer errors: {serialized_data.errors}") + + +data_types = { + "partner": [transfer_partner] +} diff --git a/apps/transfer/models.py b/apps/transfer/models.py index ccda8cd6..f644fc19 100644 --- a/apps/transfer/models.py +++ b/apps/transfer/models.py @@ -897,6 +897,46 @@ class KeyValueMetadatumKeyValueMetadatumEstablishments(MigrateMixin): db_table = 'key_value_metadatum_key_value_metadatum_establishments' +class WineColor(MigrateMixin): + using = 'legacy' + + id = models.IntegerField() + name = models.CharField(max_length=255) + fra_encima_id = models.IntegerField(null=True, blank=True) + + class Meta: + managed = False + db_table = 'wine_colors' + + +class WineClassification(MigrateMixin): + using = 'legacy' + + id = models.IntegerField() + name = models.CharField(max_length=255) + desc = models.TextField() + latitude = models.FloatField(blank=True, null=True) + longitude = models.FloatField(blank=True, null=True) + type = models.CharField(max_length=255) + parent_id = models.IntegerField() + possible_type_id = models.IntegerField(null=True, blank=True) + possible_color_id = models.IntegerField(null=True, blank=True) + fra_encima_id = models.IntegerField(null=True, blank=True) + + class Meta: + managed = False + db_table = 'wine_classifications' + + +class WineTypes(models.Model): + name = models.CharField(max_length=255, blank=True, null=True) + fra_encima_id = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'wine_types' + + # class Products(models.Model): # establishment = models.ForeignKey('Establishments', models.DO_NOTHING, blank=True, null=True) # brand = models.CharField(max_length=255, blank=True, null=True) @@ -927,14 +967,3 @@ class KeyValueMetadatumKeyValueMetadatumEstablishments(MigrateMixin): # class Meta: # managed = False # db_table = 'products' -# -# -# class WineTypes(models.Model): -# name = models.CharField(max_length=255, blank=True, null=True) -# fra_encima_id = models.IntegerField(blank=True, null=True) -# created_at = models.DateTimeField() -# updated_at = models.DateTimeField() -# -# class Meta: -# managed = False -# db_table = 'wine_types' diff --git a/apps/transfer/serializers/product.py b/apps/transfer/serializers/product.py new file mode 100644 index 00000000..e69de29b