Files
ihrm/onboarding/models.py
2023-05-10 15:06:57 +05:30

61 lines
2.1 KiB
Python

from django.db import models
from recruitment.models import Recruitment, Candidate
from employee.models import Employee
from django.utils.translation import gettext_lazy as _
class OnboardingStage(models.Model):
stage_title = models.CharField(max_length=200)
recruitment_id = models.ManyToManyField(Recruitment)
employee_id = models.ManyToManyField(Employee)
sequence = models.IntegerField(null=True)
def __str__(self):
return self.stage_title
class OnboardingTask(models.Model):
task_title = models.CharField(max_length=200)
recruitment_id = models.ManyToManyField(Recruitment, related_name='onboarding_task')
employee_id = models.ManyToManyField(Employee)
def __str__(self):
return self.task_title
class CandidateStage(models.Model):
candidate_id = models.OneToOneField(Candidate, on_delete=models.CASCADE, related_name='onboarding_stage')
onboarding_stage_id = models.ForeignKey(
OnboardingStage, on_delete=models.CASCADE, related_name='candidate')
def __str__(self):
return f"{self.candidate_id} | {self.onboarding_stage_id}"
class CandidateTask(models.Model):
Choice = (
('', ''),
('ongoing', _('Ongoing')),
('stuck', _('Stuck')),
('done', _('Done')),
)
candidate_id = models.ForeignKey(Candidate, on_delete=models.CASCADE, related_name='candidate_task')
status = models.CharField(
max_length=50, choices=Choice, blank=True, null=True)
onboarding_task_id = models.ForeignKey(
OnboardingTask, on_delete=models.CASCADE)
def __str__(self):
return f"{self.candidate_id} | {self.onboarding_task_id} | {self.status}"
class Meta:
unique_together = ('candidate_id','onboarding_task_id')
class OnboardingPortal(models.Model):
candidate_id = models.OneToOneField(Candidate, on_delete=models.CASCADE, related_name='onboarding_portal')
token = models.CharField(max_length=200)
used = models.BooleanField(default=False)
count = models.IntegerField(default=0)
def __str__(self):
return f'{self.candidate_id} | {self.token}'