WMDE
/
eva
forked from tohe/eva
7
1
Fork 0

Initial commit for veraenderung

This commit is contained in:
Julian Hahn 2026-01-23 16:44:52 +01:00
parent ad322f8ac1
commit e71625b351
4 changed files with 117 additions and 63 deletions

View File

@ -14,7 +14,7 @@ MAILS = {
'IT': {
'MAIL': 'wmde-it@wikimedia.de',
'DATA': [
'laptop', 'os', 'comment', 'email', 'landline', 'lists', 'mobile',
'vendor', 'os', 'comment', 'email', 'landline', 'lists', 'mobile',
'department', 'accounts', 'language', 'screen', 'works_in_gs', 'desk',
'keyboard',
],

View File

@ -33,16 +33,16 @@ class PersonalForm(EvaForm):
class WorkingForm(EvaForm):
def clean(self):
data = self.cleaned_data
if data['works_in_gs'] and data['desk'] is None:
raise ValidationError('Wer nicht remote arbeitet braucht einen Schreibtisch!')
return data
# def clean(self):
# data = self.cleaned_data
# if data['works_in_gs'] and data['desk'] is None:
# raise ValidationError('Wer nicht remote arbeitet braucht einen Schreibtisch!')
# return data
class Meta:
model = Employee
fields = ['firstdate_employment', 'firstdate_presence', 'jobdescription_german',
'jobdescription_english', 'works_in_gs', 'desk',]
fields = ['firstdate_employment', 'jobdescription_german',
'jobdescription_english',]
widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}),
'firstdate_presence': DateInput(attrs={'type': 'date'}),}
@ -51,17 +51,41 @@ class ITForm(EvaForm):
class Meta:
model = Employee
fields = [
'framework', 'os', 'keyboard', 'mobile', 'landline',
'comment', 'language', 'accounts', 'lists', 'rebu2go' ]
'laptop',
'framework',
'os',
'keyboard',
'mobile',
'landline',
'comment',
'language',
'accounts',
'lists',
'oldaccounts',
'oldlists',
'rebu2go'
]
class OfficeForm(EvaForm):
class Meta:
model = Employee
fields = ['transponder', 'special', 'post_office_box',]
fields = [
'transponder',
'special',
'post_office_box'
]
class ChangeForm(EvaForm):
class Meta:
model = Employee
fields = ['firstdate_employment', 'jobdescription_german', 'jobdescription_english',
'desk', 'comment', 'accounts', 'lists', 'transponder']
fields = [
'firstdate_employment',
'jobdescription_german',
'jobdescription_english',
'desk',
'comment',
'accounts',
'lists',
'transponder'
]
widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}),}

View File

@ -14,7 +14,7 @@ DEPARTMENT_CHOICES = {'COENG': _('Communitys & Engagement'),
'KOMAD': _('Kommunikation & Advocacy'),
'VOR': _('Vorstand'),}
#VENDOR_CHOICES = {'STANDARD': 'Dell Latitude',
#VENDOR_CHOICES = {'STANDARD': 'Framework',
# 'LENOVO': 'Lenovo Thinkpad',
# 'MAC': _('Mac (nur für Grafiker_innen)')}
@ -60,15 +60,12 @@ class Employee(models.Model):
# 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?"))
jobdescription_german = models.CharField(null=True, max_length=100, verbose_name="Neue Stellenbezeichnung(deutsch)")
jobdescription_english = models.CharField(null=True, max_length=100, verbose_name="New Job description(english)")
# IT related stuff
#vendor = models.CharField(max_length=8, choices=VENDOR_CHOICES.items(), default='STANDARD', verbose_name=_('Hersteller'))
framework = models.CharField(max_length=300, null=True, blank=True, verbose_name=_("Möchten Sie vom Standard des Frameworks (Laptop) abweichen, und wenn ja, warum?"))
laptop = models.CharField(max_length=8, choices=JANEIN_CHOICES.items(), default='NEIN', verbose_name=_('Wird ein neuer Laptop gebraucht?'))
framework = models.CharField(max_length=300, null=True, blank=True, verbose_name=_("Wenn ja, soll er vom Standard des Frameworks (Laptop) abweichen, und wenn ja, warum?"))
os = models.CharField(max_length=3, choices=OS_CHOICES.items(), default='FED', 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)'))
@ -76,12 +73,15 @@ class Employee(models.Model):
# 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"))
onboarding = models.CharField(max_length=8, choices=JANEIN_CHOICES.items(), default='NEIN', verbose_name=_('Wird wieder ein Onboarding gebraucht?'))
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"))
accounts = models.TextField(max_length=500, null=True, blank=True, verbose_name=_("Zusätzliche benötigte neue Zugänge"))
lists = models.CharField(max_length=100, null=True, blank=True, verbose_name=_("Zusätzliche neue Mailinglisten"))
oldaccounts = models.TextField(max_length=500, null=True, blank=True, verbose_name=_("Nicht mehr benötigte alte Zugänge"))
oldlists = models.CharField(max_length=100, null=True, blank=True, verbose_name=_("Nicht mehr benötigte 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"))
special = models.TextField(max_length=500, null=True, blank=True, verbose_name=_("Besondere Schließungen hier eintragen (auch bereits vergebene)"))
post_office_box = models.BooleanField(default=True, verbose_name=_('Postfach am Empfang benötigt?'))

