[FIX] BASE: Fixed database hit before apps loaded in company manager

This commit is contained in:
Horilla
2025-11-01 11:50:31 +05:30
parent bf9e94958c
commit 39effbb86f

View File

@@ -84,13 +84,7 @@ class HorillaCompanyManager(models.Manager):
)
except Exception as e:
logger.error(e)
try:
has_duplicates = queryset.count() != queryset.distinct().count()
if has_duplicates:
queryset = queryset.distinct()
except:
pass
return queryset
return queryset.distinct()
def all(self):
"""
@@ -99,31 +93,28 @@ class HorillaCompanyManager(models.Manager):
queryset = []
try:
queryset = self.get_queryset()
if queryset.exists():
model_name = queryset.model._meta.model_name
if model_name == "employee":
request = getattr(_thread_locals, "request", None)
if request:
active = (
True
if request.GET.get("is_active", True)
in ["unknown", "True", "true", True]
else False
)
queryset = queryset.filter(is_active=active)
model_name = queryset.model._meta.model_name
if model_name == "employee":
request = getattr(_thread_locals, "request", None)
if request:
active = (
True
if request.GET.get("is_active", True)
in ["unknown", "True", "true", True]
else False
)
queryset = queryset.filter(is_active=active)
elif model_name == "offboardingemployee":
return queryset
else:
for field in queryset.model._meta.fields:
if isinstance(field, models.ForeignKey):
if field.name in self.check_fields:
related_model_is_active_filter = {
f"{field.name}__is_active": True
}
queryset = queryset.filter(
**related_model_is_active_filter
)
elif model_name == "offboardingemployee":
return queryset
else:
for field in queryset.model._meta.fields:
if isinstance(field, models.ForeignKey):
if field.name in self.check_fields:
related_model_is_active_filter = {
f"{field.name}__is_active": True
}
queryset = queryset.filter(**related_model_is_active_filter)
except Exception as e:
logger.error(e)