[ADD] RECRUITMENT: Added filter and selection method in edit forms
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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" %}
|
||||
</button>
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user