# Generated by Django 4.1.2 on 2022-10-23 08:21 from django.db import migrations from django.contrib.auth.models import Group, Permission import logging logger = logging.getLogger(__name__) # MODELS = [model.__name__ for model in apps.get_models()] MODELS = [ "Tag", "tagged", "BMI", "Child", "Diaper Change", "Feeding", "Head Circumference", "Height", "Note", "Pumping", "Sleep", "Temperature", "Timer", "Tummy Time", "Weight", "user", ] PERMISSIONS = ["add", "change", "delete", "view"] def add_group_permissions(apps, schema_editor): group, created = Group.objects.get_or_create(name="read_only") perm = [] for model in MODELS: name = f"Can view {model}" logging.info(f"Creating {name}...") try: perm.append(Permission.objects.get(name=name)) except Permission.DoesNotExist: logging.warning(f"Permission not found with name {name}.") continue group.permissions.add(*perm) group, created = Group.objects.get_or_create(name="standard") perm = [] for model in MODELS: for permission in PERMISSIONS: name = f"Can {permission} {model}" logging.info(f"Creating {name}...") try: perm.append(Permission.objects.get(name=name)) except Permission.DoesNotExist: logging.warning(f"Permission not found with name {name}.") continue group.permissions.add(*perm) def revert_migration(apps, schema_editor): Group.objects.filter( name__in=[ "read_only", "standard", ] ).delete() class Migration(migrations.Migration): dependencies = [ ("babybuddy", "0023_alter_settings_timezone"), ] operations = [migrations.RunPython(add_group_permissions, revert_migration)]