From 521daf79fdf0b686949ef2b1ff257ad8d102bfcb Mon Sep 17 00:00:00 2001 From: Horilla Date: Mon, 11 Mar 2024 12:20:47 +0530 Subject: [PATCH] [FIX] PMS: Pms add assignees and employee objective update issue --- pms/forms.py | 25 +++++++++++++++++-------- pms/templates/okr/okr_list.html | 3 +-- pms/views.py | 8 +------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/pms/forms.py b/pms/forms.py index 2f93df555..1614159b5 100644 --- a/pms/forms.py +++ b/pms/forms.py @@ -157,7 +157,11 @@ class ObjectiveForm(BaseForm): for field_name, field_instance in self.fields.items(): if isinstance(field_instance, HorillaMultiSelectField): self.errors.pop(field_name, None) - if add_assignees and len(self.data.getlist(field_name)) < 1 and add_assignees: + if ( + add_assignees + and len(self.data.getlist(field_name)) < 1 + and add_assignees + ): raise forms.ValidationError({field_name: "This field is required"}) cleaned_data = super().clean() data = self.fields[field_name].queryset.filter( @@ -217,6 +221,13 @@ class AddAssigneesForm(BaseForm): table_html = render_to_string("common_form.html", context) return table_html + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if self.instance: + self.fields["assignees"].queryset = self.fields[ + "assignees" + ].queryset.exclude(id__in=self.instance.assignees.all()) + class EmployeeObjectiveForm(BaseForm): """ @@ -242,7 +253,6 @@ class EmployeeObjectiveForm(BaseForm): model = EmployeeObjective fields = [ "objective_id", - "key_result_id", "start_date", "end_date", "status", @@ -261,12 +271,11 @@ class EmployeeObjectiveForm(BaseForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) reload_queryset(self.fields) - self.fields["key_result_id"].choices = list( - self.fields["key_result_id"].choices - ) - self.fields["key_result_id"].choices.append( - ("create_new_key_result", "Create new Key result") - ) + try: + del self.fields["key_result_id"] + except Exception as _err: + pass + def as_p(self): """ diff --git a/pms/templates/okr/okr_list.html b/pms/templates/okr/okr_list.html index ccf5cbcae..ae7339254 100644 --- a/pms/templates/okr/okr_list.html +++ b/pms/templates/okr/okr_list.html @@ -229,7 +229,7 @@ {% if perms.pms.add_employeeobjective %} {% endif %} {% if perms.pms.change_objective %} @@ -571,7 +571,6 @@ }) activeTab = $(".oh-tabs__tab.oh-tabs__tab--active"); if (!activeTab.length) { - console.log("++++++++"); $('[data-target="#self_objective"]').click() } }); diff --git a/pms/views.py b/pms/views.py index 8de22ea0b..d0c7b37cf 100644 --- a/pms/views.py +++ b/pms/views.py @@ -672,7 +672,7 @@ def add_assignees(request, obj_id): objective = Objective.objects.get(id=obj_id) form = AddAssigneesForm(instance=objective) if request.method == "POST": - form = AddAssigneesForm(request.POST, objective) + form = AddAssigneesForm(request.POST, instance=objective) if form.is_valid(): objective = form.save() assignees = form.cleaned_data["assignees"] @@ -746,12 +746,6 @@ def update_employee_objective(request, emp_obj_id): form = EmployeeObjectiveForm(request.POST, instance=emp_objective) if form.is_valid: emp_obj = form.save(commit=False) - krs = form.cleaned_data["key_result_id"] - if krs: - for kr in krs: - emp_kr = EmployeeKeyResult( - employee_objective_id=emp_objective, key_result_id=kr - ).save() emp_obj.save() messages.success(request, _("Employee objective Updated successfully")) return HttpResponse("")