diff --git a/austritt/settings.py b/austritt/settings.py index da19f3f..c5c00d3 100644 --- a/austritt/settings.py +++ b/austritt/settings.py @@ -25,45 +25,45 @@ MAILS = { 'documents', 'documentowner', 'mobile', - 'special_logins' + 'special_logins', ], }, 'OFFICE': { -# 'MAIL': 'office@wikimedia.de', - 'MAIL': 'julian.hahn@wikimedia.de', + 'MAIL': 'office@wikimedia.de', 'DATA': [ - 'transponder_id' + 'transponder_id', + ], + }, + 'KOMM': { + 'MAIL': 'presse@wikimedia.de', + 'DATA': [ + 'email' ], }, -# 'KOMM': { -# 'MAIL': 'presse@wikimedia.de', -# 'DATA': [ -# 'email' -# ], -# }, # 'CENTRAL': { # 'MAIL': 'anna.noelte@wikimedia.de', # 'DATA': [ # 'sim' # ], # }, -# 'HR': { -# 'MAIL': 'personal@wikimedia.de', -# 'DATA': [ -# 'overtime', -# 'holiday', -# 'laptop_id', -# 'mobile', -# 'sim', -# 'credit_card' -# ] -# }, -# 'FINANCE': { -# 'MAIL': 'claudia.langrock@wikimedia.de', -# 'DATA': [ -# 'credit_card' -# ] -# }, + 'HR': { + 'MAIL': 'personal@wikimedia.de', + 'DATA': [ + 'overtime', + 'holiday', + 'laptop_id', + 'mobile', + 'sim', + 'credit_card' + ] + }, + 'FINANCE': { + 'MAIL': 'claudia.langrock@wikimedia.de', + 'DATA': [ + 'credit_card', + 'sim' + ] + }, 'SUBMITTER': { 'MAIL': 'submitter@wikimedia.de', 'DATA': [ diff --git a/austritt/views.py b/austritt/views.py index 781beac..d0b97de 100644 --- a/austritt/views.py +++ b/austritt/views.py @@ -171,7 +171,7 @@ class EvaFormView(LoginRequiredMixin, CookieWizardView): except SMTPException as error: print(error) self.instance.delete() - return HttpResponse(f'{error}
Error in sending mails (propably wrong adress?). Data not saved!') + return HttpResponse(f'{error}
Error in sending mails (probably wrong adress?). Data not saved!') except Exception as error: print(error) # self.instance.delete() diff --git a/eintritt/migrations/0009_alter_employee_landline.py b/eintritt/migrations/0009_alter_employee_landline.py new file mode 100644 index 0000000..7264b93 --- /dev/null +++ b/eintritt/migrations/0009_alter_employee_landline.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.8 on 2026-02-05 10:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('eintritt', '0008_alter_employee_os'), + ] + + operations = [ + migrations.AlterField( + model_name='employee', + name='landline', + field=models.BooleanField(default=False, verbose_name='Festnetznummer (3CX)'), + ), + ] diff --git a/eintritt/models.py b/eintritt/models.py index 9bea791..550faa4 100644 --- a/eintritt/models.py +++ b/eintritt/models.py @@ -71,7 +71,7 @@ class Employee(models.Model): 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)')) - landline = models.BooleanField(default = False, verbose_name=_('Festnetznummer (Sipgate)')) + landline = models.BooleanField(default = False, verbose_name=_('Festnetznummer (3CX)')) # 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")) diff --git a/eintritt/settings.py b/eintritt/settings.py index 7320369..c8e7e5b 100644 --- a/eintritt/settings.py +++ b/eintritt/settings.py @@ -32,12 +32,12 @@ MAILS = { 'department', 'team', 'add_to_wikimediade' ], }, - 'CENTRAL': { - 'MAIL': 'anna.noelte@wikimedia.de', - 'DATA': [ - 'department', 'team', 'language', 'mobile', 'rebu2go' - ], - }, +# 'CENTRAL': { +# 'MAIL': 'anna.noelte@wikimedia.de', +# 'DATA': [ +# 'department', 'team', 'language', 'mobile', 'rebu2go' +# ], +# }, 'HR': { 'MAIL': 'personal@wikimedia.de', 'DATA': [ @@ -47,7 +47,11 @@ MAILS = { 'FINANCE': { 'MAIL': 'claudia.langrock@wikimedia.de', 'DATA': [ - 'rebu2go' + 'rebu2go', + 'department', + 'team', + 'language', + 'mobile', ] }, 'SUBMITTER': { diff --git a/veraenderung/forms.py b/veraenderung/forms.py index 4177161..d0d58a9 100644 --- a/veraenderung/forms.py +++ b/veraenderung/forms.py @@ -75,17 +75,17 @@ class OfficeForm(EvaForm): 'post_office_box' ] -class ChangeForm(EvaForm): - class Meta: - model = Employee - fields = [ - 'firstdate_employment', - 'jobdescription_german', - 'jobdescription_english', - 'desk', - 'comment', - 'accounts', - 'lists', - 'transponder' - ] - widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}),} +#class ChangeForm(EvaForm): +# class Meta: +# model = Employee +# fields = [ +# 'firstdate_employment', +# 'jobdescription_german', +# 'jobdescription_english', +# 'desk', +# 'comment', +# 'accounts', +# 'lists', +# 'transponder' +# ] +# widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}),} diff --git a/veraenderung/migrations/0008_remove_employee_desk_and_more.py b/veraenderung/migrations/0008_remove_employee_desk_and_more.py new file mode 100644 index 0000000..cb2972b --- /dev/null +++ b/veraenderung/migrations/0008_remove_employee_desk_and_more.py @@ -0,0 +1,80 @@ +# Generated by Django 5.2.8 on 2026-02-04 13:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('veraenderung', '0007_remove_employee_screen_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='employee', + name='desk', + ), + migrations.RemoveField( + model_name='employee', + name='firstdate_presence', + ), + migrations.RemoveField( + model_name='employee', + name='works_in_gs', + ), + migrations.AddField( + model_name='employee', + name='laptop', + field=models.CharField(choices=[('NEIN', 'Nein'), ('JA', 'Ja')], default='NEIN', max_length=8, verbose_name='Wird ein neuer Laptop gebraucht?'), + ), + migrations.AddField( + model_name='employee', + name='oldaccounts', + field=models.TextField(blank=True, max_length=500, null=True, verbose_name='Nicht mehr benötigte alte Zugänge'), + ), + migrations.AddField( + model_name='employee', + name='oldlists', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Nicht mehr benötigte Mailinglisten'), + ), + migrations.AddField( + model_name='employee', + name='onboarding', + field=models.CharField(choices=[('NEIN', 'Nein'), ('JA', 'Ja')], default='NEIN', max_length=8, verbose_name='Wird wieder ein Onboarding gebraucht?'), + ), + migrations.AlterField( + model_name='employee', + name='accounts', + field=models.TextField(blank=True, max_length=500, null=True, verbose_name='Zusätzliche benötigte neue Zugänge'), + ), + migrations.AlterField( + model_name='employee', + name='department', + field=models.CharField(choices=[('COENG', 'Communitys & Engagement'), ('SOFT', 'Softwareentwicklung'), ('CENT', 'Central'), ('KOMAD', 'Kommunikation & Advocacy'), ('VOR', 'Vorstand')], max_length=5, verbose_name='neuer Bereich'), + ), + migrations.AlterField( + model_name='employee', + name='framework', + field=models.CharField(blank=True, max_length=300, null=True, verbose_name='Wenn ja, soll er vom Standard des Frameworks (Laptop) abweichen, und wenn ja, warum?'), + ), + migrations.AlterField( + model_name='employee', + name='jobdescription_english', + field=models.CharField(max_length=100, null=True, verbose_name='New Job description(english)'), + ), + migrations.AlterField( + model_name='employee', + name='jobdescription_german', + field=models.CharField(max_length=100, null=True, verbose_name='Neue Stellenbezeichnung(deutsch)'), + ), + migrations.AlterField( + model_name='employee', + name='lists', + field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Zusätzliche neue Mailinglisten'), + ), + migrations.AlterField( + model_name='employee', + name='special', + field=models.TextField(blank=True, max_length=500, null=True, verbose_name='Besondere Schließungen hier eintragen (auch bereits vergebene)'), + ), + ] diff --git a/veraenderung/migrations/0009_alter_employee_keyboard_alter_employee_os.py b/veraenderung/migrations/0009_alter_employee_keyboard_alter_employee_os.py new file mode 100644 index 0000000..cd40b00 --- /dev/null +++ b/veraenderung/migrations/0009_alter_employee_keyboard_alter_employee_os.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.8 on 2026-02-04 13:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('veraenderung', '0008_remove_employee_desk_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='employee', + name='keyboard', + field=models.CharField(choices=[('DE', 'Deutsch'), ('US', 'USA'), ('OT', 'Anderes (Bitte unten angeben)')], default='DE', max_length=2, null=True, verbose_name='Tastaturlayout'), + ), + migrations.AlterField( + model_name='employee', + name='os', + field=models.CharField(choices=[('FED', 'Fedora (Standard)'), ('WIN', 'Windows (bitte Begründung angeben)'), ('MOS', 'Mac OS (nur wenn Mac gewählt)'), ('UBU', 'Ubuntu')], default='FED', max_length=3, null=True, verbose_name='Betriebssystem'), + ), + ] diff --git a/veraenderung/migrations/0010_alter_employee_landline.py b/veraenderung/migrations/0010_alter_employee_landline.py new file mode 100644 index 0000000..dbc6ad9 --- /dev/null +++ b/veraenderung/migrations/0010_alter_employee_landline.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.8 on 2026-02-05 10:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('veraenderung', '0009_alter_employee_keyboard_alter_employee_os'), + ] + + operations = [ + migrations.AlterField( + model_name='employee', + name='landline', + field=models.BooleanField(default=False, verbose_name='Festnetznummer (3CX)'), + ), + ] diff --git a/veraenderung/models.py b/veraenderung/models.py index 4dd05bf..9308646 100644 --- a/veraenderung/models.py +++ b/veraenderung/models.py @@ -66,12 +66,12 @@ class Employee(models.Model): # IT related stuff 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')) + os = models.CharField(max_length=3, null=True, 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)')) - landline = models.BooleanField(default = False, verbose_name=_('Festnetznummer (Sipgate)')) + landline = models.BooleanField(default = False, verbose_name=_('Festnetznummer (3CX)')) # sim = models.BooleanField(default=False, verbose_name="Mobilfunkvertrag") - keyboard = models.CharField(max_length=2, choices=KEYBOARD_CHOICES.items(), default='DE', verbose_name=_("Tastaturlayout")) + keyboard = models.CharField(max_length=2, null=True, 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")) diff --git a/veraenderung/settings.py b/veraenderung/settings.py index a0efb4a..03ac39b 100644 --- a/veraenderung/settings.py +++ b/veraenderung/settings.py @@ -33,37 +33,37 @@ MAILS = { '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' -# ], -# }, + 'OFFICE': { + 'MAIL': 'office@wikimedia.de', + 'DATA': [ + 'transponder', 'special', 'post_office_box', + ], + }, + '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' -# ] -# }, + 'HR': { + 'MAIL': 'personal@wikimedia.de', + 'DATA': [ + 'department', 'team', 'language' + ] + }, + 'FINANCE': { + 'MAIL': 'claudia.langrock@wikimedia.de', + 'DATA': [ + 'rebu2go', + 'mobile', + ] + }, 'SUBMITTER': { 'MAIL': 'submitter@wikimedia.de', 'DATA': [ diff --git a/veraenderung/views.py b/veraenderung/views.py index fff1bf2..f1c80e1 100644 --- a/veraenderung/views.py +++ b/veraenderung/views.py @@ -14,8 +14,7 @@ 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, WorkingForm, ITForm, OfficeForm, DummyForm,\ - ChangeForm, TYPE_CHOICES +from .forms import PersonalForm, WorkingForm, ITForm, OfficeForm, DummyForm, TYPE_CHOICES from .settings import MAILS, EVA_MAIL, BASIC_DATA, ONLY_ONBOARDING def success(request): @@ -47,7 +46,7 @@ def change_process(wizard): class EvaFormView(LoginRequiredMixin, CookieWizardView): template_name = 'veraenderung/employee_form.html' - form_list = [PersonalForm, WorkingForm, ITForm, OfficeForm, ChangeForm, DummyForm] + form_list = [PersonalForm, WorkingForm, ITForm, OfficeForm, WorkingForm, DummyForm] instance = None choice = 'IN' @@ -90,7 +89,7 @@ class EvaFormView(LoginRequiredMixin, CookieWizardView): 'TESTMODE': testmode}) # deliver context for forms if we are in the last step - if (self.steps.step1 == 5 or (self.choice != 'IN' and self.steps.step1 == 3)): + 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