diff --git a/apps/establishment/models.py b/apps/establishment/models.py index b9e36b51..551f475c 100644 --- a/apps/establishment/models.py +++ b/apps/establishment/models.py @@ -199,8 +199,11 @@ class EstablishmentQuerySet(models.QuerySet): Description: """ - return self.annotate(distance=Distance('address__coordinates', point, - srid=settings.GEO_DEFAULT_SRID)) + return self.annotate(distance=Distance( + 'address__coordinates', + point, + srid=settings.GEO_DEFAULT_SRID + )) def annotate_intermediate_public_mark(self): """ @@ -321,9 +324,8 @@ class EstablishmentQuerySet(models.QuerySet): return self.similar_base(establishment) \ .same_subtype(establishment) \ .has_published_reviews() \ - .order_by(similarity_rules['ordering']) \ - .distinct(similarity_rules['distinctions'], - 'id') + .order_by(*similarity_rules['ordering']) \ + .distinct(*similarity_rules['distinctions'], 'id') def by_wine_region(self, wine_region): """ diff --git a/apps/news/transfer_data.py b/apps/news/transfer_data.py index 37d435d7..c057da84 100644 --- a/apps/news/transfer_data.py +++ b/apps/news/transfer_data.py @@ -8,6 +8,7 @@ from gallery.models import Image from news.models import NewsType, News from rating.models import ViewCount from tag.models import TagCategory, Tag +from translation.models import SiteInterfaceDictionary from transfer.models import PageTexts, PageCounters, PageMetadata from transfer.serializers.news import NewsSerializer @@ -144,7 +145,9 @@ def add_tags(): ) if created: text_value = ' '.join(new_tag.value.split('_')) - new_tag.label = {'en-GB': text_value} + translation = SiteInterfaceDictionary(page={'en-GB': text_value}, keywords=f'tag.{new_tag.category}.{new_tag.value}') + translation.save() + new_tag.translation = translation new_tag.save() news = News.objects.filter(old_id=old_id).first() diff --git a/apps/search_indexes/signals.py b/apps/search_indexes/signals.py index c06aa601..5d9809b9 100644 --- a/apps/search_indexes/signals.py +++ b/apps/search_indexes/signals.py @@ -7,6 +7,7 @@ from django_elasticsearch_dsl.registries import registry @receiver(post_save) def update_document(sender, **kwargs): from establishment.models import Establishment + from search_indexes.tasks import es_update app_label = sender._meta.app_label model_name = sender._meta.model_name instance = kwargs['instance'] @@ -23,8 +24,8 @@ def update_document(sender, **kwargs): filter_name = app_label_model_name_to_filter.get((app_label, model_name)) if filter_name: qs = Establishment.objects.filter(**{filter_name: instance}) - for product in qs: - registry.update(product) + for item in qs: + es_update(item) @receiver(post_save) diff --git a/apps/transfer/serializers/product.py b/apps/transfer/serializers/product.py index 90a3c884..dddc1bcc 100644 --- a/apps/transfer/serializers/product.py +++ b/apps/transfer/serializers/product.py @@ -11,6 +11,7 @@ from transfer.mixins import TransferSerializerMixin from django.conf import settings from functools import reduce from gallery.models import Image +from translation.models import SiteInterfaceDictionary class WineColorSerializer(TransferSerializerMixin): @@ -21,6 +22,7 @@ class WineColorSerializer(TransferSerializerMixin): name = serializers.CharField(allow_null=True) order_number = serializers.IntegerField(allow_null=True) + class Meta: model = tag_models.Tag fields = ( @@ -31,8 +33,11 @@ class WineColorSerializer(TransferSerializerMixin): def validate(self, attrs): value = attrs.pop('name') + translation = SiteInterfaceDictionary(text={settings.FALLBACK_LOCALE: value}, + keywords=f'tag.{self.CATEGORY_INDEX_NAME}.{slugify(value)}') + translation.save() attrs['old_id'] = attrs.pop('id', None) - attrs['label'] = {settings.FALLBACK_LOCALE: value} + attrs['translation'] = translation attrs['value'] = slugify(value) attrs['priority'] = attrs.pop('order_number') attrs['category'] = self.tag_category @@ -55,8 +60,11 @@ class WineTypeSerializer(TransferSerializerMixin): def validate(self, attrs): value = attrs.pop('name') + translation = SiteInterfaceDictionary(text={settings.FALLBACK_LOCALE: value}, + keywords=f'tag.{self.CATEGORY_INDEX_NAME}.{slugify(value)}') + translation.save() attrs['old_id'] = attrs.pop('id', None) - attrs['label'] = {settings.FALLBACK_LOCALE: value} + attrs['translation'] = translation attrs['value'] = slugify(value) attrs['category'] = self.tag_category return attrs @@ -76,8 +84,11 @@ class WineBottlesProducedSerializer(TransferSerializerMixin): def validate(self, attrs): value = attrs.pop('bottles_produced') + translation = SiteInterfaceDictionary(text={settings.FALLBACK_LOCALE: value}, + keywords=f'tag.{self.CATEGORY_INDEX_NAME}.{slugify(value)}') + translation.save() parsed_value = self.parsed_value(value) - attrs['label'] = {settings.FALLBACK_LOCALE: parsed_value} + attrs['translation'] = translation attrs['value'] = slugify(parsed_value) attrs['category'] = self.tag_category return attrs diff --git a/apps/transfer/serializers/tag.py b/apps/transfer/serializers/tag.py index 4f8ae862..1e3865d7 100644 --- a/apps/transfer/serializers/tag.py +++ b/apps/transfer/serializers/tag.py @@ -64,8 +64,11 @@ class CepageTagSerializer(TransferSerializerMixin): def validate(self, attrs): name = attrs.pop('name') - - attrs['label'] = {settings.FALLBACK_LOCALE: name} + value = attrs.pop('bottles_produced') + translation = SiteInterfaceDictionary(text={settings.FALLBACK_LOCALE: value}, + keywords=f'tag.{self.CATEGORY_INDEX_NAME}.{slugify(value)}') + translation.save() + attrs['translation'] = translation attrs['value'] = slugify(name) attrs['category'] = self.tag_category return attrs diff --git a/apps/translation/models.py b/apps/translation/models.py index 7b64dce0..a288b334 100644 --- a/apps/translation/models.py +++ b/apps/translation/models.py @@ -58,12 +58,12 @@ class SiteInterfaceDictionaryManager(LocaleManagerMixin): if tag.translation: tag.translation.text = translations tag.translation.page = 'tag' - tag.translation.keywords = f'tag-{tag.pk}' + tag.translation.keywords = f'tag.{tag.category.index_name}.{tag.value}' else: trans = SiteInterfaceDictionary({ 'text': translations, 'page': 'tag', - 'keywords': f'tag-{tag.pk}' + 'keywords': f'tag.{tag.category.index_name}.{tag.value}' }) trans.save() tag.translation = trans @@ -77,12 +77,12 @@ class SiteInterfaceDictionaryManager(LocaleManagerMixin): if tag_category.translation: tag_category.translation.text = translations tag_category.translation.page = 'tag' - tag_category.translation.keywords = f'tag_category-{tag_category.pk}' + tag_category.translation.keywords = f'tag.{tag_category.category.index_name}' else: trans = SiteInterfaceDictionary({ 'text': translations, 'page': 'tag', - 'keywords': f'tag_category-{tag_category.pk}' + 'keywords': f'tag.{tag_category.category.index_name}' }) trans.save() tag_category.translation = trans