# Generated by Django 3.0.3 on 2020-05-08 14:30 from django.apps.registry import Apps from django.db import migrations from django.db.backends.base.schema import BaseDatabaseSchemaEditor from passbook.flows.models import FlowDesignation def create_default_flow(apps: Apps, schema_editor: BaseDatabaseSchemaEditor): Flow = apps.get_model("passbook_flows", "Flow") FlowStageBinding = apps.get_model("passbook_flows", "FlowStageBinding") PasswordStage = apps.get_model("passbook_stages_password", "PasswordStage") db_alias = schema_editor.connection.alias if Flow.objects.using(db_alias).all().exists(): # Only create default flow when none exist return if not PasswordStage.objects.using(db_alias).exists(): PasswordStage.objects.using(db_alias).create( name="password", backends=["django.contrib.auth.backends.ModelBackend"], ) pw_stage = PasswordStage.objects.using(db_alias).first() flow = Flow.objects.using(db_alias).create( name="default-authentication-flow", slug="default-authentication-flow", designation=FlowDesignation.AUTHENTICATION, ) FlowStageBinding.objects.using(db_alias).create( flow=flow, stage=pw_stage, order=0, ) class Migration(migrations.Migration): dependencies = [ ("passbook_flows", "0001_initial"), ("passbook_stages_password", "0001_initial"), ] operations = [migrations.RunPython(create_default_flow)]