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

Es kann jetzt auch ausgetreten und verändert werden

This commit is contained in:
root 2026-02-06 10:01:21 +00:00
parent f2ec045987
commit fecf76028a
12 changed files with 224 additions and 82 deletions

View File

@ -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': [

View File

@ -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()

View File

@ -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)'),
),
]

View File

@ -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"))

View File

@ -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': {

View File

@ -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'}),}

View File

@ -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)'),
),
]

View File

@ -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'),
),
]

View File

@ -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)'),
),
]

View File

@ -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"))

View File

@ -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': [

View File

@ -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