[UPDT] PMS: Feedback form updation and bugfix in form saving issue

This commit is contained in:
Horilla
2024-07-09 16:56:12 +05:30
parent c45da54de6
commit fef82101ab
2 changed files with 18 additions and 0 deletions

View File

@@ -650,6 +650,17 @@ class FeedbackForm(ModelForm):
if instance:
kwargs["initial"] = set_date_field_initial(instance)
super().__init__(*args, **kwargs)
if self.instance.pk is None:
self.fields["subordinate_id"] = HorillaMultiSelectField(
queryset=Employee.objects.all(),
widget=HorillaMultiSelectWidget(
filter_route_name="employee-widget-filter",
filter_class=EmployeeFilter,
filter_instance_contex_name="f",
filter_template_path="employee_filters.html",
),
label="Subordinates",
)
reload_queryset(self.fields)
self.fields["period"].choices = list(self.fields["period"].choices)
self.fields["period"].choices.append(("create_new_period", "Create new period"))
@@ -677,6 +688,10 @@ class FeedbackForm(ModelForm):
Cleans and validates the feedback form data.
Ensures that the start date is before the end date and validates the start date.
"""
super().clean()
emps = self.data.getlist("subordinate_id")
if emps:
self.errors.pop("subordinate_id", None)
cleaned_data = super().clean()
start_date = cleaned_data.get("start_date")
end_date = cleaned_data.get("end_date")

View File

@@ -1444,6 +1444,7 @@ def feedback_creation(request):
if request.method == "POST":
form = FeedbackForm(request.POST)
if form.is_valid():
employees = form.data.getlist("subordinate_id")
if key_result_ids := request.POST.getlist("employee_key_results_id"):
for key_result_id in key_result_ids:
key_result = EmployeeKeyResult.objects.filter(
@@ -1452,6 +1453,8 @@ def feedback_creation(request):
feedback_form = form.save()
feedback_form.employee_key_results_id.add(key_result)
instance = form.save()
instance.subordinate_id.set(employees)
messages.success(request, _("Feedback created successfully."))
send_feedback_notifications(request, form=instance)
return redirect(feedback_list_view)