From 4a78b4847ca18037ed0046427bb5b04c73720364 Mon Sep 17 00:00:00 2001 From: afonso pinto Date: Thu, 29 May 2025 22:33:46 +0100 Subject: [PATCH 1/4] chore: Update nginx config to proxy to http --- applications/composer/deploy/values-dev.yaml | 2 +- applications/composer/nginx.conf | 2 +- applications/composer/scripts/runserver.sh | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/applications/composer/deploy/values-dev.yaml b/applications/composer/deploy/values-dev.yaml index d6953961..37c6536c 100644 --- a/applications/composer/deploy/values-dev.yaml +++ b/applications/composer/deploy/values-dev.yaml @@ -5,4 +5,4 @@ harness: roles: [ ] envmap: PRODUCTION: False - HTTPS: True \ No newline at end of file + HTTPS: False \ No newline at end of file diff --git a/applications/composer/nginx.conf b/applications/composer/nginx.conf index 860eb539..09c9c56d 100644 --- a/applications/composer/nginx.conf +++ b/applications/composer/nginx.conf @@ -34,7 +34,7 @@ http { # Proxy API/Admin to Django location ~* ^/(admin|api|logged-out|login|composer|complete|disconnect|__debug__)/.*$ { - proxy_pass https://127.0.0.1:8000; + proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; diff --git a/applications/composer/scripts/runserver.sh b/applications/composer/scripts/runserver.sh index 12050d0a..df240554 100644 --- a/applications/composer/scripts/runserver.sh +++ b/applications/composer/scripts/runserver.sh @@ -20,20 +20,23 @@ python3 manage.py migrate # Determine server to run if [ "$DEBUG" = "true" ]; then - echo "DEBUG mode enabled: running Django dev server" if [ "$HTTPS" = "true" ]; then + echo "Debug mode: running Django dev server with SSL" python3 manage.py runsslserver 0.0.0.0:${PORT} else + echo "Debug mode: running Django dev server" python3 manage.py runserver 0.0.0.0:${PORT} fi elif [ "$PRODUCTION" = "true" ]; then echo "PRODUCTION mode: running Uvicorn" python3 -m uvicorn --workers ${WORKERS} --host 0.0.0.0 --port ${PORT} ${MODULE_NAME}.asgi:application else - echo "Falling back to dev server (PRODUCTION != true)" + if [ "$HTTPS" = "true" ]; then + echo "Dev mode: running Django dev server with SSL" python3 manage.py runsslserver 0.0.0.0:${PORT} else + echo "Dev mode: running Django dev server" python3 manage.py runserver 0.0.0.0:${PORT} fi fi From 8b6522053d8c34637c1b4dec5867301bd8849291 Mon Sep 17 00:00:00 2001 From: afonso pinto Date: Tue, 17 Jun 2025 15:55:59 +0100 Subject: [PATCH 2/4] feat: Update export batch metrics --- .../backend/composer/services/export/export_services.py | 4 ++++ .../backend/composer/services/export/helpers/export_batch.py | 5 ----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/applications/composer/backend/composer/services/export/export_services.py b/applications/composer/backend/composer/services/export/export_services.py index 48773ea9..81745d51 100644 --- a/applications/composer/backend/composer/services/export/export_services.py +++ b/applications/composer/backend/composer/services/export/export_services.py @@ -9,6 +9,7 @@ transition_statements_to_exported, ) from composer.models import ( + ConnectivityStatement, ExportBatch, ) @@ -20,5 +21,8 @@ def export_connectivity_statements( export_batch = create_export_batch(user) export_batch = transition_statements_to_exported(export_batch, qs, user) + all_statement_ids = ConnectivityStatement.objects.only('id').iterator() + export_batch.connectivity_statements.set(all_statement_ids) + export_file = create_csv(export_batch, output_path) return export_file, export_batch diff --git a/applications/composer/backend/composer/services/export/helpers/export_batch.py b/applications/composer/backend/composer/services/export/helpers/export_batch.py index 6cf8d2e0..1b343af3 100644 --- a/applications/composer/backend/composer/services/export/helpers/export_batch.py +++ b/applications/composer/backend/composer/services/export/helpers/export_batch.py @@ -26,8 +26,6 @@ def transition_statements_to_exported(export_batch: ExportBatch, qs: QuerySet, u """Transitions only eligible ConnectivityStatements""" system_user = User.objects.get(username="system") - transitioned_statements = [] - for cs in qs.order_by("id"): service = ConnectivityStatementStateService(cs) try: @@ -35,12 +33,9 @@ def transition_statements_to_exported(export_batch: ExportBatch, qs: QuerySet, u CSState.EXPORTED.value, system_user, user ) cs.save() - transitioned_statements.append(cs) except Exception as exc: pass - # Add successfully transitioned statements to the export batch - export_batch.connectivity_statements.set(transitioned_statements) return export_batch def compute_metrics(export_batch: ExportBatch): From 382ccfa50987e0d4cf83d0efbd591803cb0d5947 Mon Sep 17 00:00:00 2001 From: afonso pinto Date: Tue, 17 Jun 2025 23:06:52 +0100 Subject: [PATCH 3/4] fix: Save export batch metrics --- applications/composer/backend/composer/models.py | 4 ++-- .../backend/composer/services/export/export_services.py | 6 +++--- .../composer/services/export/helpers/export_batch.py | 5 ++++- applications/composer/frontend/package.json | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/applications/composer/backend/composer/models.py b/applications/composer/backend/composer/models.py index bd233ef8..460b2e25 100644 --- a/applications/composer/backend/composer/models.py +++ b/applications/composer/backend/composer/models.py @@ -1218,14 +1218,14 @@ def get_count_sentences_created_since_this_export(self): @property def get_count_connectivity_statements_created_since_this_export(self): return ConnectivityStatement.objects.filter( - created_date__gt=self.created_at, state=CSState.NPO_APPROVED + created_date__gt=self.created_at ).count() @property def get_count_connectivity_statements_modified_since_this_export(self): return ( ConnectivityStatement.objects.filter( - modified_date__gt=self.created_at, state=CSState.NPO_APPROVED + modified_date__gt=self.created_at ) .exclude(state=CSState.EXPORTED) .count() diff --git a/applications/composer/backend/composer/services/export/export_services.py b/applications/composer/backend/composer/services/export/export_services.py index 81745d51..7142fa95 100644 --- a/applications/composer/backend/composer/services/export/export_services.py +++ b/applications/composer/backend/composer/services/export/export_services.py @@ -3,6 +3,7 @@ from django.db import transaction from django.db.models import QuerySet +from composer.enums import CSState from composer.services.export.helpers.csv import create_csv from composer.services.export.helpers.export_batch import ( create_export_batch, @@ -20,9 +21,8 @@ def export_connectivity_statements( with transaction.atomic(): export_batch = create_export_batch(user) export_batch = transition_statements_to_exported(export_batch, qs, user) - - all_statement_ids = ConnectivityStatement.objects.only('id').iterator() - export_batch.connectivity_statements.set(all_statement_ids) + all_statement_ids = ConnectivityStatement.all_objects.exclude(state=CSState.DEPRECATED).values_list('pk', flat=True) + export_batch.connectivity_statements.set(all_statement_ids) export_file = create_csv(export_batch, output_path) return export_file, export_batch diff --git a/applications/composer/backend/composer/services/export/helpers/export_batch.py b/applications/composer/backend/composer/services/export/helpers/export_batch.py index 1b343af3..e3859c32 100644 --- a/applications/composer/backend/composer/services/export/helpers/export_batch.py +++ b/applications/composer/backend/composer/services/export/helpers/export_batch.py @@ -50,7 +50,7 @@ def compute_metrics(export_batch: ExportBatch): # Compute the metrics for this export if last_export_batch_created_at: sentences_created_qs = Sentence.objects.filter( - created_date__gt=last_export_batch_created_at, + created_date__gt=last_export_batch_created_at ) else: sentences_created_qs = Sentence.objects.all() @@ -62,11 +62,14 @@ def compute_metrics(export_batch: ExportBatch): ) else: connectivity_statements_created_qs = ConnectivityStatement.objects.all() + connectivity_statements_created_qs = connectivity_statements_created_qs.exclude( state=CSState.DRAFT ) # skip draft statements export_batch.connectivity_statements_created = connectivity_statements_created_qs.count() + export_batch.save(update_fields=['sentences_created', 'connectivity_statements_created']) + # Compute the state metrics for this export connectivity_statement_metrics = list( ConnectivityStatement.objects.values("state").annotate(count=Count("state")) diff --git a/applications/composer/frontend/package.json b/applications/composer/frontend/package.json index fdd67c98..27de6f83 100644 --- a/applications/composer/frontend/package.json +++ b/applications/composer/frontend/package.json @@ -3,7 +3,7 @@ "version": "5.0.0", "private": true, "main": "index.js", - "proxy": "https://localhost:8000/", + "proxy": "https://127.0.0.1:8000/", "dependencies": { "@babel/preset-env": "^7.21.5", "@dnd-kit/core": "^6.0.8", @@ -89,6 +89,6 @@ "eslint": "^8.55.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", - "typescript": "^5.8.3" + "typescript": "^4.9.5" } } From e1d36bf345c4f6e28424508583fc1e6399e85fa0 Mon Sep 17 00:00:00 2001 From: ddelpiano Date: Mon, 23 Jun 2025 14:21:50 +0200 Subject: [PATCH 4/4] fixing typescript version --- applications/composer/frontend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/composer/frontend/package.json b/applications/composer/frontend/package.json index 27de6f83..1823d595 100644 --- a/applications/composer/frontend/package.json +++ b/applications/composer/frontend/package.json @@ -89,6 +89,6 @@ "eslint": "^8.55.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", - "typescript": "^4.9.5" + "typescript": "^5.8.3" } }