from __future__ import annotations from django.core.management.base import BaseCommand from django.db import transaction from mandelstudio.idea_marketplace import seed_idea_marketplace_products class Command(BaseCommand): help = ( "Seed production-ready Oscar idea products and remove obvious demo products " "from the catalogue. By default, this also retires non-idea products from public " "listing." ) def add_arguments(self, parser): parser.add_argument( "--keep-demo-products", action="store_true", help="Do not delete demo/sample products.", ) parser.add_argument( "--keep-non-idea-products-public", action="store_true", help="Do not retire non-idea products from public listing.", ) @transaction.atomic def handle(self, *args, **options): purge_demo = not options["keep_demo_products"] retire_non_idea = not options["keep_non_idea_products_public"] stats = seed_idea_marketplace_products( purge_demo_products=purge_demo, retire_non_idea_products=retire_non_idea, ) self.stdout.write( self.style.SUCCESS( "Idea marketplace seeded: " f"created={stats['created']}, " f"updated={stats['updated']}, " f"deleted_demo={stats['deleted_demo']}, " f"retired_non_idea={stats['retired_non_idea']}" ) )