diff --git a/offboarding/admin.py b/offboarding/admin.py
index 8a10c2734..4f17d3290 100644
--- a/offboarding/admin.py
+++ b/offboarding/admin.py
@@ -5,6 +5,7 @@ from offboarding.models import (
OffboardingTask,
EmployeeTask,
ResignationLetter,
+ OffboardingEmployee,
)
# Register your models here.
@@ -16,5 +17,6 @@ admin.site.register(
OffboardingNote,
OffboardingTask,
EmployeeTask,
+ OffboardingEmployee,
]
)
diff --git a/offboarding/templates/offboarding/task/table_body.html b/offboarding/templates/offboarding/task/table_body.html
index ad2ca91f6..7797a9f69 100644
--- a/offboarding/templates/offboarding/task/table_body.html
+++ b/offboarding/templates/offboarding/task/table_body.html
@@ -1,4 +1,4 @@
-{% load i18n offboarding_filter %} {% if response_message %}
+{% load i18n offboarding_filter %} {% load mathfilters %} {% if response_message %}
{{response_message}}
@@ -29,9 +29,7 @@
- {% if employee.notice_period %}
- {% trans 'In' %} {{ employee.notice_period }} {{ employee.get_unit_display }}
- {% endif %}
+ {% if employee.notice_period_ends == today %} {% trans "today" %}{% elif employee.notice_period_ends < today %} {% trans "Notice period ended" %} {% else %}{% trans 'In' %} {{employee.notice_period_ends|sub:today}}{% endif %}
{{ employee.notice_period_starts }}
{{ employee.notice_period_ends }}
diff --git a/offboarding/urls.py b/offboarding/urls.py
index abd25969f..a594197df 100644
--- a/offboarding/urls.py
+++ b/offboarding/urls.py
@@ -77,5 +77,6 @@ urlpatterns = [
name="enable-resignation-request",
),
path("get-notice-period", views.get_notice_period, name="get-notice-period"),
+ path("get-notice-period-end-date", views.get_notice_period_end_date, name="get-notice-period-end-date"),
path("offboarding-pipeline-filter",views.filter_pipeline,name="offboarding-pipeline-filter")
]
diff --git a/offboarding/views.py b/offboarding/views.py
index 7e5928671..8af347ec3 100644
--- a/offboarding/views.py
+++ b/offboarding/views.py
@@ -1,4 +1,4 @@
-import datetime
+from datetime import datetime, timedelta
import json
from urllib.parse import parse_qs
from django.http import HttpResponse, JsonResponse
@@ -119,13 +119,9 @@ def pipeline(request):
stage_forms = {}
for offboarding in offboardings:
stage_forms[str(offboarding.id)] = StageSelectForm(offboarding=offboarding)
- for stage in offboarding.offboardingstage_set.all():
- employees = employees + [
- employee for employee in stage.offboardingemployee_set.all()
- ]
+
filter_dict = parse_qs(request.GET.urlencode())
- requests_ids = json.dumps([instance.id for instance in employees])
return render(
request,
@@ -137,7 +133,7 @@ def pipeline(request):
"stage_filter": PipelineStageFilter(),
"stage_forms": stage_forms,
"filter_dict": filter_dict,
- "requests_ids": requests_ids,
+ "today" : datetime.today().date(),
},
)
@@ -237,13 +233,19 @@ def add_employee(request):
"""
This method is used to add employee to the stage
"""
+ default_notice_period = (
+ intial_notice_period(request)["get_initial_notice_period"]
+ if intial_notice_period(request)["get_initial_notice_period"]
+ else 0
+ )
+ end_date = datetime.today() + timedelta(days=default_notice_period * 30)
stage_id = request.GET["stage_id"]
instance_id = eval(str(request.GET.get("instance_id")))
instance = None
if instance_id and isinstance(instance_id, int):
instance = OffboardingEmployee.objects.get(id=instance_id)
stage = OffboardingStage.objects.get(id=stage_id)
- form = OffboardingEmployeeForm(initial={"stage_id": stage}, instance=instance)
+ form = OffboardingEmployeeForm(initial={"stage_id": stage,"notice_period_ends":end_date}, instance=instance)
form.instance.stage_id = stage
if request.method == "POST":
form = OffboardingEmployeeForm(request.POST, instance=instance)
@@ -763,12 +765,12 @@ def update_status(request):
notice_period_starts = request.GET.get("notice_period_starts")
notice_period_ends = request.GET.get("notice_period_ends")
if notice_period_starts:
- notice_period_starts = datetime.datetime.strptime(
+ notice_period_starts = datetime.strptime(
notice_period_starts, "%Y-%m-%d"
).date()
- today = datetime.datetime.today()
+ today = datetime.today()
if notice_period_ends:
- notice_period_ends = datetime.datetime.strptime(
+ notice_period_ends = datetime.strptime(
notice_period_ends, "%Y-%m-%d"
).date()
else:
@@ -842,8 +844,19 @@ def get_notice_period(request):
response = {
"notice_period": intial_notice_period(request)["get_initial_notice_period"],
"unit": "month",
- "notice_period_starts": str(datetime.datetime.today().date()),
+ "notice_period_starts": str(datetime.today().date()),
}
if employee_contract:
response["notice_period"] = employee_contract.notice_period_in_month
return JsonResponse(response)
+
+
+def get_notice_period_end_date(request):
+ start_date = request.GET.get("start_date")
+ start_date = datetime.strptime(start_date,"%Y-%m-%d").date()
+ notice_period = intial_notice_period(request)["get_initial_notice_period"]
+ end_date = start_date + timedelta(days = notice_period * 30)
+ response = {
+ "end_date": end_date,
+ }
+ return JsonResponse(response)
\ No newline at end of file