View File

@ -5,57 +5,87 @@ ONLY_ONBOARDING = True
EVA_MAIL = 'it-support@wikimedia.de'
# these Fields should be included in every mail
BASIC_DATA = ['firstname', 'lastname', 'firstdate_employment', 'firstdate_presence',
'jobdescription_german', 'jobdescription_english',]
BASIC_DATA = ['firstname',
'lastname',
'firstdate_employment',
'jobdescription_german',
'jobdescription_english',]
# for every department: 'MAIL' => mail adress, 'DATA': additional fields to include
# also one copy with all fields to the person filling the form.
MAILS = {
'IT': {
'MAIL': 'wmde-it@wikimedia.de',
'MAIL': 'it-support@wikimedia.de',
'DATA': [
'laptop', 'os', 'comment', 'email', 'landline', 'lists', 'mobile',
'department', 'accounts', 'language', 'screen', 'works_in_gs', 'desk',
'laptop',
'framework',
'os',
'keyboard',
'mobile',
'landline',
'comment',
'email',
'accounts',
'lists',
'oldaccounts',
'oldlists',
'department',
'language',
],
},
'OFFICE': {
'MAIL': 'office@wikimedia.de',
'DATA': [
'transponder', 'special', 'post_office_box', 'mobile',
'works_in_gs', 'desk',
],
},
'KOMM': {
'MAIL': 'presse@wikimedia.de',
'DATA': [
'department', 'team', 'add_to_wikimediade'
],
},
'CENTRAL': {
'MAIL': 'anna.noelte@wikimedia.de',
'DATA': [
'department', 'team', 'language', 'mobile', 'rebu2go'
],
},
'HR': {
'MAIL': 'personal@wikimedia.de',
'DATA': [
'department', 'team', 'language',
]
},
'FINANCE': {
'MAIL': 'claudia.langrock@wikimedia.de',
'DATA': [
'rebu2go'
]
},
# 'OFFICE': {
# 'MAIL': 'office@wikimedia.de',
# 'DATA': [
# 'transponder', 'special', 'post_office_box', 'mobile',
# 'works_in_gs', 'desk',
# ],
# },
# 'KOMM': {
# 'MAIL': 'presse@wikimedia.de',
# 'DATA': [
# 'department', 'team', 'add_to_wikimediade'
# ],
# },
# 'CENTRAL': {
# 'MAIL': 'anna.noelte@wikimedia.de',
# 'DATA': [
# 'department', 'team', 'language', 'mobile', 'rebu2go'
# ],
# },
# 'HR': {
# 'MAIL': 'personal@wikimedia.de',
# 'DATA': [
# 'department', 'team', 'language',
# ]
# },
# 'FINANCE': {
# 'MAIL': 'claudia.langrock@wikimedia.de',
# 'DATA': [
# 'rebu2go'
# ]
# },
'SUBMITTER': {
'MAIL': 'submitter@wikimedia.de',
'DATA': [
'department', 'team', 'add_to_wikimediade', 'remote', 'desk', 'vendor',
'os', 'screen', 'mobile', 'landline', 'keyboard', 'comment', 'language',
'accounts', 'lists', 'rebu2go', 'transponder', 'special', 'post_office_box'
'department',
'team',
'add_to_wikimediade',
'remote',
'desk',
'vendor',
'os',
'screen',
'mobile',
'landline',
'keyboard',
'comment',
'language',
'accounts',
'lists',
'rebu2go',
'transponder',
'special',
'post_office_box'
]
}
}