# -*- coding: utf-8 -*- from __future__ import unicode_literals import os from django.apps import AppConfig from django.utils.translation import gettext_lazy as _ from django.db.utils import ProgrammingError, OperationalError from . import __app_name__ import logging logger = logging.getLogger(__name__) class PyScadaDataSourceExampleConfig(AppConfig): name = "pyscada." + __app_name__.lower() verbose_name = _("PyScada " + __app_name__) path = os.path.dirname(os.path.realpath(__file__)) default_auto_field = "django.db.models.AutoField" def pyscada_app_init(self): logger.debug(f"{__app_name__} init app") try: from pyscada.models import DataSourceModel, DataSource from .models import LoggingRandomDataSourceExample dsm, _ = DataSourceModel.objects.update_or_create( inline_model_name="LoggingRandomDataSourceExample", defaults={ "name": "Logging random data source example", "can_add": True, "can_change": True, "can_select": True, }, ) if not LoggingRandomDataSourceExample.objects.count(): if DataSource.objects.filter(datasource_model=dsm).count() < 2: ds, _ = DataSource.objects.get_or_create(datasource_model=dsm) else: ds = DataSource.objects.filter(datasource_model=dsm).first() ldse, _ = LoggingRandomDataSourceExample.objects.get_or_create( datasource=ds ) except ProgrammingError: pass except OperationalError: pass