[UPDT] RECRUITMENT: Updated recruitment module by adding verbose name for model and fields
This commit is contained in:
@@ -226,7 +226,7 @@ class DropDownForm(forms.ModelForm):
|
||||
field.widget.attrs.update({"class": "oh-switch__checkbox "})
|
||||
|
||||
|
||||
class RecruitmentCreationForm(ModelForm):
|
||||
class RecruitmentCreationForm(BaseModelForm):
|
||||
"""
|
||||
Form for Recruitment model
|
||||
"""
|
||||
@@ -254,14 +254,13 @@ class RecruitmentCreationForm(ModelForm):
|
||||
"end_date": forms.DateInput(attrs={"type": "date"}),
|
||||
"description": forms.Textarea(attrs={"data-summernote": ""}),
|
||||
}
|
||||
labels = {"description": _("Description"), "vacancy": _("Vacancy")}
|
||||
|
||||
def as_p(self, *args, **kwargs):
|
||||
"""
|
||||
Render the form fields as HTML table rows with Bootstrap styling.
|
||||
"""
|
||||
context = {"form": self}
|
||||
table_html = render_to_string("attendance_form.html", context)
|
||||
table_html = render_to_string("horilla_form.html", context)
|
||||
return table_html
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -278,7 +277,7 @@ class RecruitmentCreationForm(ModelForm):
|
||||
filter_template_path="employee_filters.html",
|
||||
required=True,
|
||||
),
|
||||
label="Employee",
|
||||
label=f"{self._meta.model()._meta.get_field('recruitment_managers').verbose_name}",
|
||||
)
|
||||
|
||||
skill_choices = [("", _("---Choose Skills---"))] + list(
|
||||
@@ -326,7 +325,7 @@ class RecruitmentCreationForm(ModelForm):
|
||||
super().clean()
|
||||
|
||||
|
||||
class StageCreationForm(ModelForm):
|
||||
class StageCreationForm(BaseModelForm):
|
||||
"""
|
||||
Form for Stage model
|
||||
"""
|
||||
@@ -356,7 +355,7 @@ class StageCreationForm(ModelForm):
|
||||
filter_template_path="employee_filters.html",
|
||||
required=True,
|
||||
),
|
||||
label="Employee",
|
||||
label=f"{self._meta.model()._meta.get_field('stage_managers').verbose_name}",
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
@@ -367,7 +366,7 @@ class StageCreationForm(ModelForm):
|
||||
super().clean()
|
||||
|
||||
|
||||
class CandidateCreationForm(ModelForm):
|
||||
class CandidateCreationForm(BaseModelForm):
|
||||
"""
|
||||
Form for Candidate model
|
||||
"""
|
||||
@@ -421,13 +420,6 @@ class CandidateCreationForm(ModelForm):
|
||||
"scheduled_date": forms.DateInput(attrs={"type": "date"}),
|
||||
"dob": forms.DateInput(attrs={"type": "date"}),
|
||||
}
|
||||
labels = {
|
||||
"name": _("Name"),
|
||||
"email": _("Email"),
|
||||
"mobile": _("Mobile"),
|
||||
"address": _("Address"),
|
||||
"zip": _("Zip"),
|
||||
}
|
||||
|
||||
def save(self, commit: bool = ...):
|
||||
candidate = self.instance
|
||||
@@ -904,13 +896,11 @@ class SurveyPreviewForm(forms.Form):
|
||||
# self
|
||||
|
||||
|
||||
class TemplateForm(ModelForm):
|
||||
class TemplateForm(BaseModelForm):
|
||||
"""
|
||||
TemplateForm
|
||||
"""
|
||||
|
||||
verbose_name = "Template"
|
||||
|
||||
class Meta:
|
||||
model = SurveyTemplate
|
||||
fields = "__all__"
|
||||
@@ -1008,8 +998,8 @@ class SkillZoneCreateForm(BaseModelForm):
|
||||
exclude = ["is_active"]
|
||||
|
||||
|
||||
class SkillZoneCandidateForm(ModelForm):
|
||||
verbose_name = "Skill Zone Candidate"
|
||||
class SkillZoneCandidateForm(BaseModelForm):
|
||||
verbose_name = _("Skill Zone Candidate")
|
||||
candidate_id = forms.ModelMultipleChoiceField(
|
||||
queryset=Candidate.objects.all(),
|
||||
widget=forms.SelectMultiple,
|
||||
@@ -1076,8 +1066,8 @@ class SkillZoneCandidateForm(ModelForm):
|
||||
return self.instance
|
||||
|
||||
|
||||
class ToSkillZoneForm(ModelForm):
|
||||
verbose_name = "Add To Skill Zone"
|
||||
class ToSkillZoneForm(BaseModelForm):
|
||||
verbose_name = _("Add To Skill Zone")
|
||||
skill_zone_ids = forms.ModelMultipleChoiceField(
|
||||
queryset=SkillZone.objects.all(), label=_("Skill Zones")
|
||||
)
|
||||
@@ -1177,13 +1167,11 @@ class RejectedCandidateForm(ModelForm):
|
||||
self.fields["candidate_id"].widget = self.fields["candidate_id"].hidden_widget()
|
||||
|
||||
|
||||
class ScheduleInterviewForm(ModelForm):
|
||||
class ScheduleInterviewForm(BaseModelForm):
|
||||
"""
|
||||
ScheduleInterviewForm
|
||||
"""
|
||||
|
||||
verbose_name = "Schedule Interview"
|
||||
|
||||
class Meta:
|
||||
model = InterviewSchedule
|
||||
fields = "__all__"
|
||||
|
||||
@@ -95,6 +95,10 @@ class SurveyTemplate(HorillaModel):
|
||||
def __str__(self) -> str:
|
||||
return self.title
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Survey Template")
|
||||
verbose_name_plural = _("Survey Templates")
|
||||
|
||||
|
||||
class Skill(HorillaModel):
|
||||
title = models.CharField(max_length=100)
|
||||
@@ -107,14 +111,20 @@ class Skill(HorillaModel):
|
||||
self.title = title.capitalize()
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Skill")
|
||||
verbose_name_plural = _("Skills")
|
||||
|
||||
|
||||
class Recruitment(HorillaModel):
|
||||
"""
|
||||
Recruitment model
|
||||
"""
|
||||
|
||||
title = models.CharField(max_length=50, null=True, blank=True)
|
||||
description = models.TextField(null=True)
|
||||
title = models.CharField(
|
||||
max_length=50, null=True, blank=True, verbose_name=_("Title")
|
||||
)
|
||||
description = models.TextField(null=True, verbose_name=_("Description"))
|
||||
is_event_based = models.BooleanField(
|
||||
default=False,
|
||||
help_text=_("To start recruitment for multiple job positions"),
|
||||
@@ -131,6 +141,7 @@ class Recruitment(HorillaModel):
|
||||
"To publish a recruitment in website, if false then it \
|
||||
will not appear on open recruitment page."
|
||||
),
|
||||
verbose_name=_("Is Published"),
|
||||
)
|
||||
is_active = models.BooleanField(
|
||||
default=True,
|
||||
@@ -140,7 +151,10 @@ class Recruitment(HorillaModel):
|
||||
),
|
||||
)
|
||||
open_positions = models.ManyToManyField(
|
||||
JobPosition, related_name="open_positions", blank=True
|
||||
JobPosition,
|
||||
related_name="open_positions",
|
||||
blank=True,
|
||||
verbose_name=_("Job Position"),
|
||||
)
|
||||
job_position_id = models.ForeignKey(
|
||||
JobPosition,
|
||||
@@ -152,9 +166,11 @@ class Recruitment(HorillaModel):
|
||||
verbose_name=_("Job Position"),
|
||||
editable=False,
|
||||
)
|
||||
vacancy = models.IntegerField(default=0, null=True)
|
||||
recruitment_managers = models.ManyToManyField(Employee)
|
||||
survey_templates = models.ManyToManyField(SurveyTemplate, blank=True)
|
||||
vacancy = models.IntegerField(default=0, null=True, verbose_name=_("Vacancy"))
|
||||
recruitment_managers = models.ManyToManyField(Employee, verbose_name=_("Managers"))
|
||||
survey_templates = models.ManyToManyField(
|
||||
SurveyTemplate, blank=True, verbose_name=_("Survey Templates")
|
||||
)
|
||||
company_id = models.ForeignKey(
|
||||
Company,
|
||||
on_delete=models.PROTECT,
|
||||
@@ -164,7 +180,7 @@ class Recruitment(HorillaModel):
|
||||
)
|
||||
start_date = models.DateField(default=django.utils.timezone.now)
|
||||
end_date = models.DateField(blank=True, null=True)
|
||||
skills = models.ManyToManyField(Skill, blank=True)
|
||||
skills = models.ManyToManyField(Skill, blank=True, verbose_name=_("Skills"))
|
||||
linkedin_account_id = models.ForeignKey(
|
||||
"recruitment.LinkedInAccount",
|
||||
on_delete=models.PROTECT,
|
||||
@@ -179,14 +195,19 @@ class Recruitment(HorillaModel):
|
||||
"To publish a recruitment in Linkedin, if active is false then it \
|
||||
will not post on LinkedIn."
|
||||
),
|
||||
verbose_name=_("Post on LinkedIn"),
|
||||
)
|
||||
objects = HorillaCompanyManager()
|
||||
default = models.manager.Manager()
|
||||
optional_profile_image = models.BooleanField(
|
||||
default=False, help_text=_("Profile image not mandatory for candidate creation")
|
||||
default=False,
|
||||
help_text=_("Profile image not mandatory for candidate creation"),
|
||||
verbose_name=_("Optional Profile Image"),
|
||||
)
|
||||
optional_resume = models.BooleanField(
|
||||
default=False, help_text=_("Resume not mandatory for candidate creation")
|
||||
default=False,
|
||||
help_text=_("Resume not mandatory for candidate creation"),
|
||||
verbose_name=_("Optional Resume"),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@@ -202,6 +223,8 @@ class Recruitment(HorillaModel):
|
||||
("job_position_id", "start_date", "company_id"),
|
||||
]
|
||||
permissions = (("archive_recruitment", "Archive Recruitment"),)
|
||||
verbose_name = _("Recruitment")
|
||||
verbose_name_plural = _("Recruitments")
|
||||
|
||||
def total_hires(self):
|
||||
"""
|
||||
@@ -287,10 +310,13 @@ class Stage(HorillaModel):
|
||||
related_name="stage_set",
|
||||
verbose_name=_("Recruitment"),
|
||||
)
|
||||
stage_managers = models.ManyToManyField(Employee)
|
||||
stage = models.CharField(max_length=50)
|
||||
stage_managers = models.ManyToManyField(Employee, verbose_name=_("Stage Managers"))
|
||||
stage = models.CharField(max_length=50, verbose_name=_("Stage"))
|
||||
stage_type = models.CharField(
|
||||
max_length=20, choices=stage_types, default="interview"
|
||||
max_length=20,
|
||||
choices=stage_types,
|
||||
default="interview",
|
||||
verbose_name=_("Stage Type"),
|
||||
)
|
||||
sequence = models.IntegerField(null=True, default=0)
|
||||
objects = HorillaCompanyManager(related_company_field="recruitment_id__company_id")
|
||||
@@ -306,6 +332,8 @@ class Stage(HorillaModel):
|
||||
permissions = (("archive_Stage", "Archive Stage"),)
|
||||
unique_together = ["recruitment_id", "stage"]
|
||||
ordering = ["sequence"]
|
||||
verbose_name = _("Stage")
|
||||
verbose_name_plural = _("Stages")
|
||||
|
||||
def active_candidates(self):
|
||||
"""
|
||||
@@ -325,11 +353,11 @@ class Candidate(HorillaModel):
|
||||
|
||||
choices = [("male", _("Male")), ("female", _("Female")), ("other", _("Other"))]
|
||||
offer_letter_statuses = [
|
||||
("not_sent", "Not Sent"),
|
||||
("sent", "Sent"),
|
||||
("accepted", "Accepted"),
|
||||
("rejected", "Rejected"),
|
||||
("joined", "Joined"),
|
||||
("not_sent", _("Not Sent")),
|
||||
("sent", _("Sent")),
|
||||
("accepted", _("Accepted")),
|
||||
("rejected", _("Rejected")),
|
||||
("joined", _("Joined")),
|
||||
]
|
||||
source_choices = [
|
||||
("application", _("Application Form")),
|
||||
@@ -377,7 +405,7 @@ class Candidate(HorillaModel):
|
||||
validators=[
|
||||
validate_mobile,
|
||||
],
|
||||
verbose_name=_("Phone"),
|
||||
verbose_name=_("Mobile"),
|
||||
)
|
||||
resume = models.FileField(
|
||||
upload_to="recruitment/resume",
|
||||
@@ -614,6 +642,8 @@ class Candidate(HorillaModel):
|
||||
("archive_candidate", "Archive Candidate"),
|
||||
)
|
||||
ordering = ["sequence"]
|
||||
verbose_name = _("Candidate")
|
||||
verbose_name_plural = _("Candidates")
|
||||
|
||||
|
||||
class RejectReason(HorillaModel):
|
||||
@@ -637,6 +667,10 @@ class RejectReason(HorillaModel):
|
||||
def __str__(self) -> str:
|
||||
return self.title
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Reject Reason")
|
||||
verbose_name_plural = _("Reject Reasons")
|
||||
|
||||
|
||||
class RejectedCandidate(HorillaModel):
|
||||
"""
|
||||
@@ -952,6 +986,10 @@ class InterviewSchedule(HorillaModel):
|
||||
def __str__(self) -> str:
|
||||
return f"{self.candidate_id} -Interview."
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Schedule Interview")
|
||||
verbose_name_plural = _("Schedule Interviews")
|
||||
|
||||
|
||||
class Resume(models.Model):
|
||||
file = models.FileField(
|
||||
|
||||
@@ -55,7 +55,7 @@ if not any(
|
||||
Initializes and starts background tasks using APScheduler when the server is running.
|
||||
"""
|
||||
scheduler = BackgroundScheduler()
|
||||
scheduler.add_job(candidate_convert, "interval", seconds=10)
|
||||
scheduler.add_job(candidate_convert, "interval", minutes=5)
|
||||
scheduler.add_job(recruitment_close, "interval", hours=1)
|
||||
|
||||
scheduler.start()
|
||||
|
||||
@@ -2,47 +2,43 @@
|
||||
{{ form.non_field_errors }}
|
||||
|
||||
<div class="row">
|
||||
{% for field in form %}
|
||||
{% if field.label != "Profile" and field.label != 'Country' and field.label != 'State' and field.label != 'Badge id' %}
|
||||
<div class="col-lg-6">
|
||||
<div class="oh-input__group">
|
||||
<label
|
||||
class="oh-label {% if field.field.required %}required-star{% endif %}"
|
||||
for="id_{{ field.name }}"
|
||||
title="{{ field.help_text|safe }}"
|
||||
>
|
||||
{{ field.label }}
|
||||
</label>
|
||||
{% for field in form %}
|
||||
{% if field.name != 'profile' and field.name != 'country' and field.name != 'state' and field.name != 'badge_id' %}
|
||||
<div class="col-lg-6">
|
||||
<div class="oh-input__group">
|
||||
<label class="oh-label {% if field.field.required %}required-star{% endif %}" for="{{field.id_for_label}}"
|
||||
title="{{ field.help_text|safe }}">
|
||||
{{ field.label }}
|
||||
</label>
|
||||
|
||||
{% if field.field.widget.input_type == 'checkbox' %}
|
||||
<div class="oh-switch" style="width: 30px;">{{ field|add_class:'oh-switch__checkbox' }}</div>
|
||||
{% else %}
|
||||
{{ field|add_class:'form-control' }}
|
||||
{% endif %}
|
||||
{% if field.field.widget.input_type == 'checkbox' %}
|
||||
<div class="oh-switch" style="width: 30px;">{{ field|add_class:'oh-switch__checkbox' }}</div>
|
||||
{% else %}
|
||||
{{ field|add_class:'form-control' }}
|
||||
{% endif %}
|
||||
|
||||
{{ field.errors }}
|
||||
</div>
|
||||
</div>
|
||||
{% elif field.label == 'Country' %}
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<label class="oh-label" for="country">{% trans "Country" %}</label>
|
||||
<select name="country" class="w-100 oh-select-2" id="id_country">
|
||||
<option value="{{form.instance.country}}" selected>{{form.instance.country}}</option>
|
||||
</select>
|
||||
{{form.country.errors}}
|
||||
<span class="dropdown-wrapper" aria-hidden="true"></span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="oh-label d-block" for="state">{% trans "State" %}</label>
|
||||
<select name="state" class="w-100 oh-select-2" id="id_state">
|
||||
<option value="{{form.instance.state}}" selected>{{form.instance.state}}</option>
|
||||
|
||||
</select>
|
||||
{{form.state.errors}}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ field.errors }}
|
||||
</div>
|
||||
</div>
|
||||
{% elif field.name == 'country' %}
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<label class="oh-label" for="{{form.country.id_for_label}}">{{form.country.label}}</label>
|
||||
<select name="country" class="w-100 oh-select-2" id="id_country">
|
||||
<option value="{{form.instance.country}}" selected>{{form.instance.country}}</option>
|
||||
</select>
|
||||
{{form.country.errors}}
|
||||
<span class="dropdown-wrapper" aria-hidden="true"></span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="oh-label d-block" for="{{form.state.id_for_label}}">{{form.state.label}}</label>
|
||||
<select name="state" class="w-100 oh-select-2" id="id_state">
|
||||
<option value="{{form.instance.state}}" selected>{{form.instance.state}}</option>
|
||||
</select>
|
||||
{{form.state.errors}}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
{% if form.non_field_errors %}
|
||||
<ul class="errorlist">
|
||||
{% for error in form.non_field_errors %}
|
||||
<li>{{ error }}</li>
|
||||
<li>{{ error }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<div class="oh-modal__dialog-header pb-0">
|
||||
<h5 class="oh-modal__dialog-title" id="recruitmentUpdateModalLabel">
|
||||
{% trans "Edit Recruitment" %}
|
||||
{% trans "Update" %} {{form.verbose_name}}
|
||||
</h5>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
@@ -21,74 +21,90 @@
|
||||
<div>
|
||||
{% csrf_token %}
|
||||
<div class="row" id="recruitmentUpdateContainer">
|
||||
{% for error in form.non_field_errors %}
|
||||
<ul class="errorlist">
|
||||
<li>{{error}}</li>
|
||||
</ul>
|
||||
{% endfor %}
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<label class="oh-label" for="{{form.title.id_for_label}}">{% trans "Title" %} <span
|
||||
class="text-danger">*</span></label>
|
||||
<label class="oh-label" for="{{form.title.id_for_label}}">{{form.title.label}}
|
||||
<span class="text-danger">*</span></label>
|
||||
{{form.title}} {{form.title.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<label class="oh-label" for="{{form.description.id_for_label}}">{% trans "Description" %} <span
|
||||
class="text-danger">*</span></label>
|
||||
<label class="oh-label" for="{{form.description.id_for_label}}">{{form.description.label}}
|
||||
<span class="text-danger">*</span></label>
|
||||
{{form.description}} {{form.description.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="openPositionUpdateContainer">
|
||||
<label class="oh-label" for="{{form.open_positions.id_for_label}}">{% trans "Job Position" %} <span
|
||||
class="text-danger">*</span></label>
|
||||
<label class="oh-label" for="{{form.open_positions.id_for_label}}">{{form.open_positions.label}}
|
||||
<span class="text-danger">*</span></label>
|
||||
{{form.open_positions}} {{form.open_positions.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.recruitment_managers.id_for_label}}">{% trans "Managers" %}
|
||||
<label class="oh-label"
|
||||
for="{{form.recruitment_managers.id_for_label}}">{{form.recruitment_managers.label}}
|
||||
<span class="text-danger">*</span></label>
|
||||
{{form.recruitment_managers}} {{form.recruitment_managers.errors}}
|
||||
{{form.recruitment_managers}}
|
||||
{{form.recruitment_managers.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.start_date.id_for_label}}">{% trans "Start Date" %}</label>
|
||||
<label class="oh-label" for="{{form.start_date.id_for_label}}">{{form.start_date.label}}</label>
|
||||
{{form.start_date}} {{form.start_date.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.end_date.id_for_label}}">{% trans "End Date" %}</label>
|
||||
<label class="oh-label" for="{{form.end_date.id_for_label}}">{{form.end_date.label}}</label>
|
||||
{{form.end_date}} {{form.end_date.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.vacancy.id_for_label}}">{% trans "Vacancy" %}</label>
|
||||
<label class="oh-label" for="{{form.vacancy.id_for_label}}">{{form.vacancy.label}}</label>
|
||||
{{form.vacancy}} {{form.vacancy.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.company_id.id_for_label}}">{% trans "Company" %}</label>
|
||||
<label class="oh-label" for="{{form.company_id.id_for_label}}">{{form.company_id.label}}</label>
|
||||
{{form.company_id}} {{form.company_id.errors}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<label class="oh-label" for="id_survey_templates">{% trans "Survey Templates" %}</label>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label"
|
||||
for="{{form.survey_templates.id_for_label}}">{{form.survey_templates.label}}</label>
|
||||
{{form.survey_templates}}
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.skills.id_for_label}}">{{form.skills.label}}</label>
|
||||
{{form.skills}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.publish_in_linkedin.id_for_label}}"
|
||||
title="{{form.publish_in_linkedin.help_text|safe}}">{{form.publish_in_linkedin.label}}</label>
|
||||
<div class="w-100 d-flex" style="align-items: center" 6>
|
||||
<div class="oh-switch">{{form.publish_in_linkedin}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="">
|
||||
<label class="oh-label"
|
||||
for="{{form.linkedin_account_id.id_for_label}}">{{form.linkedin_account_id.label}}</label>
|
||||
{{form.linkedin_account_id}} {{form.linkedin_account_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label class="oh-label" for="id_is_published" title="{{form.is_published.help_text|safe}}">
|
||||
{% trans "Is Published?" %}
|
||||
</label>
|
||||
<label class="oh-label" for="{{form.is_published.id_for_label}}"
|
||||
title="{{form.is_published.help_text|safe}}">{{form.is_published.label}} ?</label>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.is_published}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label class="oh-label" for="id_optional_profile_image" title="{{form.optional_profile_image.help_text|safe}}">
|
||||
{% trans "Optional Profile Image?" %}
|
||||
<label class="oh-label" for="{{form.optional_profile_image.id_for_label}}"
|
||||
title="{{form.optional_profile_image.help_text|safe}}">
|
||||
{{form.optional_profile_image.label}} ?
|
||||
</label>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.optional_profile_image}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label class="oh-label" for="id_optional_resume" title="{{form.optional_resume.help_text|safe}}">
|
||||
{% trans "Optional Resume?" %}
|
||||
<label class="oh-label" for="{{form.optional_resume.id_for_label}}"
|
||||
title="{{form.optional_resume.help_text|safe}}">
|
||||
{{form.optional_resume.label}} ?
|
||||
</label>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.optional_resume}}</div>
|
||||
|
||||
@@ -1,49 +1,51 @@
|
||||
{% load i18n %}
|
||||
<div class="oh-modal__dialog-header">
|
||||
<h5 class="oh-modal__dialog-title" id="objectUpdateModalLabel">
|
||||
{% trans "Edit Stage" %}
|
||||
</h5>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
</button>
|
||||
<h5 class="oh-modal__dialog-title" id="objectUpdateModalLabel">
|
||||
{% trans "Update" %} {{form.verbose_name}}
|
||||
</h5>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oh-modal__dialog-body">
|
||||
<form
|
||||
hx-post="{% url 'stage-update-pipeline' form.instance.id %}"
|
||||
hx-target="#objectUpdateModalTarget"
|
||||
class="oh-profile-section"
|
||||
>
|
||||
<div>
|
||||
{% csrf_token %}
|
||||
<div class="row" id="stageUpdateFormHx">
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage" %} *</label>
|
||||
{{form.stage}} {{form.stage.errors}}
|
||||
<form hx-post="{% url 'stage-update-pipeline' form.instance.id %}" hx-target="#objectUpdateModalTarget"
|
||||
class="oh-profile-section">
|
||||
<div>
|
||||
{% csrf_token %}
|
||||
<div class="row" id="stageUpdateFormHx">
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.stage.id_for_label}}">{{form.stage.label}} *</label>
|
||||
{{form.stage}} {{form.stage.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.recruitment_id.id_for_label}}">{{form.recruitment_id.label}}
|
||||
*</label>
|
||||
{{form.recruitment_id}} {{form.recruitment_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="stage_manager">
|
||||
<label class="oh-label" for="{{form.stage_managers.id_for_label}}">{{form.stage_managers.label}}
|
||||
*</label>
|
||||
{{form.stage_managers}} {{form.stage_managers.errors}}
|
||||
<ul id="error-list" class="errorlist" style="display: none">
|
||||
<li>{% trans "This field is requied" %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.stage_type.id_for_label}}">{{form.stage_type.label}} *</label>
|
||||
{{form.stage_type}} {{form.stage_type.errors}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Recruitment" %} *</label>
|
||||
{{form.recruitment_id}} {{form.recruitment_id.errors}}
|
||||
<div class="d-flex flex-row-reverse w-100 align-items-right mt-4">
|
||||
<button type="submit" class="oh-btn oh-btn--secondary pl-5 pr-5">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage Managers" %} *</label>
|
||||
{{form.stage_managers}} {{form.stage_managers.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage Type" %} *</label>
|
||||
{{form.stage_type}} {{form.stage_type.errors}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row-reverse w-100 align-items-right mt-4">
|
||||
<button type="submit" class="oh-btn oh-btn--secondary pl-5 pr-5">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
$(document).on('htmx:load', function () {
|
||||
{% include 'select2.js' %}
|
||||
$('#stageUpdateFormHx .col-12 .oh-select').select2()
|
||||
});
|
||||
$(document).on('htmx:load', function () {
|
||||
{% include 'select2.js' %}
|
||||
$('#stageUpdateFormHx .col-12 .oh-select').select2()
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
{% endif %}
|
||||
<div class="oh-modal__dialog-header">
|
||||
<h5 class="oh-modal__dialog-title" id="addRecruitmentModalLabel"
|
||||
>{% if duplicate %}{% trans "Duplicate Recruitment" %}{% else %}{% trans "Add Recruitment" %}{% endif %}</span
|
||||
>{% if duplicate %}{% trans "Duplicate" %}{% else %}{% trans "Create" %}{% endif %} {{form.verbose_name}}</span
|
||||
>
|
||||
<button class="oh-modal__close" aria-label="Close" >
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
@@ -76,7 +76,7 @@
|
||||
<label
|
||||
class="oh-label required-star"
|
||||
for="{{form.title.id_for_label}}"
|
||||
>{% trans "Title" %}</label
|
||||
>{{form.title.label}}</label
|
||||
>
|
||||
{{form.title}} {{form.title.errors}}
|
||||
</div>
|
||||
@@ -84,7 +84,7 @@
|
||||
<label
|
||||
class="oh-label required-star"
|
||||
for="{{form.description.id_for_label}}"
|
||||
>{% trans "Description" %}</label
|
||||
>{{form.description.label}}</label
|
||||
>
|
||||
{{form.description}} {{form.description.errors}}
|
||||
</div>
|
||||
@@ -95,7 +95,7 @@
|
||||
<label
|
||||
class="oh-label required-star"
|
||||
for="{{form.open_positions.id_for_label}}"
|
||||
>{% trans "Job Position" %}</label
|
||||
>{{form.open_positions.label}}</label
|
||||
>
|
||||
{{form.open_positions}} {{form.open_positions.errors}}
|
||||
</div>
|
||||
@@ -103,53 +103,53 @@
|
||||
<label
|
||||
class="oh-label required-star"
|
||||
for="{{form.recruitment_managers.id_for_label}}"
|
||||
>{% trans "Managers" %}</label
|
||||
>{{form.recruitment_managers.label}}</label
|
||||
>
|
||||
{{form.recruitment_managers}}
|
||||
{{form.recruitment_managers.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.start_date.id_for_label}}"
|
||||
>{% trans "Start Date" %}</label
|
||||
>{{form.start_date.label}}</label
|
||||
>
|
||||
{{form.start_date}} {{form.start_date.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.end_date.id_for_label}}"
|
||||
>{% trans "End Date" %}</label
|
||||
>{{form.end_date.label}}</label
|
||||
>
|
||||
{{form.end_date}} {{form.end_date.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.vacancy.id_for_label}}"
|
||||
>{% trans "Vacancy" %}</label
|
||||
>{{form.vacancy.label}}</label
|
||||
>
|
||||
{{form.vacancy}} {{form.vacancy.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.company_id.id_for_label}}"
|
||||
>{% trans "Company" %}</label
|
||||
>{{form.company_id.label}}</label
|
||||
>
|
||||
{{form.company_id}} {{form.company_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label
|
||||
class="oh-label"
|
||||
for="{{form.survey_templates.id_for_lable}}"
|
||||
>{% trans "Survey Templates" %}</label
|
||||
for="{{form.survey_templates.id_for_label}}"
|
||||
>{{form.survey_templates.label}}</label
|
||||
>
|
||||
{{form.survey_templates}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.skills.id_for_lable}}"
|
||||
>{% trans "Skills" %}</label
|
||||
<label class="oh-label" for="{{form.skills.id_for_label}}"
|
||||
>{{form.skills.label}}</label
|
||||
>
|
||||
{{form.skills}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.publish_in_linkedin.id_for_lable}}"
|
||||
<label class="oh-label" for="{{form.publish_in_linkedin.id_for_label}}"
|
||||
title="{{form.publish_in_linkedin.help_text|safe}}"
|
||||
>{% trans "Post on LinkedIn" %}</label
|
||||
>{{form.publish_in_linkedin.label}}</label
|
||||
>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.publish_in_linkedin}}</div>
|
||||
@@ -165,9 +165,9 @@
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label
|
||||
class="oh-label"
|
||||
for="id_is_published"
|
||||
for="{{form.is_published.id_for_label}}"
|
||||
title="{{form.is_published.help_text|safe}}"
|
||||
>{% trans "Is Published?" %}</label
|
||||
>{{form.is_published.label}} ?</label
|
||||
>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.is_published}}</div>
|
||||
@@ -176,9 +176,9 @@
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label
|
||||
class="oh-label"
|
||||
for="id_optional_profile_image"
|
||||
for="{{form.optional_profile_image.id_for_label}}"
|
||||
title="{{form.optional_profile_image.help_text|safe}}"
|
||||
>{% trans "Optional Profile Image?" %}</label
|
||||
>{{form.optional_profile_image.label}}</label
|
||||
>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.optional_profile_image}}</div>
|
||||
@@ -187,9 +187,9 @@
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label
|
||||
class="oh-label"
|
||||
for="id_optional_optional_resume"
|
||||
for="{{form.optional_resume.id_for_label}}"
|
||||
title="{{form.optional_resume.help_text|safe}}"
|
||||
>{% trans "Optional Resume?" %}</label
|
||||
>{{form.optional_resume.label}}</label
|
||||
>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.optional_resume}}</div>
|
||||
@@ -204,7 +204,7 @@
|
||||
hx-post="{% url 'recruitment-create' %}"
|
||||
hx-target="#objectCreateModalTarget"
|
||||
>
|
||||
{% trans "Add" %}
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
{% endif %}
|
||||
<div class="oh-modal__dialog-header pb-0">
|
||||
<h5 class="oh-modal__dialog-title" id="addRecruitmentModalLabel"
|
||||
>{% trans "Edit Recruitment" %}</span
|
||||
>{% trans "Update" %} {{form.verbose_name}}</span
|
||||
>
|
||||
<button class="oh-modal__close" aria-label="Close" >
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
@@ -69,15 +69,15 @@
|
||||
</ul>
|
||||
{% endfor %}
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<label class="oh-label" for=""
|
||||
>{% trans "Title" %}
|
||||
<label class="oh-label" for="{{form.title.id_for_label}}"
|
||||
>{{form.title.label}}
|
||||
<span class="text-danger">*</span></label
|
||||
>
|
||||
{{form.title}} {{form.title.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<label class="oh-label" for=""
|
||||
>{% trans "Description" %}
|
||||
<label class="oh-label" for="{{form.description.id_for_label}}"
|
||||
>{{form.description.label}}
|
||||
<span class="text-danger">*</span></label
|
||||
>
|
||||
{{form.description}} {{form.description.errors}}
|
||||
@@ -86,63 +86,63 @@
|
||||
class="col-12 col-sm-12 col-md-12 col-lg-6"
|
||||
id="openPositionUpdateContainer"
|
||||
>
|
||||
<label class="oh-label" for=""
|
||||
>{% trans "Job Position" %}
|
||||
<label class="oh-label" for="{{form.open_positions.id_for_label}}"
|
||||
>{{form.open_positions.label}}
|
||||
<span class="text-danger">*</span></label
|
||||
>
|
||||
{{form.open_positions}} {{form.open_positions.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for=""
|
||||
>{% trans "Managers" %}
|
||||
<label class="oh-label" for="{{form.recruitment_managers.id_for_label}}"
|
||||
>{{form.recruitment_managers.label}}
|
||||
<span class="text-danger">*</span></label
|
||||
>
|
||||
{{form.recruitment_managers}}
|
||||
{{form.recruitment_managers.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for=""
|
||||
>{% trans "Start Date" %}</label
|
||||
<label class="oh-label" for="{{form.start_date.id_for_label}}"
|
||||
>{{form.start_date.label}}</label
|
||||
>
|
||||
{{form.start_date}} {{form.start_date.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for=""
|
||||
>{% trans "End Date" %}</label
|
||||
<label class="oh-label" for="{{form.end_date.id_for_label}}"
|
||||
>{{form.end_date.label}}</label
|
||||
>
|
||||
{{form.end_date}} {{form.end_date.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Vacancy" %}</label>
|
||||
<label class="oh-label" for="{{form.vacancy.id_for_label}}">{{form.vacancy.label}}</label>
|
||||
{{form.vacancy}} {{form.vacancy.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Company" %}</label>
|
||||
<label class="oh-label" for="{{form.company_id.id_for_label}}">{{form.company_id.label}}</label>
|
||||
{{form.company_id}} {{form.company_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="id_is_published"
|
||||
>{% trans "Survey Templates" %}</label
|
||||
<label class="oh-label" for="{{form.survey_templates.id_for_label}}"
|
||||
>{{form.survey_templates.label}}</label
|
||||
>
|
||||
{{form.survey_templates}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.skills.id_for_lable}}"
|
||||
>{% trans "Skills" %}</label
|
||||
<label class="oh-label" for="{{form.skills.id_for_label}}"
|
||||
>{{form.skills.label}}</label
|
||||
>
|
||||
{{form.skills}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.publish_in_linkedin.id_for_lable}}"
|
||||
<label class="oh-label" for="{{form.publish_in_linkedin.id_for_label}}"
|
||||
title="{{form.publish_in_linkedin.help_text|safe}}"
|
||||
>{% trans "Post on LinkedIn" %}</label
|
||||
>{{form.publish_in_linkedin.label}}</label
|
||||
>
|
||||
<div class="w-100 d-flex" style="align-items: center"6>
|
||||
<div class="oh-switch">{{form.publish_in_linkedin}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="">
|
||||
<label class="oh-label" for="{{form.company_id.id_for_label}}"
|
||||
<label class="oh-label" for="{{form.linkedin_account_id.id_for_label}}"
|
||||
>{{form.linkedin_account_id.label}}</label
|
||||
>
|
||||
{{form.linkedin_account_id}} {{form.linkedin_account_id.errors}}
|
||||
@@ -150,25 +150,25 @@
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label
|
||||
class="oh-label"
|
||||
for="id_is_published"
|
||||
for="{{form.is_published.id_for_label}}"
|
||||
title="{{form.is_published.help_text|safe}}"
|
||||
>{% trans "Is Published?" %}</label
|
||||
>{{form.is_published.label}} ?</label
|
||||
>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.is_published}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label class="oh-label" for="id_optional_profile_image" title="{{form.optional_profile_image.help_text|safe}}">
|
||||
{% trans "Optional Profile Image?" %}
|
||||
<label class="oh-label" for="{{form.optional_profile_image.id_for_label}}" title="{{form.optional_profile_image.help_text|safe}}">
|
||||
{{form.optional_profile_image.label}} ?
|
||||
</label>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.optional_profile_image}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-4">
|
||||
<label class="oh-label" for="id_optional_resume" title="{{form.optional_resume.help_text|safe}}">
|
||||
{% trans "Optional Resume?" %}
|
||||
<label class="oh-label" for="{{form.optional_resume.id_for_label}}" title="{{form.optional_resume.help_text|safe}}">
|
||||
{{form.optional_resume.label}} ?
|
||||
</label>
|
||||
<div class="w-100 d-flex" style="align-items: center">
|
||||
<div class="oh-switch">{{form.optional_resume}}</div>
|
||||
|
||||
@@ -1,53 +1,48 @@
|
||||
{% load i18n %}
|
||||
<div class="oh-modal__dialog-header">
|
||||
<span class="oh-modal__dialog-title" id="objectCreateModalLabel"
|
||||
>{% trans "Add Stage" %}</span
|
||||
>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
</button>
|
||||
<span class="oh-modal__dialog-title" id="objectCreateModalLabel">{% trans "Create" %} {{form.verbose_name}}</span>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="oh-modal__dialog-body" id="objectCreateModalBody">
|
||||
<form
|
||||
hx-post="{% url 'rec-stage-create' %}"
|
||||
class="oh-general__tab-target oh-profile-section"
|
||||
hx-target="#objectCreateModalTarget"
|
||||
>
|
||||
<div>
|
||||
{% csrf_token %}
|
||||
<div class="row" id="stageFormCreate">
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage" %} *</label>
|
||||
{{form.stage}} {{form.stage.errors}}
|
||||
<form hx-post="{% url 'rec-stage-create' %}" class="oh-general__tab-target oh-profile-section"
|
||||
hx-target="#objectCreateModalTarget">
|
||||
<div>
|
||||
{% csrf_token %}
|
||||
<div class="row" id="stageFormCreate">
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.stage.id_for_label}}">{{form.stage.label}} *</label>
|
||||
{{form.stage}} {{form.stage.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.recruitment_id.id_for_label}}">{{form.recruitment_id.label}} *</label>
|
||||
{{form.recruitment_id}} {{form.recruitment_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="stage_manager">
|
||||
<label class="oh-label" for="{{form.stage_managers.id_for_label}}">{{form.stage_managers.label}} *</label>
|
||||
{{form.stage_managers}} {{form.stage_managers.errors}}
|
||||
<ul id="error-list" class="errorlist" style="display: none">
|
||||
<li>{% trans "This field is requied" %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.stage_type.id_for_label}}">{{form.stage_type.label}} *</label>
|
||||
{{form.stage_type}} {{form.stage_type.errors}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Recruitment" %} *</label>
|
||||
{{form.recruitment_id}} {{form.recruitment_id.errors}}
|
||||
<div class="d-flex flex-row-reverse w-100 align-items-right mt-4">
|
||||
<button type="submit" class="oh-btn oh-btn--secondary pl-5 pr-5">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="stage_manager">
|
||||
<label class="oh-label" for="">{% trans "Stage Managers" %} *</label>
|
||||
{{form.stage_managers}} {{form.stage_managers.errors}}
|
||||
<ul id="error-list" class="errorlist" style="display: none">
|
||||
<li>{% trans "This field is requied" %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage Type" %} *</label>
|
||||
{{form.stage_type}} {{form.stage_type.errors}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row-reverse w-100 align-items-right mt-4">
|
||||
<button type="submit" class="oh-btn oh-btn--secondary pl-5 pr-5">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#stageFormCreate [name=stage_managers]").removeAttr("required");
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#stageFormCreate [name=stage_managers]").removeAttr("required");
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
@@ -1,58 +1,57 @@
|
||||
{% load i18n %} {% if messages %}
|
||||
<div class="oh-alert-container">
|
||||
{% for message in messages %}
|
||||
<div class="oh-alert oh-alert--animated {{message.tags}}">{{ message }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% load i18n %}
|
||||
{% if messages %}
|
||||
<div class="oh-alert-container">
|
||||
{% for message in messages %}
|
||||
<div class="oh-alert oh-alert--animated {{message.tags}}">{{ message }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="oh-modal__dialog-header">
|
||||
<h5 class="oh-modal__dialog-title" id="updateStageModalLabel">
|
||||
{% trans "Edit Stage" %}
|
||||
</h5>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
</button>
|
||||
<h5 class="oh-modal__dialog-title" id="updateStageModalLabel">
|
||||
{% trans "Update" %} {{form.verbose_name}}
|
||||
</h5>
|
||||
<button class="oh-modal__close" aria-label="Close">
|
||||
<ion-icon name="close-outline"></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oh-modal__dialog-body">
|
||||
<form
|
||||
method="post"
|
||||
class="oh-general__tab-target oh-profile-section"
|
||||
hx-post="{% url 'rec-stage-update' form.instance.id %}"
|
||||
hx-target="#objectUpdateModalTarget"
|
||||
>
|
||||
{% csrf_token %}
|
||||
<div id="stageFormCreate">
|
||||
{% csrf_token %}
|
||||
<div class="row" id="stageFormUpdate">
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage" %} *</label>
|
||||
{{form.stage}} {{form.stage.errors}}
|
||||
<form method="post" class="oh-general__tab-target oh-profile-section"
|
||||
hx-post="{% url 'rec-stage-update' form.instance.id %}" hx-target="#objectUpdateModalTarget">
|
||||
{% csrf_token %}
|
||||
<div id="stageFormCreate">
|
||||
{% csrf_token %}
|
||||
<div class="row" id="stageFormUpdate">
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.stage.id_for_label}}">{{form.stage.label}} *</label>
|
||||
{{form.stage}} {{form.stage.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.recruitment_id.id_for_label}}">{{form.recruitment_id.label}}
|
||||
*</label>
|
||||
{{form.recruitment_id}} {{form.recruitment_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6" id="stage_manager">
|
||||
<label class="oh-label" for="{{form.stage_managers.id_for_label}}">{{form.stage_managers.label}}
|
||||
*</label>
|
||||
{{form.stage_managers}} {{form.stage_managers.errors}}
|
||||
<ul id="error-list" class="errorlist" style="display: none">
|
||||
<li>{% trans "This field is requied" %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="{{form.stage_type.id_for_label}}">{{form.stage_type.label}} *</label>
|
||||
{{form.stage_type}} {{form.stage_type.errors}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Recruitment" %} *</label>
|
||||
{{form.recruitment_id}} {{form.recruitment_id.errors}}
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage Managers" %} *</label>
|
||||
{{form.stage_managers}} {{form.stage_managers.errors}}
|
||||
<ul id="error-list" class="errorlist" style="display: none">
|
||||
<li>{% trans "This field is requied" %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-12 col-lg-6">
|
||||
<label class="oh-label" for="">{% trans "Stage Type" %} *</label>
|
||||
{{form.stage_type}} {{form.stage_type.errors}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row-reverse">
|
||||
<input type="submit" value="Save" class="mt-4 oh-btn oh-btn--secondary" />
|
||||
</div>
|
||||
</form>
|
||||
<div class="d-flex flex-row-reverse">
|
||||
<input type="submit" value="Save" class="mt-4 oh-btn oh-btn--secondary" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#stageFormCreate [name=stage_managers]").removeAttr("required");
|
||||
});
|
||||
</script>
|
||||
$(document).ready(function () {
|
||||
$("#stageFormCreate [name=stage_managers]").removeAttr("required");
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
{% if perms.recruitment.change_surveytemplate %}
|
||||
<li class="oh-dropdown__item">
|
||||
<a hx-get="{% url 'survey-template-create' %}?title={{grouper.grouper}}"
|
||||
hx-target="#genericModalBody" data-toggle="oh-modal-toggle"
|
||||
data-target="#genericModal" class="oh-dropdown__link">
|
||||
hx-target="#templateModalBody" data-toggle="oh-modal-toggle"
|
||||
data-target="#templateModal" class="oh-dropdown__link">
|
||||
{% trans "Edit" %}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
Reference in New Issue
Block a user