From df5646fd55a4e064c04fca2953f57b2a09807f54 Mon Sep 17 00:00:00 2001 From: Tameem Bin Haider Date: Thu, 5 Dec 2024 17:53:50 +0600 Subject: [PATCH] fix: use form data to check if details exist (#334) * fix: use form data to check if details exist * docs: update CHANGELOG --- CHANGELOG.md | 11 ++++++++++- src/form/addresses/index.ts | 19 ++++++++----------- .../common/default-validation-conditionals.ts | 10 +--------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fc0ffc90..b8243fcc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,7 +46,15 @@ INSERT CSV ROWS IN ENGLISH ONLY - TBC -## 1.6.0 Release candidate +## 1.6.1 (TBD) + +### Bug fixes + +- 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 ### Breaking changes @@ -93,6 +101,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/src/form/addresses/index.ts b/src/form/addresses/index.ts index 6576f0015..920f09390 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, @@ -99,11 +96,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, @@ -125,9 +122,9 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ config: AddressSubsections.PRIMARY_ADDRESS_SUBSECTION, label: formMessageDescriptors.primaryAddress, conditionalCase: [ - expressionToConditional(FATHER_DETAILS_DONT_EXIST), + expressionToConditional(detailsDontExist), expressionToConditional( - `${FATHER_DETAILS_DONT_EXIST} || ${primaryAddressSameAsOtherPrimaryAddress}`, + `${detailsDontExist} || ${primaryAddressSameAsOtherPrimaryAddress}`, 'hideInPreview' ) ] @@ -149,7 +146,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, @@ -275,9 +272,9 @@ export const defaultAddressConfiguration: IAddressConfiguration[] = [ config: AddressSubsections.PRIMARY_ADDRESS_SUBSECTION, label: formMessageDescriptors.primaryAddress, conditionalCase: [ - expressionToConditional(SPOUSE_DETAILS_DONT_EXIST), + expressionToConditional(detailsDontExist), expressionToConditional( - `${SPOUSE_DETAILS_DONT_EXIST} || ${primaryAddressSameAsOtherPrimaryAddress}`, + `${detailsDontExist} || ${primaryAddressSameAsOtherPrimaryAddress}`, 'hideInPreview' ) ] @@ -297,7 +294,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 d0038478b..d67d06881 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' /** @@ -442,18 +441,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