Es kann jetzt auch ausgetreten und verändert werden
This commit is contained in:
parent
f2ec045987
commit
fecf76028a
|
|
@ -25,45 +25,45 @@ MAILS = {
|
||||||
'documents',
|
'documents',
|
||||||
'documentowner',
|
'documentowner',
|
||||||
'mobile',
|
'mobile',
|
||||||
'special_logins'
|
'special_logins',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'OFFICE': {
|
'OFFICE': {
|
||||||
# 'MAIL': 'office@wikimedia.de',
|
'MAIL': 'office@wikimedia.de',
|
||||||
'MAIL': 'julian.hahn@wikimedia.de',
|
|
||||||
'DATA': [
|
'DATA': [
|
||||||
'transponder_id'
|
'transponder_id',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'KOMM': {
|
||||||
|
'MAIL': 'presse@wikimedia.de',
|
||||||
|
'DATA': [
|
||||||
|
'email'
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
# 'KOMM': {
|
|
||||||
# 'MAIL': 'presse@wikimedia.de',
|
|
||||||
# 'DATA': [
|
|
||||||
# 'email'
|
|
||||||
# ],
|
|
||||||
# },
|
|
||||||
# 'CENTRAL': {
|
# 'CENTRAL': {
|
||||||
# 'MAIL': 'anna.noelte@wikimedia.de',
|
# 'MAIL': 'anna.noelte@wikimedia.de',
|
||||||
# 'DATA': [
|
# 'DATA': [
|
||||||
# 'sim'
|
# 'sim'
|
||||||
# ],
|
# ],
|
||||||
# },
|
# },
|
||||||
# 'HR': {
|
'HR': {
|
||||||
# 'MAIL': 'personal@wikimedia.de',
|
'MAIL': 'personal@wikimedia.de',
|
||||||
# 'DATA': [
|
'DATA': [
|
||||||
# 'overtime',
|
'overtime',
|
||||||
# 'holiday',
|
'holiday',
|
||||||
# 'laptop_id',
|
'laptop_id',
|
||||||
# 'mobile',
|
'mobile',
|
||||||
# 'sim',
|
'sim',
|
||||||
# 'credit_card'
|
'credit_card'
|
||||||
# ]
|
]
|
||||||
# },
|
},
|
||||||
# 'FINANCE': {
|
'FINANCE': {
|
||||||
# 'MAIL': 'claudia.langrock@wikimedia.de',
|
'MAIL': 'claudia.langrock@wikimedia.de',
|
||||||
# 'DATA': [
|
'DATA': [
|
||||||
# 'credit_card'
|
'credit_card',
|
||||||
# ]
|
'sim'
|
||||||
# },
|
]
|
||||||
|
},
|
||||||
'SUBMITTER': {
|
'SUBMITTER': {
|
||||||
'MAIL': 'submitter@wikimedia.de',
|
'MAIL': 'submitter@wikimedia.de',
|
||||||
'DATA': [
|
'DATA': [
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ class EvaFormView(LoginRequiredMixin, CookieWizardView):
|
||||||
except SMTPException as error:
|
except SMTPException as error:
|
||||||
print(error)
|
print(error)
|
||||||
self.instance.delete()
|
self.instance.delete()
|
||||||
return HttpResponse(f'{error}<p>Error in sending mails (propably wrong adress?). Data not saved!')
|
return HttpResponse(f'{error}<p>Error in sending mails (probably wrong adress?). Data not saved!')
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
print(error)
|
print(error)
|
||||||
# self.instance.delete()
|
# self.instance.delete()
|
||||||
|
|
|
||||||
|
|
@ -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)'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -71,7 +71,7 @@ class Employee(models.Model):
|
||||||
os = models.CharField(max_length=3, choices=OS_CHOICES.items(), default='FED', verbose_name=_('Betriebssystem'))
|
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.'))
|
#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)'))
|
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")
|
# 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, 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"))
|
comment = models.TextField(max_length=500, null=True, blank=True, verbose_name=_("zusätzliche IT-Anforderungen"))
|
||||||
|
|
|
||||||
|
|
@ -32,12 +32,12 @@ MAILS = {
|
||||||
'department', 'team', 'add_to_wikimediade'
|
'department', 'team', 'add_to_wikimediade'
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'CENTRAL': {
|
# 'CENTRAL': {
|
||||||
'MAIL': 'anna.noelte@wikimedia.de',
|
# 'MAIL': 'anna.noelte@wikimedia.de',
|
||||||
'DATA': [
|
# 'DATA': [
|
||||||
'department', 'team', 'language', 'mobile', 'rebu2go'
|
# 'department', 'team', 'language', 'mobile', 'rebu2go'
|
||||||
],
|
# ],
|
||||||
},
|
# },
|
||||||
'HR': {
|
'HR': {
|
||||||
'MAIL': 'personal@wikimedia.de',
|
'MAIL': 'personal@wikimedia.de',
|
||||||
'DATA': [
|
'DATA': [
|
||||||
|
|
@ -47,7 +47,11 @@ MAILS = {
|
||||||
'FINANCE': {
|
'FINANCE': {
|
||||||
'MAIL': 'claudia.langrock@wikimedia.de',
|
'MAIL': 'claudia.langrock@wikimedia.de',
|
||||||
'DATA': [
|
'DATA': [
|
||||||
'rebu2go'
|
'rebu2go',
|
||||||
|
'department',
|
||||||
|
'team',
|
||||||
|
'language',
|
||||||
|
'mobile',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
'SUBMITTER': {
|
'SUBMITTER': {
|
||||||
|
|
|
||||||
|
|
@ -75,17 +75,17 @@ class OfficeForm(EvaForm):
|
||||||
'post_office_box'
|
'post_office_box'
|
||||||
]
|
]
|
||||||
|
|
||||||
class ChangeForm(EvaForm):
|
#class ChangeForm(EvaForm):
|
||||||
class Meta:
|
# class Meta:
|
||||||
model = Employee
|
# model = Employee
|
||||||
fields = [
|
# fields = [
|
||||||
'firstdate_employment',
|
# 'firstdate_employment',
|
||||||
'jobdescription_german',
|
# 'jobdescription_german',
|
||||||
'jobdescription_english',
|
# 'jobdescription_english',
|
||||||
'desk',
|
# 'desk',
|
||||||
'comment',
|
# 'comment',
|
||||||
'accounts',
|
# 'accounts',
|
||||||
'lists',
|
# 'lists',
|
||||||
'transponder'
|
# 'transponder'
|
||||||
]
|
# ]
|
||||||
widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}),}
|
# widgets = {'firstdate_employment': DateInput(attrs={'type': 'date'}),}
|
||||||
|
|
|
||||||
|
|
@ -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)'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -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'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -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)'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -66,12 +66,12 @@ class Employee(models.Model):
|
||||||
# IT related stuff
|
# IT related stuff
|
||||||
laptop = models.CharField(max_length=8, choices=JANEIN_CHOICES.items(), default='NEIN', verbose_name=_('Wird ein neuer Laptop gebraucht?'))
|
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?"))
|
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.'))
|
#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)'))
|
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")
|
# 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"))
|
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?'))
|
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"))
|
language = models.CharField(max_length=3, choices=LANG_CHOICES.items(), default="GER", verbose_name=_("Sprache für Onboarding"))
|
||||||
|
|
|
||||||
|
|
@ -33,37 +33,37 @@ MAILS = {
|
||||||
'language',
|
'language',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
# 'OFFICE': {
|
'OFFICE': {
|
||||||
# 'MAIL': 'office@wikimedia.de',
|
'MAIL': 'office@wikimedia.de',
|
||||||
# 'DATA': [
|
'DATA': [
|
||||||
# 'transponder', 'special', 'post_office_box', 'mobile',
|
'transponder', 'special', 'post_office_box',
|
||||||
# 'works_in_gs', 'desk',
|
],
|
||||||
# ],
|
},
|
||||||
# },
|
'KOMM': {
|
||||||
# 'KOMM': {
|
'MAIL': 'presse@wikimedia.de',
|
||||||
# 'MAIL': 'presse@wikimedia.de',
|
'DATA': [
|
||||||
# 'DATA': [
|
'department', 'team', 'add_to_wikimediade'
|
||||||
# 'department', 'team', 'add_to_wikimediade'
|
],
|
||||||
# ],
|
},
|
||||||
# },
|
|
||||||
# 'CENTRAL': {
|
# 'CENTRAL': {
|
||||||
# 'MAIL': 'anna.noelte@wikimedia.de',
|
# 'MAIL': 'anna.noelte@wikimedia.de',
|
||||||
# 'DATA': [
|
# 'DATA': [
|
||||||
# 'department', 'team', 'language', 'mobile', 'rebu2go'
|
# 'department', 'team', 'language', 'mobile', 'rebu2go'
|
||||||
# ],
|
# ],
|
||||||
# },
|
# },
|
||||||
# 'HR': {
|
'HR': {
|
||||||
# 'MAIL': 'personal@wikimedia.de',
|
'MAIL': 'personal@wikimedia.de',
|
||||||
# 'DATA': [
|
'DATA': [
|
||||||
# 'department', 'team', 'language',
|
'department', 'team', 'language'
|
||||||
# ]
|
]
|
||||||
# },
|
},
|
||||||
# 'FINANCE': {
|
'FINANCE': {
|
||||||
# 'MAIL': 'claudia.langrock@wikimedia.de',
|
'MAIL': 'claudia.langrock@wikimedia.de',
|
||||||
# 'DATA': [
|
'DATA': [
|
||||||
# 'rebu2go'
|
'rebu2go',
|
||||||
# ]
|
'mobile',
|
||||||
# },
|
]
|
||||||
|
},
|
||||||
'SUBMITTER': {
|
'SUBMITTER': {
|
||||||
'MAIL': 'submitter@wikimedia.de',
|
'MAIL': 'submitter@wikimedia.de',
|
||||||
'DATA': [
|
'DATA': [
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,7 @@ from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from .models import Employee, DEPARTMENT_CHOICES, OS_CHOICES, \
|
from .models import Employee, DEPARTMENT_CHOICES, OS_CHOICES, \
|
||||||
LANG_CHOICES, ACCOUNT_CHOICES, TRANSPONDER_CHOICES, KEYBOARD_CHOICES, JANEIN_CHOICES
|
LANG_CHOICES, ACCOUNT_CHOICES, TRANSPONDER_CHOICES, KEYBOARD_CHOICES, JANEIN_CHOICES
|
||||||
from .forms import PersonalForm, WorkingForm, ITForm, OfficeForm, DummyForm,\
|
from .forms import PersonalForm, WorkingForm, ITForm, OfficeForm, DummyForm, TYPE_CHOICES
|
||||||
ChangeForm, TYPE_CHOICES
|
|
||||||
from .settings import MAILS, EVA_MAIL, BASIC_DATA, ONLY_ONBOARDING
|
from .settings import MAILS, EVA_MAIL, BASIC_DATA, ONLY_ONBOARDING
|
||||||
|
|
||||||
def success(request):
|
def success(request):
|
||||||
|
|
@ -47,7 +46,7 @@ def change_process(wizard):
|
||||||
|
|
||||||
class EvaFormView(LoginRequiredMixin, CookieWizardView):
|
class EvaFormView(LoginRequiredMixin, CookieWizardView):
|
||||||
template_name = 'veraenderung/employee_form.html'
|
template_name = 'veraenderung/employee_form.html'
|
||||||
form_list = [PersonalForm, WorkingForm, ITForm, OfficeForm, ChangeForm, DummyForm]
|
form_list = [PersonalForm, WorkingForm, ITForm, OfficeForm, WorkingForm, DummyForm]
|
||||||
instance = None
|
instance = None
|
||||||
choice = 'IN'
|
choice = 'IN'
|
||||||
|
|
||||||
|
|
@ -90,7 +89,7 @@ class EvaFormView(LoginRequiredMixin, CookieWizardView):
|
||||||
'TESTMODE': testmode})
|
'TESTMODE': testmode})
|
||||||
|
|
||||||
# deliver context for forms if we are in the last step
|
# 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()),
|
context.update({'data': self.beautify_data(self.get_all_cleaned_data()),
|
||||||
'datatable': True,})
|
'datatable': True,})
|
||||||
return context
|
return context
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue