From 817635d0064d331582f1b57e5fdc81a6b72bf45b Mon Sep 17 00:00:00 2001
From: Delphine van Rossum <delphine.vanrossum@student.uclouvain.be>
Date: Wed, 12 Mar 2025 21:47:04 +0000
Subject: [PATCH] Correction Alembic script

---
 ...fa66b7_study_data_divided_in_more_field.py | 50 ++++++++++++++-----
 .../routes/admin/studies/[id]/+page.server.ts | 18 +++++--
 2 files changed, 51 insertions(+), 17 deletions(-)

diff --git a/backend/alembic/versions/c4ff1cfa66b7_study_data_divided_in_more_field.py b/backend/alembic/versions/c4ff1cfa66b7_study_data_divided_in_more_field.py
index b00a4956..8e74028d 100644
--- a/backend/alembic/versions/c4ff1cfa66b7_study_data_divided_in_more_field.py
+++ b/backend/alembic/versions/c4ff1cfa66b7_study_data_divided_in_more_field.py
@@ -20,18 +20,44 @@ depends_on: Union[str, Sequence[str], None] = None
 
 
 def upgrade() -> None:
-    op.drop_column("studies", "consent_study_data")
-    op.add_column(
-        "studies", sa.Column("study_data_organisation", sa.String, nullable=False)
-    )
-    op.add_column("studies", sa.Column("study_data_address", sa.String, nullable=False))
-    op.add_column("studies", sa.Column("study_data_contact", sa.String, nullable=False))
-    op.add_column("studies", sa.Column("study_data_email", sa.String, nullable=False))
+    with op.batch_alter_table("studies") as batch_op:
+        batch_op.drop_column("consent_study_data")
+        batch_op.add_column(
+            sa.Column(
+                "study_data_organisation", sa.String, nullable=False, server_default=""
+            ),
+        )
+        batch_op.add_column(
+            sa.Column(
+                "study_data_address", sa.String, nullable=False, server_default=""
+            ),
+        )
+        batch_op.add_column(
+            sa.Column(
+                "study_data_contact", sa.String, nullable=False, server_default=""
+            ),
+        )
+        batch_op.add_column(
+            sa.Column("study_data_email", sa.String, nullable=False, server_default=""),
+        )
+
+    with op.batch_alter_table("studies") as batch_op:
+        batch_op.alter_column("study_data_organisation", server_default=None)
+        batch_op.alter_column("study_data_address", server_default=None)
+        batch_op.alter_column("study_data_contact", server_default=None)
+        batch_op.alter_column("study_data_email", server_default=None)
 
 
 def downgrade() -> None:
-    op.add_column("studies", sa.Column("consent_study_data", sa.String, nullable=False))
-    op.drop_column("studies", "study_data_organisation")
-    op.drop_column("studies", "study_data_address")
-    op.drop_column("studies", "study_data_contact")
-    op.drop_column("studies", "study_data_email")
+    with op.batch_alter_table("studies") as batch_op:
+        batch_op.add_column(
+            sa.Column(
+                "consent_study_data", sa.String, nullable=False, server_default=""
+            ),
+        )
+        batch_op.drop_column("study_data_organisation")
+        batch_op.drop_column("study_data_address")
+        batch_op.drop_column("study_data_contact")
+        batch_op.drop_column("study_data_email")
+
+    op.alter_column("studies", "consent_study_data", server_default=None)
diff --git a/frontend/src/routes/admin/studies/[id]/+page.server.ts b/frontend/src/routes/admin/studies/[id]/+page.server.ts
index 389eb799..8fc7c066 100644
--- a/frontend/src/routes/admin/studies/[id]/+page.server.ts
+++ b/frontend/src/routes/admin/studies/[id]/+page.server.ts
@@ -17,7 +17,10 @@ export const actions: Actions = {
 		const consentParticipation = formData.get('consentParticipation')?.toString();
 		const consentPrivacy = formData.get('consentPrivacy')?.toString();
 		const consentRights = formData.get('consentRights')?.toString();
-		const consentStudyData = formData.get('consentStudyData')?.toString();
+		const studyOrganisation = formData.get('StudyOrganisation')?.toString();
+		const studyAddress = formData.get('StudyAddress')?.toString();
+		const studyContact = formData.get('StudyContact')?.toString();
+		const studyPIemail = formData.get('StudyPIemail')?.toString();
 
 		if (
 			!title ||
@@ -27,9 +30,12 @@ export const actions: Actions = {
 			!consentParticipation ||
 			!consentPrivacy ||
 			!consentRights ||
-			!consentStudyData
+			!studyOrganisation ||
+			!studyAddress ||
+			!studyContact ||
+			!studyPIemail
 		) {
-			return { message: 'Invalid request' };
+			return { message: 'Invalid request: : Missing required fields' };
 		}
 
 		const startDate = new Date(startDateStr);
@@ -67,10 +73,12 @@ export const actions: Actions = {
 			consent_participation: consentParticipation,
 			consent_privacy: consentPrivacy,
 			consent_rights: consentRights,
-			consent_study_data: consentStudyData,
+			study_data_organisation: studyOrganisation,
+			study_data_address: studyAddress,
+			study_data_contact: studyContact,
+			study_data_email: studyPIemail,
 			user_ids
 		});
-
 		if (!updated) return { message: 'Failed to update study' };
 
 		return redirect(303, '/admin/studies');
-- 
GitLab