snapshot: preserve bilingual core UI and gettext workflow state
This commit is contained in:
@@ -15,6 +15,7 @@ from django.http import JsonResponse
|
||||
from django.views.decorators.http import require_POST
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext as _, gettext_lazy
|
||||
|
||||
from .forms import OffboardingRequestForm, OnboardingRequestForm
|
||||
from .form_builder import (
|
||||
@@ -71,10 +72,10 @@ ONBOARDING_CHECKBOX_LISTS = {
|
||||
}
|
||||
ONBOARDING_SECTION_ORDER = ['stammdaten', 'vertrag', 'itsetup', 'abschluss']
|
||||
ONBOARDING_SECTION_META = {
|
||||
'stammdaten': {'title': 'Stammdaten', 'subtitle': 'Person, Rolle, Abteilung'},
|
||||
'vertrag': {'title': 'Vertrag', 'subtitle': 'Beschäftigung und Termine'},
|
||||
'itsetup': {'title': 'IT-Setup', 'subtitle': 'Geräte, Software und Zugänge'},
|
||||
'abschluss': {'title': 'Abschluss', 'subtitle': 'Notizen und Freigabe'},
|
||||
'stammdaten': {'title': gettext_lazy('Stammdaten'), 'subtitle': gettext_lazy('Person, Rolle, Abteilung')},
|
||||
'vertrag': {'title': gettext_lazy('Vertrag'), 'subtitle': gettext_lazy('Beschäftigung und Termine')},
|
||||
'itsetup': {'title': gettext_lazy('IT-Setup'), 'subtitle': gettext_lazy('Geräte, Software und Zugänge')},
|
||||
'abschluss': {'title': gettext_lazy('Abschluss'), 'subtitle': gettext_lazy('Notizen und Freigabe')},
|
||||
}
|
||||
|
||||
|
||||
@@ -218,7 +219,7 @@ def project_wiki_page(request):
|
||||
def requests_dashboard(request):
|
||||
if request.method == 'POST':
|
||||
if not request.user.is_staff:
|
||||
messages.error(request, 'Sie haben keine Berechtigung für diese Aktion.')
|
||||
messages.error(request, _('Sie haben keine Berechtigung für diese Aktion.'))
|
||||
return redirect('requests_dashboard')
|
||||
|
||||
selected = request.POST.getlist('selected_requests')
|
||||
@@ -227,7 +228,7 @@ def requests_dashboard(request):
|
||||
selected = [single_delete]
|
||||
|
||||
if not selected:
|
||||
messages.warning(request, 'Keine Einträge ausgewählt.')
|
||||
messages.warning(request, _('Keine Einträge ausgewählt.'))
|
||||
return redirect('requests_dashboard')
|
||||
|
||||
deleted_count = 0
|
||||
@@ -256,11 +257,11 @@ def requests_dashboard(request):
|
||||
deleted_count += 1
|
||||
|
||||
if deleted_count:
|
||||
messages.success(request, f'{deleted_count} Eintrag/Einträge gelöscht.')
|
||||
messages.success(request, _('%(count)s Eintrag/Einträge gelöscht.') % {'count': deleted_count})
|
||||
if invalid_count:
|
||||
messages.warning(request, f'{invalid_count} Auswahl(en) konnten nicht verarbeitet werden.')
|
||||
messages.warning(request, _('%(count)s Auswahl(en) konnten nicht verarbeitet werden.') % {'count': invalid_count})
|
||||
if not deleted_count and not invalid_count:
|
||||
messages.info(request, 'Keine passenden Einträge gefunden.')
|
||||
messages.info(request, _('Keine passenden Einträge gefunden.'))
|
||||
return redirect('requests_dashboard')
|
||||
|
||||
search_query = request.GET.get('q', '').strip()
|
||||
@@ -418,7 +419,7 @@ def generate_onboarding_intro_pdf(request, request_id: int):
|
||||
pdf_path = _generate_onboarding_intro_pdf(obj)
|
||||
obj.intro_pdf_path = str(pdf_path)
|
||||
obj.save(update_fields=['intro_pdf_path'])
|
||||
messages.success(request, 'Einweisungs- und Übergabeprotokoll wurde erzeugt.')
|
||||
messages.success(request, _('Einweisungs- und Übergabeprotokoll wurde erzeugt.'))
|
||||
return redirect('requests_dashboard')
|
||||
|
||||
|
||||
@@ -431,7 +432,7 @@ def generate_onboarding_intro_session_pdf(request, request_id: int):
|
||||
pdf_path = _generate_onboarding_intro_session_pdf(session, admin_signature_name=_display_user_name(request.user))
|
||||
session.exported_pdf_path = str(pdf_path)
|
||||
session.save(update_fields=['exported_pdf_path'])
|
||||
messages.success(request, 'Einweisungsprotokoll aus Live-Status wurde erzeugt.')
|
||||
messages.success(request, _('Einweisungsprotokoll aus Live-Status wurde erzeugt.'))
|
||||
return redirect('onboarding_intro_session_page', request_id=request_id)
|
||||
|
||||
|
||||
@@ -460,18 +461,18 @@ def onboarding_intro_session_page(request, request_id: int):
|
||||
session.completed_by_name = ''
|
||||
session.exported_pdf_path = ''
|
||||
session.save(update_fields=['checklist_state', 'notes', 'status', 'completed_at', 'completed_by_name', 'exported_pdf_path'])
|
||||
messages.success(request, 'Einweisung wurde zurückgesetzt.')
|
||||
messages.success(request, _('Einweisung wurde zurückgesetzt.'))
|
||||
return redirect('onboarding_intro_session_page', request_id=request_id)
|
||||
if action == 'complete':
|
||||
session.status = 'completed'
|
||||
session.completed_at = timezone.now()
|
||||
session.completed_by_name = _display_user_name(request.user)
|
||||
messages.success(request, 'Einweisung wurde als abgeschlossen gespeichert.')
|
||||
messages.success(request, _('Einweisung wurde als abgeschlossen gespeichert.'))
|
||||
else:
|
||||
session.status = 'draft'
|
||||
session.completed_at = None
|
||||
session.completed_by_name = ''
|
||||
messages.success(request, 'Einweisung wurde als Entwurf gespeichert.')
|
||||
messages.success(request, _('Einweisung wurde als Entwurf gespeichert.'))
|
||||
session.save()
|
||||
return redirect('onboarding_intro_session_page', request_id=request_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user