fix: align tubco onboarding models with deployed schema

This commit is contained in:
Md Bayazid Bostame
2026-04-15 09:51:00 +02:00
parent 9911cc5f82
commit 054558fda2
4 changed files with 178 additions and 0 deletions

View File

@@ -12,10 +12,19 @@ class OnboardingRequest(models.Model):
gender = models.CharField(max_length=20, blank=True, choices=[('herr', _('Herr')), ('frau', _('Frau')), ('divers', _('Divers'))], verbose_name='Anrede')
job_title = models.CharField(max_length=255, blank=True, verbose_name='Berufsbezeichnung')
department = models.CharField(max_length=255, blank=True, verbose_name='Abteilung')
street_address = models.CharField(max_length=255, blank=True, default='', verbose_name='Straße und Hausnummer')
postal_code = models.CharField(max_length=50, blank=True, default='', verbose_name='Postleitzahl')
city = models.CharField(max_length=120, blank=True, default='', verbose_name='Stadt')
work_email = models.EmailField(verbose_name='Gewünschte dienstliche E-Mail-Adresse')
contract_start = models.DateField(verbose_name='Vertragsbeginn')
employment_type = models.CharField(max_length=20, blank=True, choices=[('befristet', _('befristet')), ('unbefristet', _('unbefristet'))], verbose_name='Beschäftigungsverhältnis')
employment_end_date = models.DateField(null=True, blank=True, verbose_name='Enddatum (nur bei befristet)')
salary_gross_monthly = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, verbose_name='Monatsgehalt brutto')
weekly_hours = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True, verbose_name='Wochenstunden')
probation_months = models.PositiveSmallIntegerField(null=True, blank=True, verbose_name='Probezeit in Monaten')
notice_period = models.CharField(max_length=255, blank=True, default='', verbose_name='Kündigungsfrist')
vacation_days_total = models.PositiveSmallIntegerField(null=True, blank=True, verbose_name='Urlaubstage pro Jahr')
place_of_work = models.CharField(max_length=255, blank=True, default='', verbose_name='Arbeitsort')
handover_date = models.DateField(null=True, blank=True, verbose_name='Gewünschtes Übergabedatum der Geräte')
order_business_cards = models.BooleanField(default=False, verbose_name='Bestellung Visitenkarten')
business_card_name = models.CharField(max_length=255, blank=True, verbose_name='Name (Visitenkarte)')
@@ -52,6 +61,8 @@ class OnboardingRequest(models.Model):
intro_pdf_path = models.CharField(max_length=500, blank=True)
processing_status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='submitted')
last_error = models.TextField(blank=True)
approval_released_at = models.DateTimeField(null=True, blank=True)
approval_released_by_name = models.CharField(max_length=255, blank=True, default='')
preferred_language = models.CharField(max_length=10, blank=True, default='de', db_default='de')
created_at = models.DateTimeField(auto_now_add=True)
@@ -162,6 +173,8 @@ class OffboardingRequest(models.Model):
custom_field_values = models.JSONField(default=dict, blank=True)
processing_status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='submitted')
last_error = models.TextField(blank=True)
approval_released_at = models.DateTimeField(null=True, blank=True)
approval_released_by_name = models.CharField(max_length=255, blank=True, default='')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self) -> str: