diff --git a/docs/spa-cutover-flag.md b/docs/spa-cutover-flag.md new file mode 100644 index 0000000..a0f5801 --- /dev/null +++ b/docs/spa-cutover-flag.md @@ -0,0 +1,18 @@ +# SPA cutover feature flag (`USE_SPA_UI`) + +## Formål +`USE_SPA_UI` styrer om host/player UI routes serverer Angular SPA shell eller legacy Django templates. + +## Miljø-toggle (uden kodeændring) +Sæt env var pr. miljø: + +- `USE_SPA_UI=true` -> `/lobby/ui/host` og `/lobby/ui/player` returnerer SPA shell +- `USE_SPA_UI=false` (default) -> legacy template-flow bruges uændret + +Backward compatibility under cutover: +- Hvis `USE_SPA_UI` ikke er sat, bruges `WPP_SPA_ENABLED` som fallback. + +## Verifikation +- Flag OFF: `UiScreenTests.test_legacy_templates_are_used_when_spa_flag_is_off` +- Flag ON (host): `UiScreenTests.test_host_screen_can_render_angular_shell_when_feature_flag_enabled` +- Flag ON (player): `UiScreenTests.test_player_screen_can_render_angular_shell_when_feature_flag_enabled` diff --git a/lobby/feature_flags.py b/lobby/feature_flags.py new file mode 100644 index 0000000..83ae495 --- /dev/null +++ b/lobby/feature_flags.py @@ -0,0 +1,6 @@ +from django.conf import settings + + +def use_spa_ui() -> bool: + """Central read-point for SPA cutover flag.""" + return bool(getattr(settings, "USE_SPA_UI", False)) diff --git a/lobby/templates/lobby/spa_shell.html b/lobby/templates/lobby/spa_shell.html new file mode 100644 index 0000000..c57da0a --- /dev/null +++ b/lobby/templates/lobby/spa_shell.html @@ -0,0 +1,12 @@ + + +
+ + +