2025-04-14 08:34:30 +00:00
from django . db import models
from multiselectfield import MultiSelectField
from django . utils . translation import gettext_lazy as _
2025-04-29 06:33:15 +00:00
from eintritt . models import Employee
2025-04-14 08:34:30 +00:00
# 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) ' ) }
ACCOUNT_CHOICES = { ' OTRSWMDE ' : ' OTRS Ticketsystem ' ,
' CIVIC1 ' : _ ( ' Civic CRM (allgemein) ' ) ,
' CIVIC2 ' : _ ( " Civic CRM (Mailings, impliziert allgemein) " ) ,
' WEB ' : ' www.wikimedia.de (edit) ' ,
' BLOG ' : ' blog.wikimedia.de (edit) ' ,
' FORUM ' : ' forum.wikimedia.de ' ,
}
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
2026-01-23 14:23:07 +00:00
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 " ) )
lastdate_working = models . DateField ( null = True , verbose_name = _ ( " Letzter Arbeitstag " ) )
# HR related stuff
overtime = models . CharField ( max_length = 6 , blank = True , verbose_name = _ ( " vorhandene Überstunden (wenn bekannt) " ) )
holiday = models . CharField ( max_length = 6 , blank = True , verbose_name = _ ( " restliche Urlaubstage (wenn bekannt) " ) )
2025-04-14 08:34:30 +00:00
# IT related stuff
2026-01-23 14:23:07 +00:00
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 . BooleanField ( default = False , verbose_name = " Mobilfunkvertrag vorhanden? " )
2025-04-14 08:34:30 +00:00
# office related stuff
2026-01-23 14:23:07 +00:00
transponder_id = models . CharField ( max_length = 6 , blank = True , verbose_name = _ ( " Transponder ID (wenn bekannt) " ) )
# finance related stuff
credit_card = models . CharField ( max_length = 5 , choices = JANEIN_CHOICES . items ( ) , verbose_name = " Kreditkarte vorhanden? " )