[UPDT] OFFBOARDING: Initial stage creation on offboarding
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from collections.abc import Iterable
|
||||
from datetime import date
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_save
|
||||
@@ -32,6 +33,26 @@ class Offboarding(models.Model):
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
is_new = not self.pk
|
||||
super().save(*args, **kwargs)
|
||||
if is_new:
|
||||
stages = [
|
||||
("Exit interview", "interview"),
|
||||
("Work Handover", "handover"),
|
||||
("FNF", "fnf"),
|
||||
("Farewell", "other"),
|
||||
("Archived", "archived"),
|
||||
]
|
||||
for stage in stages:
|
||||
new = OffboardingStage()
|
||||
new.offboarding_id = self
|
||||
new.title = stage[0]
|
||||
new.type = stage[1]
|
||||
new.save()
|
||||
|
||||
return
|
||||
|
||||
|
||||
class OffboardingStage(models.Model):
|
||||
"""
|
||||
@@ -42,12 +63,14 @@ class OffboardingStage(models.Model):
|
||||
("notice_period", "Notice period"),
|
||||
("fnf", "FnF Settlement"),
|
||||
("other", "Other"),
|
||||
("interview", "Interview"),
|
||||
("handover", "Work handover"),
|
||||
("archived", "Archived"),
|
||||
]
|
||||
|
||||
title = models.CharField(max_length=20)
|
||||
type = models.CharField(max_length=13, choices=types)
|
||||
offboarding_id = models.ForeignKey(Offboarding, on_delete=models.PROTECT)
|
||||
offboarding_id = models.ForeignKey(Offboarding, on_delete=models.CASCADE)
|
||||
managers = models.ManyToManyField(Employee)
|
||||
sequence = models.IntegerField(default=0, editable=False)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
@@ -94,7 +117,7 @@ class OffboardingEmployee(models.Model):
|
||||
Employee, on_delete=models.CASCADE, verbose_name="Employee"
|
||||
)
|
||||
stage_id = models.ForeignKey(
|
||||
OffboardingStage, on_delete=models.PROTECT, verbose_name="Stage", null=True
|
||||
OffboardingStage, on_delete=models.CASCADE, verbose_name="Stage", null=True
|
||||
)
|
||||
notice_period = models.IntegerField(null=True)
|
||||
unit = models.CharField(max_length=10, choices=units, default="month", null=True)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
{% endif %}
|
||||
{% if perms.offboarding.delete_offboarding %}
|
||||
<li class="oh-dropdown__item">
|
||||
<form action="{% url "delete-offboarding" %}" onsubmit="return confirm('Are you sure you want to delete this offboarding?');" method="post">
|
||||
<form action="{% url "delete-offboarding" %}?id={{offboarding.id}}" onsubmit="return confirm('Are you sure you want to delete this offboarding?');" method="post">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="oh-dropdown__link oh-dropdown__link--danger">
|
||||
{% trans "Delete" %}
|
||||
|
||||
@@ -96,7 +96,7 @@ def delete_offboarding(request):
|
||||
"""
|
||||
This method is used to delete offboardings
|
||||
"""
|
||||
ids = request.GET.getlits("id")
|
||||
ids = request.GET.getlist("id")
|
||||
Offboarding.objects.filter(id__in=ids).delete()
|
||||
messages.success(request, _("Offboarding deleted"))
|
||||
return redirect(pipeline)
|
||||
|
||||
Reference in New Issue
Block a user