Source code for profiles.apps

import logging

from django.apps import AppConfig
from django.db.utils import OperationalError, ProgrammingError


logger = logging.getLogger(__name__)


[docs]class ProfilesConfig(AppConfig): name = 'profiles'
[docs] @staticmethod def create_groups(): """ Create the necessary groups for Application and Data Source managers. """ from django.contrib.auth.models import Group, Permission app_providers, created = Group.objects.get_or_create( name='Application Providers', ) app_providers.permissions.add( Permission.objects.get(codename='add_application'), Permission.objects.get(codename='change_application'), Permission.objects.get(codename='delete_application') ) data_providers, created = Group.objects.get_or_create( name='Data Providers', ) data_providers.permissions.add( Permission.objects.get(codename='add_datasource'), Permission.objects.get(codename='change_datasource'), Permission.objects.get(codename='delete_datasource'), ) try: data_providers.permissions.add( Permission.objects.get(codename='add_licence'), Permission.objects.get(codename='change_licence'), Permission.objects.get(codename='delete_licence') ) except Permission.DoesNotExist: logger.warning('Licence permissions not found - please restart Django server')
[docs] def ready(self): # Runs after app registry is populated - i.e. all models exist and are importable try: self.create_groups() logging.info('Loaded inline Group fixtures') except (OperationalError, ProgrammingError): logging.warning('Could not create Group fixtures, database has not been initialized')