Source code for tcms.core.management.commands.initial_setup

import os

from django.conf import settings
from django.core.management import call_command
from django.core.management.base import BaseCommand
from django.db import DEFAULT_DB_ALIAS, connections


[docs] class Command(BaseCommand): help = "Performs initial setup of *NEW* Kiwi TCMS installation."
[docs] def add_arguments(self, parser): parser.add_argument( "--database", default=DEFAULT_DB_ALIAS, choices=tuple(connections), help='Specifies the database to use. Default is "default".', )
[docs] def handle(self, *args, **kwargs): verbosity = kwargs["verbosity"] database = kwargs["database"] self.stdout.write("\n1. Applying migrations:") call_command("migrate", verbosity=verbosity, database=database) self.stdout.write("\n2. Creating superuser:") call_command("createsuperuser", verbosity=verbosity, database=database) self.stdout.write("\n3. Setting the domain name:") domain = os.environ.get("KIWI_TENANTS_DOMAIN") if not domain: domain = input("Enter Kiwi TCMS domain: ") # nosec call_command( "set_domain", verbosity=verbosity, database=database, domain=domain ) if "tcms_tenants" in settings.INSTALLED_APPS: self.stdout.write("\n4. Creating public & empty tenants:") call_command( "initialize_tenants", verbosity=verbosity, domain=domain, ) self.stdout.write("\n5. Setting permissions:") call_command("refresh_permissions", verbosity=verbosity) self.stdout.write("\nInitial setup finished.")