add artisan subtype
This commit is contained in:
parent
2944d92b72
commit
9b35da1eca
|
|
@ -0,0 +1,48 @@
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
from establishment.models import Establishment, EstablishmentSubType, EstablishmentType
|
||||||
|
from transfer.models import Metadata
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Add subtype for establishment artisan'
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
artisans = Establishment.objects.artisans().filter(
|
||||||
|
old_id__isnull=False,
|
||||||
|
).prefetch_related('tags')
|
||||||
|
|
||||||
|
old_tags = Metadata.objects.filter(
|
||||||
|
establishment__in=list(artisans.values_list('old_id', flat=True)),
|
||||||
|
key='shop_category',
|
||||||
|
)
|
||||||
|
|
||||||
|
tags = []
|
||||||
|
for tag in tqdm(old_tags):
|
||||||
|
tags.append(tag.value)
|
||||||
|
subtypes = set(tags)
|
||||||
|
|
||||||
|
es_type, _ = EstablishmentType.objects.get_or_create(
|
||||||
|
index_name='artisan',
|
||||||
|
defaults={
|
||||||
|
'index_name': 'artisan',
|
||||||
|
'name': {'en-GB': 'artisan'},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
for artisan in tqdm(artisans):
|
||||||
|
artisan_tags = artisan.tags.all()
|
||||||
|
for t in artisan_tags:
|
||||||
|
if t.value in subtypes:
|
||||||
|
tag = 'coffee_shop' if t.value == 'coffe_shop' else t.value
|
||||||
|
subtype, _ = EstablishmentSubType.objects.get_or_create(
|
||||||
|
index_name=tag,
|
||||||
|
defaults={
|
||||||
|
'index_name': tag,
|
||||||
|
'name': {'en-GB': tag},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
artisan.tags.add(subtype)
|
||||||
|
artisan.save()
|
||||||
|
|
||||||
|
self.stdout.write(self.style.WARNING(f'Artisans subtype updated.'))
|
||||||
|
|
@ -125,7 +125,6 @@ class EstablishmentQuerySet(models.QuerySet):
|
||||||
'menu_set__plate_set__currency', 'currency'). \
|
'menu_set__plate_set__currency', 'currency'). \
|
||||||
prefetch_actual_employees()
|
prefetch_actual_employees()
|
||||||
|
|
||||||
|
|
||||||
def with_type_related(self):
|
def with_type_related(self):
|
||||||
return self.prefetch_related('establishment_subtypes')
|
return self.prefetch_related('establishment_subtypes')
|
||||||
|
|
||||||
|
|
|
||||||
106
docker-compose.local.yml
Normal file
106
docker-compose.local.yml
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
version: '3.5'
|
||||||
|
services:
|
||||||
|
|
||||||
|
# Legacy MySQL DB
|
||||||
|
mysql_db:
|
||||||
|
image: mysql:5.7
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: dev
|
||||||
|
MYSQL_USER: dev
|
||||||
|
MYSQL_PASSWORD: octosecret123
|
||||||
|
MYSQL_ROOT_PASSWORD: rootPassword
|
||||||
|
volumes:
|
||||||
|
- gm-mysql_db:/var/lib/mysql
|
||||||
|
|
||||||
|
|
||||||
|
# PostgreSQL database
|
||||||
|
db:
|
||||||
|
build:
|
||||||
|
context: ./_dockerfiles/db
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
hostname: db
|
||||||
|
env_file:
|
||||||
|
- env
|
||||||
|
ports:
|
||||||
|
- "5436:5432"
|
||||||
|
volumes:
|
||||||
|
- gm-db:/var/lib/postgresql/data/
|
||||||
|
- ./local_files/dump_alex.sql:/dump_alex.sql
|
||||||
|
# - ./local_files/docker-entrypoint.sh:/docker-entrypoint-initdb.d/docker-entrypoint.sh
|
||||||
|
|
||||||
|
|
||||||
|
elasticsearch:
|
||||||
|
image: elasticsearch:7.3.1
|
||||||
|
volumes:
|
||||||
|
- gm-esdata:/usr/share/elasticsearch/data
|
||||||
|
hostname: elasticsearch
|
||||||
|
ports:
|
||||||
|
- 9200:9200
|
||||||
|
- 9300:9300
|
||||||
|
environment:
|
||||||
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||||
|
- discovery.type=single-node
|
||||||
|
- xpack.security.enabled=false
|
||||||
|
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
|
||||||
|
|
||||||
|
# Celery
|
||||||
|
worker:
|
||||||
|
build: .
|
||||||
|
command: ./run_celery.sh
|
||||||
|
env_file:
|
||||||
|
- env
|
||||||
|
volumes:
|
||||||
|
- .:/code
|
||||||
|
links:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
|
||||||
|
|
||||||
|
worker_beat:
|
||||||
|
build: .
|
||||||
|
command: ./run_celery_beat.sh
|
||||||
|
env_file:
|
||||||
|
- env
|
||||||
|
volumes:
|
||||||
|
- .:/code
|
||||||
|
links:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
|
||||||
|
|
||||||
|
# App: G&M
|
||||||
|
gm_app:
|
||||||
|
build: .
|
||||||
|
command: python manage.py runserver 0.0.0.0:8000
|
||||||
|
env_file:
|
||||||
|
- env
|
||||||
|
depends_on:
|
||||||
|
- mysql_db
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
- worker
|
||||||
|
- worker_beat
|
||||||
|
- elasticsearch
|
||||||
|
volumes:
|
||||||
|
- .:/code
|
||||||
|
- gm-media:/media-data
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
gm-mysql_db:
|
||||||
|
name: gm-mysql_db
|
||||||
|
gm-db:
|
||||||
|
name: gm-db
|
||||||
|
gm-media:
|
||||||
|
name: gm-media
|
||||||
|
gm-esdata:
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user