[FIX] BASE: Fixed database hit before apps loaded in company manager
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user