from django.db import models from multiselectfield import MultiSelectField from django.utils.translation import gettext_lazy as _ from eintritt.models import Employee # ATTENTION!!! # No key should be used twice in any of these dicts because of the # suboptimal implementation in views.EvaFormView.beautify_data() # DEPARTMENT_CHOICES = {'COENG': _('Communitys & Engagement'), 'SOFT': _('Softwareentwicklung'), 'CENT': 'Central', 'KOMAD': _('Kommunikation & Advocacy'), 'VOR': _('Vorstand'),} #VENDOR_CHOICES = {'STANDARD': 'Dell Latitude', # 'LENOVO': 'Lenovo Thinkpad', # 'MAC': _('Mac (nur für Grafiker_innen)')} OS_CHOICES = {'FED': 'Fedora (Standard)', 'WIN': _('Windows (bitte Begründung angeben)'), 'MOS': _('Mac OS (nur wenn Mac gewählt)'), 'UBU': _('Ubuntu')} LANG_CHOICES = {'GER': 'Deutsch', 'ENG': 'English',} KEYBOARD_CHOICES = {'DE': 'Deutsch', 'US': 'USA', 'OT': _('Anderes (Bitte unten angeben)')} HARDWARE_CHOICES = {'KEYBOARD': 'Tastatur', 'MOUSE': 'Maus', 'MONITOR': 'Monitor', 'HEADSET': 'Headset', '2FA': '2FA Stick', } TRANSPONDER_CHOICES = {'NORM': _('Allgemeiner Transponder'), 'SPECIAL': _('Besondere Schließungen (bitte angeben)'), 'NOTRANS': _('Kein Transponder'),} JANEIN_CHOICES = {'NEIN': ('Nein'), 'JA': _('Ja'),} class Employee(models.Model): # email adress of user. should not be necessary if we use openauth one day # usermail = models.EmailField(max_length=50, verbose_name="Deine Mailadresse (Ansprechpartner_in)", default='bestechefin@wikimedia.de') # personal data firstname = models.CharField(max_length=50, verbose_name=_("Vorname")) lastname = models.CharField(max_length=50, verbose_name=_("Nachname")) # general work related stuff lastdate_employment = models.DateField(null=True, verbose_name=_("Vertragsende")) lastdate_office = models.DateField(null=True, verbose_name=_("Letzter Tag der Anwesenheit in der Geschäftsstelle")) # HR related stuff overtime = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name=_("Sollen restliche Überstunden ausgezahlt werden?")) holiday = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name=_("Sollen restliche Urlaubstage ausgezahlt werden?")) pension = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name=_("Ist betriebliche Altersvorsorge (BAV) vorhanden?")) # IT related stuff laptop_id = models.CharField(max_length=6, blank=True, verbose_name=_("Laptop ID (wenn bekannt)")) special_logins = models.TextField(max_length=500, null=True, blank=True, verbose_name=_("Zusätzlich zu deaktivierende Accounts")) forward = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name=_('Soll die Email umgeleitet werden anstatt sie zu deaktivieren?')) forwardemail = models.CharField(max_length=300, null=True, blank=True, verbose_name=_("An welche Email soll umgeleitet werden?")) documents = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name=_('Sollen Google Drive Dokumente übertragen werden? (Sonst werden sie gelöscht)')) documentowner = models.CharField(max_length=300, null=True, blank=True, verbose_name=_("An wen sollen die Dokumente übertragen werden?")) mobile = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name=_('Diensttelefon (Handy) vorhanden?')) sim = models.CharField(max_length=5, default="NEIN", null=True, choices=JANEIN_CHOICES.items(), verbose_name="Mobilfunkvertrag vorhanden?") hardware = MultiSelectField(choices=HARDWARE_CHOICES.items(), max_length=40, null=True, blank=True, verbose_name=_("Zusätzliche Hardware vorhanden?")) # office related stuff transponder_id = models.CharField(max_length=6, blank=True, verbose_name=_("Transponder ID (Laut Personio)")) # finance related stuff credit_card = models.CharField(max_length=5, choices=JANEIN_CHOICES.items(), verbose_name="Kreditkarte vorhanden?") bahncard = models.CharField(max_length=5, default="NEIN", null=True, choices=JANEIN_CHOICES.items(), verbose_name="Bahncard-Abo vorhanden?") # kom related stuff website = models.CharField(max_length=5, default="NEIN", null=True, choices=JANEIN_CHOICES.items(), verbose_name="Müssen Dinge von der Webseite gelöscht werden?")