[UPDT] PMS: Updated PMS Module Models Objects Manager

This commit is contained in:
Horilla
2025-07-22 10:34:48 +05:30
parent 03232402de
commit a2c51c436e

View File

@@ -1,24 +1,19 @@
import operator
from datetime import date
from typing import Iterable
from dateutil.relativedelta import relativedelta
from django import forms
from django.apps import apps
from django.core.exceptions import ValidationError
from django.core.validators import MinValueValidator
from django.db import models
from django.db.models.signals import post_delete, post_save, pre_save
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from base.horilla_company_manager import HorillaCompanyManager
from base.models import Company, Department, JobPosition
from employee.models import BonusPoint, Employee
from horilla import horilla_middlewares
from horilla.models import HorillaModel
from horilla_audit.methods import get_diff
from horilla_audit.models import HorillaAuditInfo, HorillaAuditLog
from horilla_automations.methods.methods import get_model_class
from horilla_views.cbv_methods import render_template
"""Objectives and key result section"""
@@ -129,7 +124,7 @@ class Objective(HorillaModel):
on_delete=models.CASCADE,
)
self_employee_progress_update = models.BooleanField(default=True)
objects = HorillaCompanyManager("employee_id__employee_work_info__company_id")
objects = HorillaCompanyManager()
class Meta:
"""
@@ -143,6 +138,19 @@ class Objective(HorillaModel):
def __str__(self):
return f"{self.title}"
def save(self, *args, **kwargs):
request = getattr(horilla_middlewares._thread_locals, "request", None)
selected_company = request.session.get("selected_company")
if (
not self.id
and not self.company_id
and selected_company
and selected_company != "all"
):
self.company_id = Company.find(selected_company)
super().save()
class EmployeeObjective(HorillaModel):
"""this is a EmployObjective model used for creating Employee objectives"""
@@ -773,6 +781,15 @@ class Meetings(HorillaModel):
)
response = models.TextField(null=True, blank=True)
show_response = models.BooleanField(default=False, editable=False)
company_id = models.ForeignKey(
Company,
null=True,
blank=True,
editable=False,
verbose_name=_("Company"),
on_delete=models.CASCADE,
)
objects = HorillaCompanyManager()
class Meta:
verbose_name = _("Meetings")
@@ -781,6 +798,19 @@ class Meetings(HorillaModel):
def __str__(self):
return self.title
def save(self, *args, **kwargs):
request = getattr(horilla_middlewares._thread_locals, "request", None)
selected_company = request.session.get("selected_company")
if (
not self.id
and not self.company_id
and selected_company
and selected_company != "all"
):
self.company_id = Company.find(selected_company)
super().save()
class MeetingsAnswer(models.Model):
"""feedback answer model"""