from django.db import models from multiselectfield import MultiSelectField from django.utils.translation import gettext_lazy as _ # 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 = {'UBU': 'Ubuntu (Standard)', 'WIN': _('Windows (bitte Begründung angeben)'), 'MOS': _('Mac OS (nur wenn Mac gewählt)')} 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'),} 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")) # intern = models.BooleanField(verbose_name='Interne_r Mitarbeiter_in?', default=True) department = models.CharField(max_length=5, choices=DEPARTMENT_CHOICES.items(), verbose_name=_('Bereich')) team = models.CharField(max_length=50, null=True, blank=True) # TODO? better with choices? add_to_wikimediade = models.BooleanField(default = False, verbose_name=_('Soll auf wikimedia.de irgendwo stehen?')) # 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="Stellenbezeichnung(deutsch)") jobdescription_english = models.CharField(null=True, max_length=100, verbose_name="Job description(english)") works_in_gs = models.BooleanField(verbose_name=_('Braucht Arbeitsplatz in der Geschäftsstelle?)'), default=True) desk = models.CharField(max_length=100, null=True, blank=True, verbose_name=_("Wo soll der Arbeitsplatz sein?")) # IT related stuff vendor = models.CharField(max_length=8, choices=VENDOR_CHOICES.items(), default='STANDARD', verbose_name=_('Hersteller')) os = models.CharField(max_length=3, choices=OS_CHOICES.items(), default='UBU', verbose_name=_('Betriebssystem')) screen = models.BooleanField(default=False, verbose_name=_('Zusätzlicher Monitor? Einer ist standard.')) mobile = models.BooleanField(max_length=6, default=False, verbose_name=_('Diensttelefon (Handy)')) landline = models.BooleanField(default = False, verbose_name=_('Festnetznummer (Sipgate)')) # sim = models.BooleanField(default=False, verbose_name="Mobilfunkvertrag") keyboard = models.CharField(max_length=2, choices=KEYBOARD_CHOICES.items(), default='DE', verbose_name=_("Tastaturlayout")) 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", verbose_name=_("Sprache für Onboarding")) accounts = MultiSelectField(choices=ACCOUNT_CHOICES.items(), max_length=40, null=True, blank=True, verbose_name=_("Zusätzliche Accounts")) lists = models.CharField(max_length=100, null=True, blank=True, verbose_name=_("Zusätzliche Mailinglisten")) rebu2go = models.BooleanField(verbose_name=_("Rebu2Go-Zugang benötigt?"), default=False) # office related stuff transponder = models.CharField(max_length=7, choices=TRANSPONDER_CHOICES.items(), default='NORM') special = models.TextField(max_length=500, null=True, blank=True, verbose_name=_("Besondere Schließungen hier eintragen")) post_office_box = models.BooleanField(default=True, verbose_name=_('Postfach am Empfang benötigt?'))