fix estab tags

This commit is contained in:
Dmitriy Kuzmenko 2019-10-30 19:51:33 +03:00
parent 887bc92b85
commit aa2759d7e0

View File

@ -10,53 +10,52 @@ class Command(BaseCommand):
def handle(self, *args, **kwargs):
categories = legacy.KeyValueMetadata.objects.all()
existing_establishment = Establishment.objects.filter(old_id__isnull=False)
for category in categories:
ESTABLISHMENT = 1
SHOP = 2
RESTAURANT = 3
WINEYARD = 4
ESTABLISHMENT = 1
SHOP = 2
RESTAURANT = 3
WINEYARD = 4
MAPPER = {
RESTAURANT: EstablishmentType.RESTAURANT,
WINEYARD: EstablishmentType.PRODUCER,
}
MAPPER = {
RESTAURANT: EstablishmentType.RESTAURANT,
WINEYARD: EstablishmentType.PRODUCER,
}
mapper_values_meta = legacy.KeyValueMetadatumKeyValueMetadatumEstablishments.objects.all()
for key, value in MAPPER.items():
values_meta_id_list = mapper_values_meta.filter(
key_value_metadatum_establishment_id=key
).values_list('key_value_metadatum_id')
mapper_values_meta = legacy.KeyValueMetadatumKeyValueMetadatumEstablishments.objects.all()
for key, value in MAPPER.items():
values_meta_id_list = mapper_values_meta.filter(
key_value_metadatum_establishment_id=key
).values_list('key_value_metadatum_id')
est_type, _ = EstablishmentType.objects.get_or_create(index_name=value)
est_type, _ = EstablishmentType.objects.get_or_create(index_name=value)
key_value_metadata = legacy.KeyValueMetadata.objects.filter(id__in=values_meta_id_list)
key_value_metadata = legacy.KeyValueMetadata.objects.filter(
id__in=values_meta_id_list)
# create TagCategory
for key_value in key_value_metadata:
tag_category, created = TagCategory.objects.get_or_create(
index_name=key_value.key_name,
# create TagCategory
for key_value in key_value_metadata:
tag_category, created = TagCategory.objects.get_or_create(
index_name=key_value.key_name,
)
if created:
tag_category.label = {'en-GB': key_value.key_name},
tag_category.value_type = key_value.value_type
tag_category.save()
est_type.tag_categories.add(
tag_category
)
if created:
tag_category.label = {'en-GB': key_value.key_name},
tag_category.value_type = key_value.value_type
tag_category.save()
est_type.tag_categories.add(
tag_category
)
# create Tag
for tag in key_value.metadata_set.filter(
establishment__id__in=list(existing_establishment.values_list('old_id', flat=True))):
# create Tag
for tag in key_value.metadata_set.filter(
establishment__id__in=list(existing_establishment.values_list('old_id', flat=True))):
new_tag, _ = Tag.objects.get_or_create(
label={'en-GB': tag.value},
value=tag.value,
category=tag_category,
)
est = existing_establishment.get(old_id=tag.establishment_id)
est.tags.add(new_tag)
est.save()
new_tag, _ = Tag.objects.get_or_create(
label={'en-GB': tag.value},
value=tag.value,
category=tag_category,
)
est = existing_establishment.get(old_id=tag.establishment_id)
est.tags.add(new_tag)
est.save()