73 lines
3.7 KiB
Python
73 lines
3.7 KiB
Python
from django.db import models
|
|
from multiselectfield import MultiSelectField
|
|
|
|
# ATTENTION!!!
|
|
# No key should be used twice in any of these dicts because of the
|
|
# implementation in views.EvaFormView.beautify_data()
|
|
#
|
|
DEPARTMENT_CHOICES = {'PROG': 'Programme',
|
|
'SOFT': 'Softwareentwicklung',
|
|
'CENT': 'Central',
|
|
'VOR': 'Vorstand',}
|
|
|
|
LAPTOP_CHOICES = {'14': '14", unser Standardgerät',
|
|
'12': '12,5", geeignet für Vielreisende',}
|
|
|
|
OS_CHOICES = {'UBU': 'Ubuntu (Standard)',
|
|
'WIN': 'Windows (bitte Begründung angeben)',}
|
|
|
|
MOBILE_CHOICES = {'NO': 'Kein Mobiltelefon',
|
|
'SIMPLE': 'Einfaches Gerät für Erreichbarkeit',
|
|
'SINGLE': 'Smartphone, Single SIM',
|
|
'DUAL': 'Smartphone, Dual SIM',}
|
|
|
|
LANG_CHOICES = {'GER': 'deutsch',
|
|
'ENG': 'english',}
|
|
|
|
ACCOUNT_CHOICES = {'OTRSWMDE': 'OTRS (WMDE)',
|
|
'OTRSFUND': 'OTRS (Fundraising)',
|
|
'CIVIC1': 'Civic CRM (allgemein)',
|
|
'CIVIC2': "Civic CRM (Mailings, impliziert allgemein)",
|
|
'FUND': "Fundraising Netzlaufwerk",
|
|
'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',}
|
|
|
|
class Employee(models.Model):
|
|
# personal data
|
|
firstname = models.CharField(max_length=50, verbose_name="Vorname")
|
|
lastname = models.CharField(max_length=50, verbose_name="Nachname")
|
|
intern = models.BooleanField(verbose_name='Interne_r Mitarbeiter_in?', default=True)
|
|
email = models.CharField(max_length=50, verbose_name="E-Mail-Adresse")
|
|
department = models.CharField(max_length=5, choices=DEPARTMENT_CHOICES.items())
|
|
team = models.CharField(max_length=20, null=True, blank=True)
|
|
|
|
# general work related stuff
|
|
firstdate_employment = models.DateField(null=True, verbose_name="erster Arbeitstag")
|
|
firstdate_presence = models.DateField(null=True, verbose_name="erster Tag der Anwesenheit in der Geschäftsstelle")
|
|
jobdescription_german = models.CharField(null=True, max_length=100, verbose_name="Stellenbeschreibung(deutsch)")
|
|
jobdescription_english = models.CharField(null=True, max_length=100, verbose_name="job description(english)")
|
|
desk = models.CharField(max_length=100, null=True, verbose_name="Wo soll der Arbeitsplatz sein?")
|
|
# TODO: we need an optional question for remote work here
|
|
|
|
# IT related stuff
|
|
laptop = models.CharField(max_length=2, choices=LAPTOP_CHOICES.items(), default='14')
|
|
os = models.CharField(max_length=3, choices=OS_CHOICES.items(), default='UBU')
|
|
screen = models.BooleanField(default=False, verbose_name='zusätzlicher Monitor? Einer ist standard.')
|
|
mobile = models.CharField(max_length=6, default='NO')
|
|
landline = models.BooleanField(default=True, verbose_name="Festnetztelefon")
|
|
comment = models.TextField(max_length=500, null=True, blank=True, verbose_name="zusätzliche IT-Anforderungen")
|
|
language = models.CharField(max_length=3, choices=LANG_CHOICES.items(), default="GER")
|
|
accounts = MultiSelectField(choices=ACCOUNT_CHOICES.items(), null=True)
|
|
lists = models.CharField(max_length=100, null=True)
|
|
|
|
# office related stuff
|
|
transponder = models.CharField(max_length=7, choices=TRANSPONDER_CHOICES.items(), default='NORM')
|
|
# TODO: we need an optional field here for SPECIAL
|
|
post_office_box = models.BooleanField(default=True, verbose_name='Postfach am Empfang benötigt?')
|