diff --git a/app/package-lock.json b/app/package-lock.json index c9cfaed86..6bd51db1a 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -2389,7 +2389,7 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, "browser-process-hrtime": { @@ -2540,7 +2540,7 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, "builtin-modules": { @@ -2552,7 +2552,7 @@ "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, "bytes": { @@ -3013,7 +3013,7 @@ "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, "content-disposition": { @@ -5469,7 +5469,7 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "requires": { "hash.js": "^1.0.3", @@ -5578,7 +5578,7 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, "iconv-lite": { @@ -7618,7 +7618,7 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, "minimatch": { @@ -8301,7 +8301,7 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, "os-homedir": { @@ -8931,7 +8931,7 @@ "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true }, "raf": { @@ -11124,7 +11124,7 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, "to-fast-properties": { @@ -11311,7 +11311,7 @@ "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", "dev": true }, "tunnel-agent": { diff --git a/app/scripts/clear-docker.sh b/app/scripts/clear-docker.sh index cfe60bfda..cb0108beb 100755 --- a/app/scripts/clear-docker.sh +++ b/app/scripts/clear-docker.sh @@ -1,5 +1,6 @@ docker stop $(docker ps -aq) docker rm $(docker ps -aq) -f docker network prune --force +docker volume prune --force docker ps diff --git a/app/scripts/montagu-api.config.properties b/app/scripts/montagu-api.config.properties new file mode 100644 index 000000000..8f9ca1a17 --- /dev/null +++ b/app/scripts/montagu-api.config.properties @@ -0,0 +1 @@ +orderlyweb.api.url=http://montagu-orderly_web-1:8888/api/v2 diff --git a/app/scripts/run-dependencies.sh b/app/scripts/run-dependencies.sh index 99126739b..1f9920249 100755 --- a/app/scripts/run-dependencies.sh +++ b/app/scripts/run-dependencies.sh @@ -28,19 +28,21 @@ docker run -v $ROOT/demo:/orderly $OW_CLI_IMAGE add-users test.user@example.com docker run -v $ROOT/demo:/orderly $OW_CLI_IMAGE grant test.user@example.com */users.manage # Run the APIs and database -docker-compose pull -docker-compose --project-name montagu up -d +docker compose pull +docker compose --project-name montagu up -d # Start the APIs -docker exec montagu_api_1 mkdir -p /etc/montagu/api/ -docker exec montagu_api_1 touch /etc/montagu/api/go_signal -# Wait for the database -docker exec montagu_db_1 montagu-wait.sh +docker exec montagu-api-1 mkdir -p /etc/montagu/api/ +docker container cp $here/montagu-api.config.properties montagu-api-1:/etc/montagu/api/config.properties +docker exec montagu-api-1 touch /etc/montagu/api/go_signal + +# Wait for the database - this can take a while on buildkite +docker exec montagu-db-1 montagu-wait.sh 300 # Migrate the database docker pull $MONTAGU_MIGRATE_IMAGE docker run --network=montagu_default $MONTAGU_MIGRATE_IMAGE #start orderly web -docker exec montagu_orderly_web_1 mkdir -p /etc/orderly/web -docker exec montagu_orderly_web_1 touch /etc/orderly/web/go_signal +docker exec montagu-orderly_web-1 mkdir -p /etc/orderly/web +docker exec montagu-orderly_web-1 touch /etc/orderly/web/go_signal diff --git a/app/scripts/run-integration-tests.sh b/app/scripts/run-integration-tests.sh index 1744c41b8..94dd1e40b 100755 --- a/app/scripts/run-integration-tests.sh +++ b/app/scripts/run-integration-tests.sh @@ -17,7 +17,7 @@ export PGPORT=5432 # script # Setup template database -docker exec montagu_db_1 psql -U vimc -d postgres -c \ +docker exec montagu-db-1 psql -U vimc -d postgres -c \ "ALTER DATABASE $PGDATABASE RENAME TO $PGTEMPLATE" # Run the tests @@ -27,8 +27,8 @@ result=$? # ------- Teardown ----------- # Restore the database -docker exec montagu_db_1 psql -U vimc -d postgres -c \ +docker exec montagu-db-1 psql -U vimc -d postgres -c \ "ALTER DATABASE $PGTEMPLATE RENAME TO $PGDATABASE" -docker logs montagu_api_1 > api.log 2> api.log +docker logs montagu-api-1 > api.log 2> api.log exit $result diff --git a/app/scripts/stop-dependencies.sh b/app/scripts/stop-dependencies.sh index a20ea71d7..56c16b70e 100755 --- a/app/scripts/stop-dependencies.sh +++ b/app/scripts/stop-dependencies.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -ex -docker-compose --project-name montagu down --volumes -docker-compose --project-name montagu rm \ No newline at end of file +docker compose --project-name montagu down --volumes +docker compose --project-name montagu rm \ No newline at end of file diff --git a/app/src/main/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescription.tsx b/app/src/main/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescription.tsx index a59b297a5..cbaace51d 100644 --- a/app/src/main/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescription.tsx +++ b/app/src/main/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescription.tsx @@ -9,6 +9,8 @@ interface ResponsibilityOverviewDescriptionProps { touchstoneStatus: string; } +const rfp2024Guidance = require('./rfp-2024-guidance.pdf'); + const ContactDetails = () => { return
If you have any questions about using Montagu, please email  @@ -68,8 +70,26 @@ const TwentyTwentyTwoRfpTouchstone = () => { We have named the anonymous pre-defined country 'RfP'.

- Output specifications guidance is available within the Guide for Applicants. To access this, go to  - https://www.vaccineimpact.org/2022-11-23-rfp/. + Output specifications guidance is available within the Guide for Applicants. To access this, go to  + https://www.vaccineimpact.org/2022-11-23-rfp/. +

+ +
+}; + +const TwentyTwentyFourRfpTouchstone = () => { + return
+ On this page you can: + +

+ We have named the anonymous pre-defined country 'RfP'. +

+

+ Output specifications guidance is available within the Guide for Applicants.

@@ -90,8 +110,11 @@ export const ResponsibilityOverviewDescription = (props: ResponsibilityOverviewD if (props.currentTouchstoneId.indexOf("2020") > -1) { return TwentyTwentyRfpTouchstone() } - else { + if (props.currentTouchstoneId.indexOf("2019") > -1) { return TwentyNineteenRfpTouchstone() + } else + { + return TwentyTwentyFourRfpTouchstone() } } else { let guidanceInputsUrl = `/help/model-inputs/${props.currentTouchstoneId}`; diff --git a/app/src/main/contrib/components/Responsibilities/Overview/rfp-2024-guidance.pdf b/app/src/main/contrib/components/Responsibilities/Overview/rfp-2024-guidance.pdf new file mode 100644 index 000000000..bf01a222b Binary files /dev/null and b/app/src/main/contrib/components/Responsibilities/Overview/rfp-2024-guidance.pdf differ diff --git a/app/src/test/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescriptionTests.tsx b/app/src/test/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescriptionTests.tsx index f4d91f774..046c10c73 100644 --- a/app/src/test/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescriptionTests.tsx +++ b/app/src/test/contrib/components/Responsibilities/Overview/ResponsibilityOverviewDescriptionTests.tsx @@ -21,7 +21,8 @@ describe("Responsibility Overview Description Component", () => { }); it("renders component for 2019 applicants touchstone", () => { - const rendered = shallow(); + const touchstoneId = "2019rfp-1"; + const rendered = shallow(); expect(rendered.text().indexOf("Access the standardised demographic") > -1).toEqual(true); }); @@ -38,6 +39,14 @@ describe("Responsibility Overview Description Component", () => { expect(rendered.text().indexOf("https://www.vaccineimpact.org/2022-11-23-rfp")).toBeGreaterThan(-1); }); + it("renders component for 2024 applicants touchstone", () => { + const touchstoneId = "202410rfp-1"; + const rendered = shallow(); + expect(rendered.text().indexOf("the anonymous pre-defined country")).toBeGreaterThan(-1); + expect(rendered.text().indexOf("Output specifications guidance is available within the Guide for Applicants")).toBeGreaterThan(-1); + expect(rendered.html().indexOf("/rfp-2024-guidance.pdf")).toBeGreaterThan(-1); + }); + it("renders component on touchstone is not open", () => { const rendered = shallow(); expect(rendered.text().indexOf("This touchstone is no longer open")).toBeGreaterThan(-1); diff --git a/config/orderlyweb/config.properties b/config/orderlyweb/config.properties index 20945baba..970a3ec52 100644 --- a/config/orderlyweb/config.properties +++ b/config/orderlyweb/config.properties @@ -1 +1 @@ -montagu.api_url=http://montagu_api_1:8080/v1 +montagu.api_url=http://montagu-api-1:8080/v1