diff --git a/pms/models.py b/pms/models.py index 0b02ae360..6e2026d02 100644 --- a/pms/models.py +++ b/pms/models.py @@ -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"""