From c11d59c43496ca1abfe52177394f9b40792cccc1 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Fri, 4 Apr 2025 15:31:57 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A9(backend)=20add=20feature=20flag=20?= =?UTF-8?q?for=20the=20footer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We added the feature flag `FRONTEND_FOOTER_FEATURE_ENABLED` to enable or disable the footer in the frontend. --- CHANGELOG.md | 1 + env.d/development/common.dist | 1 + src/backend/core/api/viewsets.py | 1 + src/backend/core/tests/test_api_config.py | 6 ++++-- src/backend/impress/settings.py | 5 +++++ src/frontend/apps/e2e/__tests__/app-impress/config.spec.ts | 1 + src/helm/env.d/dev/values.impress.yaml.gotmpl | 1 + 7 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e1cfb65..e3f4eb36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to ## Added +- 🚩(backend) add feature flag for the footer #841 - 🔧(backend) add view to manage footer json #841 ## Changed diff --git a/env.d/development/common.dist b/env.d/development/common.dist index fdd370e5..451a40a7 100644 --- a/env.d/development/common.dist +++ b/env.d/development/common.dist @@ -64,4 +64,5 @@ COLLABORATION_WS_URL=ws://localhost:4444/collaboration/ws/ # Frontend FRONTEND_THEME=default +FRONTEND_FOOTER_FEATURE_ENABLED=True FRONTEND_URL_JSON_FOOTER=http://frontend:3000/contents/footer-demo.json diff --git a/src/backend/core/api/viewsets.py b/src/backend/core/api/viewsets.py index b2f94972..9f8a1255 100644 --- a/src/backend/core/api/viewsets.py +++ b/src/backend/core/api/viewsets.py @@ -1692,6 +1692,7 @@ class ConfigView(drf.views.APIView): "CRISP_WEBSITE_ID", "ENVIRONMENT", "FRONTEND_CSS_URL", + "FRONTEND_FOOTER_FEATURE_ENABLED", "FRONTEND_THEME", "MEDIA_BASE_URL", "POSTHOG_KEY", diff --git a/src/backend/core/tests/test_api_config.py b/src/backend/core/tests/test_api_config.py index 1dd7f154..e6adb1ae 100644 --- a/src/backend/core/tests/test_api_config.py +++ b/src/backend/core/tests/test_api_config.py @@ -18,8 +18,9 @@ pytestmark = pytest.mark.django_db @override_settings( COLLABORATION_WS_URL="http://testcollab/", CRISP_WEBSITE_ID="123", - FRONTEND_THEME="test-theme", FRONTEND_CSS_URL="http://testcss/", + FRONTEND_FOOTER_FEATURE_ENABLED=True, + FRONTEND_THEME="test-theme", MEDIA_BASE_URL="http://testserver/", POSTHOG_KEY={"id": "132456", "host": "https://eu.i.posthog-test.com"}, SENTRY_DSN="https://sentry.test/123", @@ -39,8 +40,9 @@ def test_api_config(is_authenticated): "COLLABORATION_WS_URL": "http://testcollab/", "CRISP_WEBSITE_ID": "123", "ENVIRONMENT": "test", - "FRONTEND_THEME": "test-theme", "FRONTEND_CSS_URL": "http://testcss/", + "FRONTEND_FOOTER_FEATURE_ENABLED": True, + "FRONTEND_THEME": "test-theme", "LANGUAGES": [ ["en-us", "English"], ["fr-fr", "Français"], diff --git a/src/backend/impress/settings.py b/src/backend/impress/settings.py index 40b89ac3..9d825095 100755 --- a/src/backend/impress/settings.py +++ b/src/backend/impress/settings.py @@ -413,6 +413,11 @@ class Base(Configuration): FRONTEND_URL_JSON_FOOTER = values.Value( None, environ_name="FRONTEND_URL_JSON_FOOTER", environ_prefix=None ) + FRONTEND_FOOTER_FEATURE_ENABLED = values.BooleanValue( + default=False, + environ_name="FRONTEND_FOOTER_FEATURE_ENABLED", + environ_prefix=None, + ) FRONTEND_FOOTER_VIEW_CACHE_TIMEOUT = values.Value( 60 * 60 * 24, environ_name="FRONTEND_FOOTER_VIEW_CACHE_TIMEOUT", diff --git a/src/frontend/apps/e2e/__tests__/app-impress/config.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/config.spec.ts index dd2f33ae..5535b3b0 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/config.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/config.spec.ts @@ -10,6 +10,7 @@ const config = { COLLABORATION_WS_URL: 'ws://localhost:4444/collaboration/ws/', ENVIRONMENT: 'development', FRONTEND_CSS_URL: null, + FRONTEND_FOOTER_FEATURE_ENABLED: true, FRONTEND_THEME: 'default', MEDIA_BASE_URL: 'http://localhost:8083', LANGUAGES: [ diff --git a/src/helm/env.d/dev/values.impress.yaml.gotmpl b/src/helm/env.d/dev/values.impress.yaml.gotmpl index 79ae5787..25728d04 100644 --- a/src/helm/env.d/dev/values.impress.yaml.gotmpl +++ b/src/helm/env.d/dev/values.impress.yaml.gotmpl @@ -50,6 +50,7 @@ backend: DB_USER: dinum DB_PASSWORD: pass DB_PORT: 5432 + FRONTEND_FOOTER_FEATURE_ENABLED: true FRONTEND_URL_JSON_FOOTER: https://impress.127.0.0.1.nip.io/contents/footer-demo.json POSTGRES_DB: impress POSTGRES_USER: dinum