diff --git a/CHANGELOG.md b/CHANGELOG.md index d41bc0a59..1552bd86d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,8 +51,11 @@ INSERT CSV ROWS IN ENGLISH ONLY ### Bug fixes - Fix a typo in the birth certificate svg code that was causing the birth certificate to fail to render in the `print certified copy` flow. [7886](https://github.com/opencrvs/opencrvs-core/issues/7886) +- We make sure that the automatic cleanup job only runs before deployment (instead of cron schedule cleanup). +- Previously it was possible MongoDB replica set and users were left randomly uninitialised after a deployment. MongoDB initialisation container now retries on failure. +- On some machines 'file' utility was not preinstalled causing provision to fail. We now install the utility if it doesn't exist. -## 1.6.0 Release candidate +## 1.6.0 ### Breaking changes @@ -99,6 +102,7 @@ INSERT CSV ROWS IN ENGLISH ONLY 5. 'PHONE_NUMBER', 6. 'EMAIL' - Updated `allowedFileFormats` in signature fields to use MIME types (`image/png`, `image/jpg`, `image/jpeg`, `image/svg`) instead of simple file extensions. If you are already using the `allowedFileFormats` field in your implementation, please ensure to update the format accordingly. +- The details exists conditionals for the various sections i.e. father, mother, spouse has to use the `values.detailsExist` property instead of accessing it from `draftData.[sectionName].detailsExists`. This is due to the fact that the draftData is not populated until any changes have been made to any of the fields in the current section. ### New features diff --git a/infrastructure/docker-compose.deploy.yml b/infrastructure/docker-compose.deploy.yml index d8d5d799e..dd756b461 100644 --- a/infrastructure/docker-compose.deploy.yml +++ b/infrastructure/docker-compose.deploy.yml @@ -679,7 +679,7 @@ services: - jwt-public-key.{{ts}} environment: - NODE_ENV=production - - MONGO_URL=mongodb://events:${METRICS_MONGODB_PASSWORD}@mongo1/events?replicaSet=rs0 + - MONGO_URL=mongodb://events:${EVENTS_MONGODB_PASSWORD}@mongo1/events?replicaSet=rs0 deploy: labels: - 'traefik.enable=false' diff --git a/src/form/addresses/index.ts b/src/form/addresses/index.ts index c6a217db7..3322f70ea 100644 --- a/src/form/addresses/index.ts +++ b/src/form/addresses/index.ts @@ -10,9 +10,6 @@ */ import { - FATHER_DETAILS_DONT_EXIST, - MOTHER_DETAILS_DONT_EXIST, - SPOUSE_DETAILS_DONT_EXIST, detailsDontExist, expressionToConditional, hideIfInformantBrideOrGroom, @@ -101,11 +98,11 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ { config: AddressSubsections.PRIMARY_ADDRESS_SUBSECTION, label: formMessageDescriptors.primaryAddress, - conditionalCase: MOTHER_DETAILS_DONT_EXIST + conditionalCase: detailsDontExist }, { config: AddressCases.PRIMARY_ADDRESS, - conditionalCase: MOTHER_DETAILS_DONT_EXIST + conditionalCase: detailsDontExist } /*, { config: AddressSubsections.SECONDARY_ADDRESS_SUBSECTION, @@ -128,10 +125,10 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ label: formMessageDescriptors.primaryAddress, conditionalCase: [ expressionToConditional( - `${FATHER_DETAILS_DONT_EXIST} || ${hideIfMotherAddressNotAvailable[0].expression}` + `${detailsDontExist} || ${hideIfMotherAddressNotAvailable[0].expression}` ), expressionToConditional( - `${FATHER_DETAILS_DONT_EXIST} || ${hideIfMotherAddressNotAvailable[0].expression} || ${primaryAddressSameAsOtherPrimaryAddress}`, + `${detailsDontExist} || ${hideIfMotherAddressNotAvailable[0].expression} || ${primaryAddressSameAsOtherPrimaryAddress}`, 'hideInPreview' ) ] @@ -153,7 +150,7 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ }, { config: AddressCases.PRIMARY_ADDRESS, - conditionalCase: `((${FATHER_DETAILS_DONT_EXIST} || ${primaryAddressSameAsOtherPrimaryAddress}) && !(${mothersDetailsDontExistOnOtherPage}) || ((${detailsDontExist}) && (${mothersDetailsDontExistOnOtherPage})))` + conditionalCase: `((${detailsDontExist} || ${primaryAddressSameAsOtherPrimaryAddress}) && !(${mothersDetailsDontExistOnOtherPage}) || ((${detailsDontExist}) && (${mothersDetailsDontExistOnOtherPage})))` } /*, { config: AddressSubsections.SECONDARY_ADDRESS_SUBSECTION, @@ -282,10 +279,10 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ label: formMessageDescriptors.primaryAddress, conditionalCase: [ expressionToConditional( - `${SPOUSE_DETAILS_DONT_EXIST} || ${hideIfDeceasedAddressNotAvailable[0].expression}` + `${detailsDontExist} || ${hideIfDeceasedAddressNotAvailable[0].expression}` ), expressionToConditional( - `${SPOUSE_DETAILS_DONT_EXIST} || ${hideIfDeceasedAddressNotAvailable[0].expression} || ${primaryAddressSameAsOtherPrimaryAddress}`, + `${detailsDontExist} || ${hideIfDeceasedAddressNotAvailable[0].expression} || ${primaryAddressSameAsOtherPrimaryAddress}`, 'hideInPreview' ) ] @@ -307,7 +304,7 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ }, { config: AddressCases.PRIMARY_ADDRESS, - conditionalCase: `((${SPOUSE_DETAILS_DONT_EXIST} || ${primaryAddressSameAsOtherPrimaryAddress}) || (${detailsDontExist}))` + conditionalCase: `(${detailsDontExist} || ${primaryAddressSameAsOtherPrimaryAddress})` } ] }, diff --git a/src/form/common/default-validation-conditionals.ts b/src/form/common/default-validation-conditionals.ts index d287a37b9..881ee8e4a 100644 --- a/src/form/common/default-validation-conditionals.ts +++ b/src/form/common/default-validation-conditionals.ts @@ -9,7 +9,6 @@ * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. */ import { Conditional } from '../types/types' -import { IntegratingSystemType } from '../types/types' import { Validator } from '../types/validators' /** @@ -456,18 +455,11 @@ export const spouseFamilyNameConditionals = [ } ] -export const FATHER_DETAILS_DONT_EXIST = - '(draftData?.father && !draftData?.father.detailsExist) || !values.detailsExist' -export const MOTHER_DETAILS_DONT_EXIST = - '(draftData?.mother && !draftData?.mother.detailsExist) || !values.detailsExist' -export const SPOUSE_DETAILS_DONT_EXIST = - '(draftData?.spouse && !draftData?.spouse.detailsExist) || !values.detailsExist' - // if mothers details do not exist on other page export const mothersDetailsDontExistOnOtherPage = 'draftData && draftData.mother && !draftData.mother.detailsExist' -// if fathers details do not exist +// if details don't exist for the current section export const detailsDontExist = '!values.detailsExist' // primary address same as other primary diff --git a/src/translations/client.csv b/src/translations/client.csv index e8f147998..ed72f16ac 100644 --- a/src/translations/client.csv +++ b/src/translations/client.csv @@ -1348,7 +1348,6 @@ integrations.name,Label for name input,Name,Nom integrations.nationalIDName,Label for name input for National ID,Name,Nom integrations.nationalidAlertDescription,,"A National ID client (eg. MOSIP) can react to birth or death webhooks to create or invalidate NID numbers, and respond to OpenCRVS to provide a temporary ID to children, and link vital events to each other. For more information, visit:","Un client d'identification nationale (par exemple MOSIP) peut réagir aux webhooks de naissance ou de décès pour créer ou invalider des numéros d'identification nationale, et répondre à OpenCRVS pour fournir une identification temporaire aux enfants, et relier les événements d'état civil entre eux. Pour plus d'informations, visitez le site :" integrations.newIntegrationDescription,Description to help user fill name and type of a new integration client,Add a unique name and select the type of client you would like to create,Ajoutez un nom unique et sélectionnez le type de client que vous souhaitez créer -integrations.onlyOneNationalId,,Only one National ID integration is allowed.,Une seule intégration d'identité nationale est autorisée integrations.otherAlertDescription,,...Please visit,...Veuillez visiter integrations.pageIntroduction,Label for the text integration page intorduction,"For each new client that needs to integrate with OpenCRVS you can create unique client IDs. A number of integration use cases are currently supported, based on both API and webhook technologies.","Pour chaque nouveau client qui doit s'intégrer à OpenCRVS, vous pouvez créer des identifiants client uniques. Un certain nombre de cas d'utilisation de l'intégration sont actuellement pris en charge, sur la base des technologies API et webhook" integrations.pageTitle,Title for integrations page,Integrations,Intégrations @@ -1359,7 +1358,6 @@ integrations.shaSecret,Label for SHA secret,SHA secret,SHA Secret integrations.supportingDescription,,Supporting description to help user make a decision and navigate the content,Description complémentaire pour aider l'utilisateur à prendre une décision et à naviguer dans le contenu. integrations.type.eventNotification,Label for event notification,Event notification,Notification d'événement integrations.type.healthSystem,Label for health system type,Health integration,Intégration de la santé -integrations.type.nationalID,Label for national ID system client,National ID,Carte d'identité nationale integrations.type.recordSearch,Label for record search,Record search,Recherche d'enregistrements integrations.type.webhook,Label for web hook,Webhook,Webhook integrations.uniqueKeyDescription,Label for the unique key description,These unique keys will be required by the client integrating...,Ces clés uniques seront requises par l'interface du système