import itertools from sqlalchemy.dialects.postgresql import insert from atlas_um.pgdb import BusinessUnit, JobCategory, PersonnelType, pgdb from slugify import slugify JOB_CATEGORIES = ( "CEO", "President", "EVP", "VP", "Product Manager", "Project Manager", "Account Manager", "Brand Manager", "Director", "Developer", "Artist", "Artist Manager", ) BUSINESS_UNITS = ( "Columbia Records", "Epic Records", "RCA Records", "Sony Music Nashville", "Provident Label Group", "Sony Masterworks", "Legacy Recordings", "Global Digital Business", ) PERSONNEL_TYPES = ( "Full-time", "Temp", "Intern", "Contractor", "Consultant", "Artist", "Artist Manager", ) def init_dna_accounts_selects(): pgdb.session.execute( insert(JobCategory).on_conflict_do_nothing(), [{"name": c} for c in JOB_CATEGORIES], ) pgdb.session.execute( insert(BusinessUnit).on_conflict_do_nothing(), [{"name": c} for c in BUSINESS_UNITS], ) pgdb.session.execute( insert(PersonnelType).on_conflict_do_nothing(), [{"name": c} for c in PERSONNEL_TYPES], ) for obj in itertools.chain( JobCategory.query.all(), BusinessUnit.query.all(), PersonnelType.query.all(), ): obj.slug = obj.slug or slugify(obj.name) pgdb.session.commit()