49 lines
1.7 KiB
Python
Executable File
49 lines
1.7 KiB
Python
Executable File
# -*- 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
|