From 97037d44b951ced8f45804e8f48308c086fc4008 Mon Sep 17 00:00:00 2001 From: ibrahim Date: Thu, 13 Jun 2024 18:19:29 +0200 Subject: [PATCH 1/2] fix: missing intervention and measurement data when study is being duplicated --- designer_v2/lib/repositories/api_client.dart | 1 + designer_v2/lib/repositories/study_repository.dart | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/designer_v2/lib/repositories/api_client.dart b/designer_v2/lib/repositories/api_client.dart index bac273373..f9079ae0a 100644 --- a/designer_v2/lib/repositories/api_client.dart +++ b/designer_v2/lib/repositories/api_client.dart @@ -89,6 +89,7 @@ class StudyUApiClient extends SupabaseClientDependant 'study_ended_count', 'active_subject_count', 'contact', + 'created_at', ]; static final studyWithParticipantActivityColumns = [ diff --git a/designer_v2/lib/repositories/study_repository.dart b/designer_v2/lib/repositories/study_repository.dart index 448bd7abc..a2a9aa320 100644 --- a/designer_v2/lib/repositories/study_repository.dart +++ b/designer_v2/lib/repositories/study_repository.dart @@ -103,6 +103,17 @@ class StudyRepository extends ModelRepository return publishOperation.execute(); } + /// This method fetches the full study object, duplicates it and saves it as a draft. + /// Since the Study object in the dashboard is fetched with limited columns (no intervention or measurement data), + /// we need to fetch the full columns in order to duplicate it correctly. + @override + Future duplicateAndSave(Study model) async { + final Study completeModel = await apiClient.fetchStudy(model.id); + final duplicate = + completeModel.duplicateAsDraft(authRepository.currentUser!.id); + await save(duplicate); + } + @override List availableActions(Study model) { Future onDeleteCallback() { From f1b96f59433ff4eaa36afc6c1e7b825ce1bb266e Mon Sep 17 00:00:00 2001 From: Johannes Vedder Date: Fri, 14 Jun 2024 09:12:09 +0200 Subject: [PATCH 2/2] style: format --- designer_v2/lib/repositories/study_repository.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_v2/lib/repositories/study_repository.dart b/designer_v2/lib/repositories/study_repository.dart index a2a9aa320..ee5dd8d71 100644 --- a/designer_v2/lib/repositories/study_repository.dart +++ b/designer_v2/lib/repositories/study_repository.dart @@ -110,7 +110,7 @@ class StudyRepository extends ModelRepository Future duplicateAndSave(Study model) async { final Study completeModel = await apiClient.fetchStudy(model.id); final duplicate = - completeModel.duplicateAsDraft(authRepository.currentUser!.id); + completeModel.duplicateAsDraft(authRepository.currentUser!.id); await save(duplicate); }