Source code for ferrosoft.apps.emiflow.management.commands.import_catalog
import sys
from django.core.management import BaseCommand
from ferrosoft.apps.emiflow.catalog.conversion import (
CatalogValidationError,
)
from ferrosoft.apps.emiflow.catalog.database import import_emiflow_catalog
from ferrosoft.apps.ferrobase.management.tenantcommand import TenantAwareCommand
[docs]
class Command(TenantAwareCommand, BaseCommand):
[docs]
def add_arguments(self, parser):
super().add_arguments(parser)
parser.add_argument(
"-S",
"--schema",
type=str,
default="catalog.schema.json",
help="Schema file base name inside emiflow static directory",
)
parser.add_argument(
"catalog",
nargs="+",
type=str,
help="Catalog file name",
)
[docs]
def handle_tenant(self, *args, **options):
try:
import_emiflow_catalog(options["catalog"], options["schema"])
except CatalogValidationError as e:
self.stderr.write(str(e))
sys.exit(1)