diff --git a/recruitment/forms.py b/recruitment/forms.py index 4881db315..c95e6d27a 100644 --- a/recruitment/forms.py +++ b/recruitment/forms.py @@ -261,18 +261,18 @@ class RecruitmentCreationForm(ModelForm): super().__init__(*args, **kwargs) reload_queryset(self.fields) - if not self.instance.pk: - self.fields["recruitment_managers"] = HorillaMultiSelectField( - queryset=Employee.objects.filter(is_active=True), - widget=HorillaMultiSelectWidget( - filter_route_name="employee-widget-filter", - filter_class=EmployeeFilter, - filter_instance_contex_name="f", - filter_template_path="employee_filters.html", - required=True, - ), - label="Employee", - ) + self.fields["recruitment_managers"] = HorillaMultiSelectField( + queryset=Employee.objects.filter(is_active=True), + widget=HorillaMultiSelectWidget( + filter_route_name="employee-widget-filter", + filter_class=EmployeeFilter, + filter_instance_contex_name="f", + filter_template_path="employee_filters.html", + required=True, + instance=self.instance, + ), + label="Managers", + ) skill_choices = [("", _("---Choose Skills---"))] + list( self.fields["skills"].queryset.values_list("id", "title") @@ -322,18 +322,18 @@ class StageCreationForm(ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) reload_queryset(self.fields) - if not self.instance.pk: - self.fields["stage_managers"] = HorillaMultiSelectField( - queryset=Employee.objects.filter(is_active=True), - widget=HorillaMultiSelectWidget( - filter_route_name="employee-widget-filter", - filter_class=EmployeeFilter, - filter_instance_contex_name="f", - filter_template_path="employee_filters.html", - required=True, - ), - label="Employee", - ) + self.fields["stage_managers"] = HorillaMultiSelectField( + queryset=Employee.objects.filter(is_active=True), + widget=HorillaMultiSelectWidget( + filter_route_name="employee-widget-filter", + filter_class=EmployeeFilter, + filter_instance_contex_name="f", + filter_template_path="employee_filters.html", + required=True, + instance=self.instance, + ), + label="Stage Managers", + ) def clean(self): if isinstance(self.fields["stage_managers"], HorillaMultiSelectField): diff --git a/recruitment/templates/recruitment/recruitment_form.html b/recruitment/templates/recruitment/recruitment_form.html index cd46b3b48..b8ef30f3e 100644 --- a/recruitment/templates/recruitment/recruitment_form.html +++ b/recruitment/templates/recruitment/recruitment_form.html @@ -164,7 +164,7 @@ type="submit" class="oh-btn oh-btn--secondary pl-5 pr-5" hx-post="{% url 'recruitment-create' %}" - hx-target="#addRecruitmentModalBody" + hx-target="#objectCreateModalTarget" > {% trans "Add" %} diff --git a/recruitment/views/views.py b/recruitment/views/views.py index c59b70db7..512506eb1 100644 --- a/recruitment/views/views.py +++ b/recruitment/views/views.py @@ -327,6 +327,11 @@ def recruitment_update(request, rec_id): for sur in survey.recruitmentsurvey_set.all(): sur.recruitment_ids.add(recruitment_obj) recruitment_obj.save() + recruitment_obj.recruitment_managers.set( + Employee.objects.filter( + id__in=form.data.getlist("recruitment_managers") + ) + ) messages.success(request, _("Recruitment Updated.")) response = render( request, "recruitment/recruitment_form.html", {"form": form} @@ -717,6 +722,9 @@ def stage_update_pipeline(request, stage_id): form = StageCreationForm(request.POST, instance=stage_obj) if form.is_valid(): stage_obj = form.save() + stage_obj.stage_managers.set( + Employee.objects.filter(id__in=form.data.getlist("stage_managers")) + ) messages.success(request, _("Stage updated.")) with contextlib.suppress(Exception): managers = stage_obj.stage_managers.select_related("employee_user_id") @@ -756,6 +764,11 @@ def recruitment_update_pipeline(request, rec_id): form = RecruitmentCreationForm(request.POST, instance=recruitment_obj) if form.is_valid(): recruitment_obj = form.save() + recruitment_obj.recruitment_managers.set( + Employee.objects.filter( + id__in=form.data.getlist("recruitment_managers") + ) + ) messages.success(request, _("Recruitment updated.")) with contextlib.suppress(Exception): managers = recruitment_obj.recruitment_managers.select_related( @@ -1212,7 +1225,10 @@ def stage_update(request, stage_id): if request.method == "POST": form = StageCreationForm(request.POST, instance=stages) if form.is_valid(): - form.save() + stage_obj = form.save() + stage_obj.stage_managers.set( + Employee.objects.filter(id__in=form.data.getlist("stage_managers")) + ) messages.success(request, _("Stage updated.")) response = render( request, "recruitment/recruitment_form.html", {"form": form}