[FIX] HORILLA_AUTOMATIONS: #871

This commit is contained in:
Horilla
2025-08-12 10:26:45 +05:30
parent 656318f3b5
commit 0f6b654603

View File

@@ -1,56 +1,50 @@
from django.apps import AppConfig
"""
App configuration for the Horilla Automations app.
Initializes model choices and starts automation when the server runs.
"""
from horilla_automations.signals import start_automation
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()
try:
def ready(self):
"""Run initialization tasks when the app is ready."""
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 as model_choices
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
# Build MODEL_CHOICES
models = [Employee]
if app_installed("recruitment"):
from recruitment.models import Candidate
recruitment_installed = False
if app_installed("recruitment"):
recruitment_installed = True
models.append(Candidate)
models = [Employee]
if recruitment_installed:
from recruitment.models import Candidate
for main_model in models:
for model in get_related_models(main_model):
model_choices.append(
(f"{model.__module__}.{model.__name__}", model.__name__)
)
models.append(Candidate)
model_choices.append(("employee.models.Employee", "Employee"))
model_choices.append(("pms.models.EmployeeKeyResult", "Employee Key Results"))
model_choices[:] = list(set(model_choices)) # Update in-place
main_models = models
for main_model in main_models:
related_models = get_related_models(main_model)
# Only start automation when running the server
if (
len(sys.argv) >= 2
and sys.argv[1] == "runserver"
and os.environ.get("RUN_MAIN") == "true"
):
from horilla_automations.signals import start_automation
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.append(
("pms.models.Comment", "Key Result Comment"),
)
MODEL_CHOICES = list(set(MODEL_CHOICES))
try:
start_automation()
except Exception as e:
print(e)
"""
Migrations are not affected yet
"""
except:
"""
Models not ready yet
"""
return ready
start_automation()