From 8fe3395ff71bfd6bcd7b4f77abbcdd8442ca086c Mon Sep 17 00:00:00 2001 From: Julian Hahn Date: Tue, 3 Mar 2026 15:29:40 +0100 Subject: [PATCH] Added changes according to Timo --- austritt/forms.py | 14 +++++++---- austritt/models.py | 24 +++++++++++-------- austritt/settings.py | 10 ++++---- .../templates/austritt/employee_form.html | 2 ++ austritt/views.py | 8 +++---- veraenderung/forms.py | 3 +-- veraenderung/models.py | 1 - veraenderung/settings.py | 3 +-- 8 files changed, 37 insertions(+), 28 deletions(-) diff --git a/austritt/forms.py b/austritt/forms.py index 142a339..e1e74dd 100644 --- a/austritt/forms.py +++ b/austritt/forms.py @@ -29,21 +29,25 @@ class PersonalForm(EvaForm): class Meta: model = Employee - fields = ['firstname', 'lastname', 'lastdate_employment', 'lastdate_office', 'lastdate_working'] + fields = ['firstname', 'lastname', 'lastdate_employment', 'lastdate_office',] widgets = {'lastdate_employment': DateInput(attrs={'type': 'date'}), - 'lastdate_office': DateInput(attrs={'type': 'date'}), - 'lastdate_working': DateInput(attrs={'type': 'date'}),} + 'lastdate_office': DateInput(attrs={'type': 'date'}),} class HRForm(EvaForm): class Meta: model = Employee - fields = ['overtime', 'holiday'] + fields = ['overtime', 'holiday', 'pension'] class ITForm(EvaForm): class Meta: model = Employee - fields = ['laptop_id', 'forward', 'forwardemail', 'documents', 'documentowner', 'mobile', 'sim', 'credit_card', 'transponder_id', 'special_logins'] + fields = ['laptop_id', 'forward', 'forwardemail', 'documents', 'documentowner', 'mobile', 'sim', 'hardware', 'special_logins'] + +class RestForm(EvaForm): + class Meta: + model = Employee + fields = ['credit_card', 'transponder_id', 'bahncard', 'website'] class DummyForm(ModelForm): class Meta: diff --git a/austritt/models.py b/austritt/models.py index fe0ee27..82b84d0 100644 --- a/austritt/models.py +++ b/austritt/models.py @@ -30,12 +30,11 @@ 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', +HARDWARE_CHOICES = {'KEYBOARD': 'Tastatur', + 'MOUSE': 'Maus', + 'MONITOR': 'Monitor', + 'HEADSET': 'Headset', + '2FA': '2FA Stick', } TRANSPONDER_CHOICES = {'NORM': _('Allgemeiner Transponder'), @@ -57,11 +56,11 @@ class Employee(models.Model): # 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")) - 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)")) + 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)")) @@ -72,9 +71,14 @@ class Employee(models.Model): 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?") + 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 (wenn bekannt)")) + 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", choices=JANEIN_CHOICES.items(), verbose_name="Bahncard-Abo vorhanden?") + + # kom related stuff + website = models.BooleanField(default=False, verbose_name="Müssen Dinge von der Webseite gelöscht werden?") \ No newline at end of file diff --git a/austritt/settings.py b/austritt/settings.py index c5c00d3..14673a2 100644 --- a/austritt/settings.py +++ b/austritt/settings.py @@ -9,9 +9,7 @@ BASIC_DATA = [ 'firstname', 'lastname', 'lastdate_employment', - 'lastdate_office', - 'lastdate_working' - ] + 'lastdate_office',] # for every department: 'MAIL' => mail adress, 'DATA': additional fields to include # also one copy with all fields to the person filling the form. MAILS = { @@ -26,6 +24,7 @@ MAILS = { 'documentowner', 'mobile', 'special_logins', + 'hardware', ], }, 'OFFICE': { @@ -37,7 +36,8 @@ MAILS = { 'KOMM': { 'MAIL': 'presse@wikimedia.de', 'DATA': [ - 'email' + 'email', + 'website', ], }, # 'CENTRAL': { @@ -51,6 +51,7 @@ MAILS = { 'DATA': [ 'overtime', 'holiday', + 'pension', 'laptop_id', 'mobile', 'sim', @@ -61,6 +62,7 @@ MAILS = { 'MAIL': 'claudia.langrock@wikimedia.de', 'DATA': [ 'credit_card', + 'bahncard', 'sim' ] }, diff --git a/austritt/templates/austritt/employee_form.html b/austritt/templates/austritt/employee_form.html index 2b7bb1e..d6d448f 100644 --- a/austritt/templates/austritt/employee_form.html +++ b/austritt/templates/austritt/employee_form.html @@ -48,6 +48,8 @@ {% translate "Personal-relevante Angaben" %} {% elif wizard.steps.step1 == 3 %} {% translate "IT-relevante Angaben" %} + {% elif wizard.steps.step1 == 4 %} + {% translate "Sonstige Angaben" %} {% endif %} {% else %} diff --git a/austritt/views.py b/austritt/views.py index d0b97de..2787e65 100644 --- a/austritt/views.py +++ b/austritt/views.py @@ -13,8 +13,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.utils.translation import gettext_lazy as _ from .models import Employee, DEPARTMENT_CHOICES, OS_CHOICES, \ - LANG_CHOICES, ACCOUNT_CHOICES, TRANSPONDER_CHOICES, KEYBOARD_CHOICES, JANEIN_CHOICES -from .forms import PersonalForm, HRForm, ITForm, DummyForm, TYPE_CHOICES + LANG_CHOICES, HARDWARE_CHOICES, TRANSPONDER_CHOICES, KEYBOARD_CHOICES, JANEIN_CHOICES +from .forms import PersonalForm, HRForm, ITForm, RestForm, DummyForm, TYPE_CHOICES from .settings import MAILS, EVA_MAIL, BASIC_DATA, ONLY_ONBOARDING def success(request): @@ -46,7 +46,7 @@ def change_process(wizard): class EvaFormView(LoginRequiredMixin, CookieWizardView): template_name = 'austritt/employee_form.html' - form_list = [PersonalForm, HRForm, ITForm, DummyForm] + form_list = [PersonalForm, HRForm, ITForm, RestForm, DummyForm] instance = None choice = 'IN' @@ -89,7 +89,7 @@ class EvaFormView(LoginRequiredMixin, CookieWizardView): 'TESTMODE': testmode}) # deliver context for forms if we are in the last step - if (self.steps.step1 == 4 or (self.choice != 'IN' and self.steps.step1 == 4)): + if (self.steps.step1 == 5 or (self.choice != 'IN' and self.steps.step1 == 5)): context.update({'data': self.beautify_data(self.get_all_cleaned_data()), 'datatable': True,}) return context diff --git a/veraenderung/forms.py b/veraenderung/forms.py index d0d58a9..4026110 100644 --- a/veraenderung/forms.py +++ b/veraenderung/forms.py @@ -41,8 +41,7 @@ class WorkingForm(EvaForm): class Meta: model = Employee - fields = ['firstdate_employment', 'jobdescription_german', - 'jobdescription_english',] + fields = ['firstdate_employment', 'jobdescription_german',] widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}), 'firstdate_presence': DateInput(attrs={'type': 'date'}),} diff --git a/veraenderung/models.py b/veraenderung/models.py index 9308646..263ec44 100644 --- a/veraenderung/models.py +++ b/veraenderung/models.py @@ -61,7 +61,6 @@ class Employee(models.Model): # general work related stuff firstdate_employment = models.DateField(null=True, verbose_name=_("Erster Arbeitstag")) 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 laptop = models.CharField(max_length=8, choices=JANEIN_CHOICES.items(), default='NEIN', verbose_name=_('Wird ein neuer Laptop gebraucht?')) diff --git a/veraenderung/settings.py b/veraenderung/settings.py index 03ac39b..b3b7fcf 100644 --- a/veraenderung/settings.py +++ b/veraenderung/settings.py @@ -8,8 +8,7 @@ EVA_MAIL = 'it-support@wikimedia.de' BASIC_DATA = ['firstname', 'lastname', 'firstdate_employment', - 'jobdescription_german', - 'jobdescription_english',] + 'jobdescription_german',] # for every department: 'MAIL' => mail adress, 'DATA': additional fields to include # also one copy with all fields to the person filling the form.