Files

70 lines
2.1 KiB
Python

"""
App configuration for the Horilla Automations app.
Initializes model choices and starts automation when the server runs.
"""
import os
import sys
from django.apps import AppConfig
class HorillaAutomationConfig(AppConfig):
"""Configuration class for the Horilla Automations Django app."""
default_auto_field = "django.db.models.BigAutoField"
name = "horilla_automations"
def ready(self) -> None:
ready = super().ready()
if not (
len(sys.argv) >= 2
and sys.argv[1] == "runserver"
and os.environ.get("RUN_MAIN") == "true"
):
return ready
try:
from base.templatetags.horillafilters import app_installed
from employee.models import Employee
from horilla_automations.methods.methods import get_related_models
from horilla_automations.models import MODEL_CHOICES
recruitment_installed = False
if app_installed("recruitment"):
recruitment_installed = True
models = [Employee]
if recruitment_installed:
from recruitment.models import Candidate
models.append(Candidate)
main_models = models
for main_model in main_models:
related_models = get_related_models(main_model)
for model in related_models:
path = f"{model.__module__}.{model.__name__}"
MODEL_CHOICES.append((path, model.__name__))
MODEL_CHOICES.append(("employee.models.Employee", "Employee"))
MODEL_CHOICES.append(
("pms.models.EmployeeKeyResult", "Employee Key Results")
)
MODEL_CHOICES = list(set(MODEL_CHOICES))
try:
from horilla_automations.signals import start_automation
start_automation()
except Exception as e:
print(e)
"""
Migrations are not affected yet
"""
except:
"""
Models not ready yet
"""
return ready