diff --git a/backend/locale/en/LC_MESSAGES/django.po b/backend/locale/en/LC_MESSAGES/django.po index ab3f309..4c55457 100644 --- a/backend/locale/en/LC_MESSAGES/django.po +++ b/backend/locale/en/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: tubco-portal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-24 12:58+0000\n" +"POT-Creation-Date: 2026-03-24 13:05+0000\n" "PO-Revision-Date: 2026-03-24 00:00+0000\n" "Language: en\n" "MIME-Version: 1.0\n" @@ -262,6 +262,43 @@ msgstr "deployment, security, and maintenance notes" msgid "Open Developer Handbook" msgstr "Open Developer Handbook" +#: workflows/templates/workflows/handbook.html:67 +#: workflows/templates/workflows/release_checklist.html:36 +msgid "Release" +msgstr "" + +#: workflows/templates/workflows/handbook.html:68 +#: workflows/templates/workflows/release_checklist.html:7 +#: workflows/templates/workflows/release_checklist.html:38 +msgid "Release Checklist" +msgstr "" + +#: workflows/templates/workflows/handbook.html:69 +msgid "" +"Step-by-step release runbook for rebuilds, migrations, translations, static " +"assets, smoke checks, and rollout verification." +msgstr "" + +#: workflows/templates/workflows/handbook.html:71 +msgid "pre-release validation commands" +msgstr "" + +#: workflows/templates/workflows/handbook.html:72 +msgid "translation, static, and migration steps" +msgstr "" + +#: workflows/templates/workflows/handbook.html:73 +msgid "post-release smoke checks" +msgstr "" + +#: workflows/templates/workflows/handbook.html:74 +msgid "rollback and evidence checklist" +msgstr "" + +#: workflows/templates/workflows/handbook.html:77 +msgid "Open Release Checklist" +msgstr "" + #: workflows/templates/workflows/home.html:8 #: workflows/templates/workflows/home.html:469 #: workflows/templates/workflows/requests_dashboard.html:1118 @@ -915,6 +952,167 @@ msgstr "Generate live protocol" msgid "Live-Protokoll öffnen" msgstr "Open live protocol" +#: workflows/templates/workflows/release_checklist.html:39 +#, fuzzy +#| msgid "Back to Home" +msgid "Back to Handbook" +msgstr "Back to home" + +#: workflows/templates/workflows/release_checklist.html:41 +msgid "" +"Single runbook for preparing, validating, and evidencing a safe application " +"release. Use it for both local production-like rollouts and future CI/CD " +"handoffs." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:46 +msgid "1. Pre-release checks" +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:48 +msgid "Confirm git working tree is clean or intentionally scoped." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:49 +msgid "" +"Read the latest Project Wiki and Developer Handbook updates for architecture " +"changes." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:50 +msgid "" +"Check environment changes in .env.example and deployment secrets if " +"integrations changed." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:51 +msgid "" +"If dependencies changed, rebuild web and worker images before validation." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:58 +msgid "2. Validation commands" +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:60 +msgid "Run Django system checks." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:61 +msgid "Run tests or a targeted verification command for the changed area." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:62 +msgid "Compile translations after UI/content changes." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:63 +msgid "If dependencies changed, verify imports do not emit warnings." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:72 +msgid "3. Data and asset steps" +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:74 +msgid "Create and apply migrations if models changed." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:75 +msgid "Run collectstatic if UI assets changed." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:76 +msgid "Generate fresh PDFs if PDF templates or document logic changed." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:77 +msgid "Confirm file outputs appear under backend/media/pdfs/." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:85 +#, fuzzy +#| msgid "Integrationen" +msgid "4. Integration checks" +msgstr "Integrations" + +#: workflows/templates/workflows/release_checklist.html:87 +msgid "Verify the health endpoint returns status ok." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:88 +msgid "Verify MailHog in test mode or SMTP in production mode." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:89 +msgid "Verify Nextcloud upload if synchronization behavior changed." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:90 +msgid "" +"Verify welcome-email scheduling or notification rules if email routing " +"changed." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:97 +msgid "5. Release evidence" +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:99 +msgid "Record which checks were run and their result." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:100 +msgid "Take a snapshot commit before moving to the next change phase." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:101 +msgid "" +"If a release introduces new operations or engineering behavior, update both " +"handbooks." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:102 +msgid "" +"Keep at least one successful onboarding and one offboarding smoke example " +"during major workflow changes." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:107 +msgid "6. Rollback basics" +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:109 +msgid "" +"If rollout fails after code-only changes, redeploy the previous snapshot " +"commit." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:110 +msgid "" +"If rollout includes schema changes, verify backward compatibility before " +"rollback." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:111 +msgid "" +"If integrations fail, switch email mode/test settings conservatively before " +"wider retry." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:112 +msgid "" +"Use logs from web and worker containers to isolate whether the issue is " +"request, task, or integration related." +msgstr "" + +#: workflows/templates/workflows/release_checklist.html:119 +msgid "" +"Project rule: German remains the primary/fallback language. English is " +"secondary. If a release adds new dynamic text, add the German source first " +"and then the English value." +msgstr "" + #: workflows/templates/workflows/requests_dashboard.html:899 msgid "" "Steuert Onboarding- und Offboarding-Prozesse an einem Ort. Die Oberfläche " @@ -1230,45 +1428,45 @@ msgstr "Finish" msgid "Notizen und Freigabe" msgstr "Notes and approval" -#: workflows/views.py:239 +#: workflows/views.py:245 msgid "Sie haben keine Berechtigung für diese Aktion." msgstr "You do not have permission for this action." -#: workflows/views.py:248 +#: workflows/views.py:254 msgid "Keine Einträge ausgewählt." msgstr "No entries selected." -#: workflows/views.py:277 +#: workflows/views.py:283 #, python-format msgid "%(count)s Eintrag/Einträge gelöscht." msgstr "%(count)s entry/entries deleted." -#: workflows/views.py:279 +#: workflows/views.py:285 #, python-format msgid "%(count)s Auswahl(en) konnten nicht verarbeitet werden." msgstr "%(count)s selection(s) could not be processed." -#: workflows/views.py:281 +#: workflows/views.py:287 msgid "Keine passenden Einträge gefunden." msgstr "No matching entries found." -#: workflows/views.py:440 +#: workflows/views.py:446 msgid "Einweisungs- und Übergabeprotokoll wurde erzeugt." msgstr "Introduction and handover protocol was generated." -#: workflows/views.py:457 +#: workflows/views.py:463 msgid "Einweisungsprotokoll aus Live-Status wurde erzeugt." msgstr "Introduction protocol from live status was generated." -#: workflows/views.py:486 +#: workflows/views.py:492 msgid "Einweisung wurde zurückgesetzt." msgstr "Introduction was reset." -#: workflows/views.py:492 +#: workflows/views.py:498 msgid "Einweisung wurde als abgeschlossen gespeichert." msgstr "Introduction was saved as completed." -#: workflows/views.py:497 +#: workflows/views.py:503 msgid "Einweisung wurde als Entwurf gespeichert." msgstr "Introduction was saved as draft." diff --git a/backend/workflows/templates/workflows/developer_handbook.html b/backend/workflows/templates/workflows/developer_handbook.html index 03c508a..ca66e2d 100644 --- a/backend/workflows/templates/workflows/developer_handbook.html +++ b/backend/workflows/templates/workflows/developer_handbook.html @@ -194,6 +194,7 @@ docker compose exec -T web python manage.py run_staging_e2e_check
check after model/view/template changes.{% trans "Step-by-step release runbook for rebuilds, migrations, translations, static assets, smoke checks, and rollout verification." %}
+PDF erzeugen, Neu erzeugen, and PDF öffnen actions directly on onboarding rows in the Requests Dashboard.{% trans "Single runbook for preparing, validating, and evidencing a safe application release. Use it for both local production-like rollouts and future CI/CD handoffs." %}
+git status --short
+docker compose up -d --build web worker
+ docker compose exec -T web python manage.py check
+docker compose exec -T web python manage.py test
+make i18n-compile
+docker compose exec -T web python -c "import requests"
+ docker compose exec -T web python manage.py makemigrations
+docker compose exec -T web python manage.py migrate
+docker compose exec -T web python manage.py collectstatic --noinput
+ curl --max-time 8 http://127.0.0.1:8088/healthz/
+docker compose exec -T web python manage.py run_staging_e2e_check
+ docker compose logs --no-color --tail=200 web
+docker compose logs --no-color --tail=200 worker
+