added command to fix existed collections
This commit is contained in:
parent
a102b68173
commit
4e3a990ac6
32
apps/collection/management/commands/fix_collection.py
Normal file
32
apps/collection/management/commands/fix_collection.py
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
from django.conf import settings
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
from collection.models import Collection
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = """Fix existed collections."""
|
||||||
|
|
||||||
|
def handle(self, *args, **kwarg):
|
||||||
|
update_collections = []
|
||||||
|
collections = Collection.objects.values_list('id', 'collection_type', 'description')
|
||||||
|
for id, collection_type, description in tqdm(collections):
|
||||||
|
collection = Collection.objects.get(id=id)
|
||||||
|
description = collection.description
|
||||||
|
collection_updated = False
|
||||||
|
|
||||||
|
if isinstance(description, str):
|
||||||
|
if description.lower().find('pop') != -1:
|
||||||
|
collection.collection_type = Collection.POP
|
||||||
|
collection_updated = True
|
||||||
|
|
||||||
|
if not isinstance(description, dict):
|
||||||
|
collection.description = {settings.FALLBACK_LOCALE: collection.description}
|
||||||
|
collection_updated = True
|
||||||
|
|
||||||
|
if collection_updated:
|
||||||
|
update_collections.append(collection)
|
||||||
|
|
||||||
|
Collection.objects.bulk_update(update_collections, ['collection_type', 'description', ])
|
||||||
|
self.stdout.write(self.style.WARNING(f'Updated products: {len(update_collections)}'))
|
||||||
|
|
@ -3,6 +3,7 @@ from establishment.models import Establishment
|
||||||
from location.models import Country, Language
|
from location.models import Country, Language
|
||||||
from transfer.models import Collections
|
from transfer.models import Collections
|
||||||
from collection.models import Collection
|
from collection.models import Collection
|
||||||
|
from django.conf import settings
|
||||||
from news.models import News
|
from news.models import News
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -93,9 +94,11 @@ class Command(BaseCommand):
|
||||||
country = Country.objects.filter(code=obj['country_code']).first()
|
country = Country.objects.filter(code=obj['country_code']).first()
|
||||||
if country:
|
if country:
|
||||||
objects.append(
|
objects.append(
|
||||||
Collection(name={"en-GB": obj['title']}, collection_type=Collection.ORDINARY,
|
Collection(name={settings.FALLBACK_LOCALE: obj['title']},
|
||||||
|
collection_type=Collection.POP if obj['description'].lower().find('pop') != -1
|
||||||
|
else Collection.ORDINARY,
|
||||||
country=country,
|
country=country,
|
||||||
description=obj['description'],
|
description={settings.FALLBACK_LOCALE: obj['description']},
|
||||||
slug=obj['slug'], old_id=obj['collection_id'],
|
slug=obj['slug'], old_id=obj['collection_id'],
|
||||||
start=obj['start'],
|
start=obj['start'],
|
||||||
image_url='https://s3.eu-central-1.amazonaws.com/gm-test.com/media/'+obj['attachment_suffix_url']
|
image_url='https://s3.eu-central-1.amazonaws.com/gm-test.com/media/'+obj['attachment_suffix_url']
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user