diff --git a/apps/api/src/db/schemas/applicationContents.ts b/apps/api/src/db/schemas/applicationContents.ts
index 2ab29e56d..c57071406 100644
--- a/apps/api/src/db/schemas/applicationContents.ts
+++ b/apps/api/src/db/schemas/applicationContents.ts
@@ -75,6 +75,7 @@ export const applicationContents = pgTable(
project_title: text(),
project_website: text(),
project_background: text(),
+ project_country: varchar({ length: 255 }),
project_methodology: text(),
project_aims: text(),
project_summary: text(),
diff --git a/apps/api/src/docs/schemas/application.yaml b/apps/api/src/docs/schemas/application.yaml
index 2986a4b84..4b4309e68 100644
--- a/apps/api/src/docs/schemas/application.yaml
+++ b/apps/api/src/docs/schemas/application.yaml
@@ -200,6 +200,9 @@ components:
projectBackground:
type: string
description: Brief description of project
+ projectCountry:
+ type: string
+ description: The country that the project's data resides in
projectMethodology:
type: string
description: Description of scientific approach used in the project
@@ -488,6 +491,9 @@ components:
projectBackground:
type: string
description: Brief description of project
+ projectCountry:
+ type: string
+ description: The country that the project's data resides in
projectMethodology:
type: string
description: Description of scientific approach used in the project
diff --git a/apps/api/src/service/pdf/components/pages/ProjectInformation.tsx b/apps/api/src/service/pdf/components/pages/ProjectInformation.tsx
index 5292ff03c..a9a6ca73e 100644
--- a/apps/api/src/service/pdf/components/pages/ProjectInformation.tsx
+++ b/apps/api/src/service/pdf/components/pages/ProjectInformation.tsx
@@ -32,6 +32,7 @@ const ProjectInformation = ({
projectTitle,
projectWebsite,
projectBackground,
+ projectCountry,
projectAims,
projectMethodology,
projectSummary,
@@ -54,6 +55,9 @@ const ProjectInformation = ({
{projectBackground}
+
+ {projectCountry}
+
{projectMethodology}
diff --git a/apps/api/src/service/pdf/components/translations/enTranslations.ts b/apps/api/src/service/pdf/components/translations/enTranslations.ts
index d478c75f5..3e8a8fdfc 100644
--- a/apps/api/src/service/pdf/components/translations/enTranslations.ts
+++ b/apps/api/src/service/pdf/components/translations/enTranslations.ts
@@ -159,6 +159,7 @@ export const PROJECT_INFORMATION: ProjectInformationTranslation = {
RESEARCH_SUMMARY_DESCRIPTION:
'This section should describe the background, aims, and methodology of your research project, as well as plans for how you will use the PCGL Controlled Data.',
PROJECT_BACKGROUND_LABEL: 'Project Background',
+ PROJECT_COUNTRY_LABEL: 'Which country will the data reside in?',
USE_OF_DATA_METHODOLOGY_LABEL: 'Use of Data and Methodology',
AIMS_LABEL: 'Aims',
LAY_SUMMARY_TITLE: 'Project Lay Summary',
diff --git a/apps/api/src/service/pdf/components/translations/frTranslations.ts b/apps/api/src/service/pdf/components/translations/frTranslations.ts
index 9b15589d8..95f698660 100644
--- a/apps/api/src/service/pdf/components/translations/frTranslations.ts
+++ b/apps/api/src/service/pdf/components/translations/frTranslations.ts
@@ -161,6 +161,7 @@ export const FR_PROJECT_INFORMATION: ProjectInformationTranslation = {
RESEARCH_SUMMARY_DESCRIPTION:
"Cette section doit décrire le contexte, les objectifs et la méthodologie de votre projet de recherche, ainsi que les plans d'utilisation des données contrôlées de la BGP.",
PROJECT_BACKGROUND_LABEL: 'Contexte',
+ PROJECT_COUNTRY_LABEL: 'Dans quel pays les données seront-elles hébergées ?',
USE_OF_DATA_METHODOLOGY_LABEL: 'Utilisation des données et méthodologie',
AIMS_LABEL: 'Objectifs',
LAY_SUMMARY_TITLE: 'Résumé vulgarisé du projet',
diff --git a/apps/api/src/service/pdf/components/translations/types.ts b/apps/api/src/service/pdf/components/translations/types.ts
index 0662d03a0..507a45715 100644
--- a/apps/api/src/service/pdf/components/translations/types.ts
+++ b/apps/api/src/service/pdf/components/translations/types.ts
@@ -197,6 +197,7 @@ export type ProjectInformationTranslation = {
RESEARCH_SUMMARY_TITLE: string;
RESEARCH_SUMMARY_DESCRIPTION: string;
PROJECT_BACKGROUND_LABEL: string;
+ PROJECT_COUNTRY_LABEL: string;
USE_OF_DATA_METHODOLOGY_LABEL: string;
AIMS_LABEL: string;
LAY_SUMMARY_TITLE: string;
diff --git a/apps/api/src/service/pdf/documents/PCGLApplication.tsx b/apps/api/src/service/pdf/documents/PCGLApplication.tsx
index 2ff448708..1ce00a9c5 100644
--- a/apps/api/src/service/pdf/documents/PCGLApplication.tsx
+++ b/apps/api/src/service/pdf/documents/PCGLApplication.tsx
@@ -167,6 +167,7 @@ const PCGLApplication = ({ applicationContents, signature, collaborators, docCre
projectTitle={contents?.projectTitle}
projectWebsite={contents?.projectWebsite}
projectBackground={contents?.projectBackground}
+ projectCountry={contents?.projectCountry}
projectAims={contents?.projectAims}
projectSummary={contents?.projectSummary}
projectMethodology={contents?.projectMethodology}
@@ -245,6 +246,7 @@ const PCGLApplication = ({ applicationContents, signature, collaborators, docCre
projectTitle={contents?.projectTitle}
projectWebsite={contents?.projectWebsite}
projectBackground={contents?.projectBackground}
+ projectCountry={contents?.projectCountry}
projectAims={contents?.projectAims}
projectSummary={contents?.projectSummary}
projectMethodology={contents?.projectMethodology}
diff --git a/apps/ui/src/components/pages/application/utils/validatorFunctions.ts b/apps/ui/src/components/pages/application/utils/validatorFunctions.ts
index d27e12698..b78a36684 100644
--- a/apps/ui/src/components/pages/application/utils/validatorFunctions.ts
+++ b/apps/ui/src/components/pages/application/utils/validatorFunctions.ts
@@ -73,6 +73,7 @@ export const ValidatorProject = (fields: ApplicationContentsResponse): boolean =
projectTitle: fields.projectTitle,
projectWebsite: fields.projectWebsite,
projectBackground: fields.projectBackground, // Abstract
+ projectCountry: fields.projectCountry,
projectAims: fields.projectAims,
projectMethodology: fields.projectMethodology,
projectSummary: fields.projectSummary,
diff --git a/apps/ui/src/i18n/locale/en/enSection.json b/apps/ui/src/i18n/locale/en/enSection.json
index da32c3e6d..d2bd27d77 100644
--- a/apps/ui/src/i18n/locale/en/enSection.json
+++ b/apps/ui/src/i18n/locale/en/enSection.json
@@ -101,6 +101,9 @@
"exemplar2": "If possible, include any previous research in this area that you have completed that is relevant."
}
},
+ "country": {
+ "title": "Which country will the data reside in?"
+ },
"methodology": {
"title": "Use of Data and Methodology:",
"example": {
diff --git a/apps/ui/src/i18n/locale/fr/frSection.json b/apps/ui/src/i18n/locale/fr/frSection.json
index 2991a058a..2d9f5d0f5 100644
--- a/apps/ui/src/i18n/locale/fr/frSection.json
+++ b/apps/ui/src/i18n/locale/fr/frSection.json
@@ -101,6 +101,9 @@
"exemplar2": "Si possible, incluez toute recherche antérieure pertinente que vous avez effectuée dans ce domaine."
}
},
+ "country": {
+ "title": "Dans quel pays les données seront-elles hébergées ?"
+ },
"methodology": {
"title": "Utilisation des données et méthodologie :",
"example": {
diff --git a/apps/ui/src/pages/applications/sections/project.tsx b/apps/ui/src/pages/applications/sections/project.tsx
index f18db671e..d39adff07 100644
--- a/apps/ui/src/pages/applications/sections/project.tsx
+++ b/apps/ui/src/pages/applications/sections/project.tsx
@@ -18,6 +18,7 @@
*/
import { zodResolver } from '@hookform/resolvers/zod';
+import { GC_STANDARD_GEOGRAPHIC_AREAS } from '@pcgl-daco/data-model';
import { projectInformationSchema, type ProjectInformationSchemaType } from '@pcgl-daco/validation';
import { Col, Form, Row } from 'antd';
import { createSchemaFieldRule } from 'antd-zod';
@@ -29,6 +30,7 @@ import SectionWrapper from '@/components/layouts/SectionWrapper';
import DacComments from '@/components/pages/application/collapse/DacComments';
import InputBox from '@/components/pages/application/form-components/InputBox';
import LabelWithExample from '@/components/pages/application/form-components/labels/LabelWithExample';
+import SelectBox from '@/components/pages/application/form-components/SelectBox';
import TextAreaBox from '@/components/pages/application/form-components/TextAreaBox';
import SectionContent from '@/components/pages/application/SectionContent';
import SectionFooter from '@/components/pages/application/SectionFooter';
@@ -59,6 +61,7 @@ const Project = () => {
projectTitle: state.fields.projectTitle,
projectWebsite: state.fields.projectWebsite,
projectBackground: state.fields.projectBackground,
+ projectCountry: state.fields.projectCountry,
projectAims: state.fields.projectAims,
projectMethodology: state.fields.projectMethodology,
projectSummary: state.fields.projectSummary,
@@ -94,6 +97,7 @@ const Project = () => {
projectWebsite: data.projectWebsite,
projectAims: data.projectAims,
projectBackground: data.projectBackground,
+ projectCountry: data.projectCountry,
projectMethodology: data.projectMethodology,
projectSummary: data.projectSummary,
projectPublicationUrls,
@@ -176,6 +180,22 @@ const Project = () => {
/>
+
+
+ {
+ return { value: areas.iso, label: areas.en };
+ })}
+ initialValue={'CAN'}
+ rule={rule}
+ required
+ disabled={!canEdit}
+ />
+
+