Source code for control_chart.apps
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Contains the configuration of the control_chart App
"""
from django.apps import AppConfig
from django.db.models.signals import post_migrate
[docs]class ControlChartConfig(AppConfig):
"""
App-Configuration class to handle the automatic generation of user groups
after the migration of the database
"""
name = 'control_chart'
[docs] def ready(self):
"""
Connecting the user group generation with the post_migrate signal
"""
post_migrate.connect(ControlChartConfig._create_user_groups,
sender=self)
@staticmethod
def _create_user_groups(*args, **kwargs): # pylint: disable=W0613
"""
Generation of the control_chart default user groups
"""
from django.contrib.auth.models import Group, Permission
_ = Group.objects.get_or_create(name='Viewer')
examiner, created = Group.objects.get_or_create(name='Examiner')
if created:
examiner.permissions.add(Permission.objects.get(
codename='add_measurement'))
examiner.permissions.add(Permission.objects.get(
codename='add_characteristicvalue'))
examiner.save()
manager, created = Group.objects.get_or_create(name='Manager')
if created:
_ = [manager.permissions.add(p) for p in
Permission.objects.filter(codename__contains='add')]
_ = [manager.permissions.add(p) for p in
Permission.objects.filter(codename__contains='change')]
manager.save()
administrators, created = Group.objects.get_or_create(
name='Administrator')
if created:
_ = [administrators.permissions.add(p) for p in
Permission.objects.filter(codename__contains='add')]
_ = [administrators.permissions.add(p) for p in
Permission.objects.filter(codename__contains='change')]
_ = [administrators.permissions.add(p) for p in
Permission.objects.filter(codename__contains='delete')]
administrators.save()