33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
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)}'))
|