diff --git a/cypress/integration/birth.spec.ts b/cypress/integration/birth.spec.ts
index 8b7df746d..b07fc1346 100644
--- a/cypress/integration/birth.spec.ts
+++ b/cypress/integration/birth.spec.ts
@@ -9,7 +9,7 @@
* Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS.
*/
-import faker from "@faker-js/faker"
+import faker from '@faker-js/faker'
context('Birth Integration Test', () => {
beforeEach(() => {
@@ -30,7 +30,18 @@ context('Birth Integration Test', () => {
cy.login('fieldWorker')
cy.createPin()
cy.verifyLandingPageVisible()
- cy.enterMaximumInput({ informantType, motherDoB, motherFirstNames, motherFamilyName, fatherDoB, fatherFirstNames, fatherFamilyName, informantFirstNames, informantFamilyName, informantDoB })
+ cy.enterMaximumInput({
+ informantType,
+ motherDoB,
+ motherFirstNames,
+ motherFamilyName,
+ fatherDoB,
+ fatherFirstNames,
+ fatherFamilyName,
+ informantFirstNames,
+ informantFamilyName,
+ informantDoB
+ })
cy.submitDeclaration()
cy.logout()
})
@@ -81,7 +92,18 @@ context('Birth Integration Test', () => {
cy.login('registrar')
cy.createPin()
cy.verifyLandingPageVisible()
- cy.enterMaximumInput({ informantType, motherDoB, motherFirstNames, motherFamilyName, fatherDoB, fatherFirstNames, fatherFamilyName, informantFirstNames, informantFamilyName, informantDoB })
+ cy.enterMaximumInput({
+ informantType,
+ motherDoB,
+ motherFirstNames,
+ motherFamilyName,
+ fatherDoB,
+ fatherFirstNames,
+ fatherFamilyName,
+ informantFirstNames,
+ informantFamilyName,
+ informantDoB
+ })
//register declaration
cy.get('#registerDeclarationBtn').click()
cy.get('#submit_confirm').click()
diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts
index b959de2dc..ed2643901 100644
--- a/cypress/support/commands.ts
+++ b/cypress/support/commands.ts
@@ -306,13 +306,14 @@ Cypress.Commands.add('declareDeclarationWithMinimumInput', () => {
)
cy.get('#childBirthDate-yyyy').type('2018')
cy.selectOption('#placeOfBirth', 'Private_Home', 'Residential address')
- cy.selectOption('#country', 'Farajaland', 'Farajaland')
- cy.selectOption('#state', 'Pualula', 'Pualula')
- cy.selectOption('#district', 'Embe', 'Embe')
+ cy.selectOption('#countryPlaceofbirth', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePlaceofbirth', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPlaceofbirth', 'Embe', 'Embe')
cy.goToNextFormSection()
// SELECT INFORMANT
cy.selectOption('#informantType', 'Mother', 'Mother')
+ cy.wait(500)
cy.get('#registrationPhone').type('07' + getRandomNumbers(8))
cy.goToNextFormSection()
@@ -323,9 +324,9 @@ Cypress.Commands.add('declareDeclarationWithMinimumInput', () => {
cy.get('#motherBirthDate-dd').type('23')
cy.get('#motherBirthDate-mm').type('10')
cy.get('#motherBirthDate-yyyy').type('1969')
- cy.selectOption('#countryPrimary-form-input', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
+ cy.selectOption('#countryPrimaryMother', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryMother', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryMother', 'Embe', 'Embe')
cy.goToNextFormSection()
// FATHER DETAILS
@@ -474,21 +475,21 @@ Cypress.Commands.add('enterMaximumInput', (options) => {
cy.selectOption('#birthType', 'Single', 'Single')
cy.get('#weightAtBirth').type('1.5')
cy.selectOption('#placeOfBirth', 'Private_Home', 'Residential address')
- cy.selectOption('#country', 'Farajaland', 'Farajaland')
+ cy.selectOption('#countryPlaceofbirth', 'Farajaland', 'Farajaland')
cy.selectOption(
- '#state',
+ '#statePlaceofbirth',
options?.eventLocationLevel1 || 'Pualula',
options?.eventLocationLevel1 || 'Pualula'
)
cy.selectOption(
- '#district',
+ '#districtPlaceofbirth',
options?.eventLocationLevel2 || 'Embe',
options?.eventLocationLevel2 || 'Embe'
)
- cy.get('#cityUrbanOption').type('My city')
- cy.get('#addressLine3UrbanOption').type('My residential area')
- cy.get('#addressLine2UrbanOption').type('My street')
- cy.get('#numberUrbanOption').type('40')
+ cy.get('#cityPlaceofbirth').type('My city')
+ cy.get('#addressLine1UrbanOptionPlaceofbirth').type('My residential area')
+ cy.get('#addressLine2UrbanOptionPlaceofbirth').type('My street')
+ cy.get('#addressLine3UrbanOptionPlaceofbirth').type('40')
cy.goToNextFormSection()
// SELECT INFORMANT
@@ -497,6 +498,7 @@ Cypress.Commands.add('enterMaximumInput', (options) => {
options?.informantType || 'Grandfather',
options?.informantType || 'Grandfather'
)
+ cy.wait(500)
cy.get('#registrationPhone').type('07' + getRandomNumbers(8))
cy.get('#registrationEmail').type('axonishere@gmail.com')
@@ -510,12 +512,11 @@ Cypress.Commands.add('enterMaximumInput', (options) => {
cy.get('#informantBirthDate-yyyy').type(informantDoBSplit.yyyy || '1975')
cy.selectOption('#nationality', 'Farajaland', 'Farajaland')
cy.get('#informantID').type(getRandomNumbers(10))
- cy.selectOption('#countryPrimary-form-input', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
- cy.goToNextFormSection()
+ cy.selectOption('#countryPrimaryInformant', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryInformant', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryInformant', 'Embe', 'Embe')
}
-
+ cy.goToNextFormSection()
// MOTHER DETAILS
cy.get('#iD').type(getRandomNumbers(10))
cy.get('#motherBirthDate-dd').type(motherDoBSplit?.dd || '23')
@@ -530,14 +531,14 @@ Cypress.Commands.add('enterMaximumInput', (options) => {
cy.get('#multipleBirth').type('2')
cy.get('#occupation').type('Lawyer')
cy.selectOption('#educationalAttainment', 'PRIMARY_ISCED_1', 'Primary')
- cy.selectOption('#countryPrimary-form-input', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
- cy.get('#cityUrbanOptionPrimary').type('My town')
- cy.get('#addressLine3UrbanOptionPrimary').type('My residental area')
-
- cy.get('#addressLine2UrbanOptionPrimary').type('My street')
- cy.get('#numberUrbanOptionPrimary').type('40')
+ cy.selectOption('#countryPrimaryMother', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryMother', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryMother', 'Embe', 'Embe')
+ cy.get('#cityPrimaryMother').type('My town')
+ cy.get('#addressLine1UrbanOptionPrimaryMother').type('My residental area')
+
+ cy.get('#addressLine2UrbanOptionPrimaryMother').type('My street')
+ cy.get('#addressLine3UrbanOptionPrimaryMother').type('40')
cy.goToNextFormSection()
// FATHER DETAILS
@@ -552,13 +553,13 @@ Cypress.Commands.add('enterMaximumInput', (options) => {
cy.get('#occupation').type('Lawyer')
cy.selectOption('#educationalAttainment', 'PRIMARY_ISCED_1', 'Primary')
cy.get('#primaryAddressSameAsOtherPrimary_false').click()
- cy.selectOption('#countryPrimary', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
- cy.get('#cityUrbanOptionPrimary').type('My town')
- cy.get('#addressLine3UrbanOptionPrimary').type('My residential area')
- cy.get('#addressLine2UrbanOptionPrimary').type('My street')
- cy.get('#numberUrbanOptionPrimary').type('40')
+ cy.selectOption('#countryPrimaryFather', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryFather', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryFather', 'Embe', 'Embe')
+ cy.get('#cityPrimaryFather').type('My town')
+ cy.get('#addressLine1UrbanOptionPrimaryFather').type('My residential area')
+ cy.get('#addressLine2UrbanOptionPrimaryFather').type('My street')
+ cy.get('#addressLine2UrbanOptionPrimaryFather').type('40')
cy.goToNextFormSection()
// DOCUMENTS
@@ -611,9 +612,9 @@ Cypress.Commands.add('declareDeathDeclarationWithMinimumInput', (options) => {
cy.get('#deceasedBirthDate-mm').type('06')
cy.get('#deceasedBirthDate-yyyy').type('1988')
cy.selectOption('#gender', 'Male', 'Male')
- cy.selectOption('#countryPrimary', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
+ cy.selectOption('#countryPrimaryDeceased', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryDeceased', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryDeceased', 'Embe', 'Embe')
cy.goToNextFormSection()
// EVENT DETAILS
@@ -624,6 +625,7 @@ Cypress.Commands.add('declareDeathDeclarationWithMinimumInput', (options) => {
// MANNER OF DEATH
cy.selectOption('#mannerOfDeath', '', 'Natural causes')
cy.get('#causeOfDeathEstablished').click()
+ cy.wait(500)
cy.selectOption('#causeOfDeathMethod', '', 'Physician')
cy.selectOption('#placeOfDeath', '', "Deceased's usual place of residence")
@@ -634,6 +636,7 @@ Cypress.Commands.add('declareDeathDeclarationWithMinimumInput', (options) => {
options?.informantType || 'Spouse',
options?.informantType || 'Spouse'
)
+ cy.wait(500)
cy.get('#informantID').type('9123456781')
cy.get('#informantBirthDate-dd').type('16')
cy.get('#informantBirthDate-mm').type('06')
@@ -708,14 +711,14 @@ Cypress.Commands.add('enterDeathMaximumInput', (options) => {
options?.deceasedGender || 'Male',
options?.deceasedGender || 'Male'
)
- cy.selectOption('#countryPrimary', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
- cy.get('#cityUrbanOptionPrimary').type('My town')
- cy.get('#addressLine3UrbanOptionPrimary').type('My residential area')
- cy.get('#addressLine2UrbanOptionPrimary').type('My street')
- cy.get('#numberUrbanOptionPrimary').type('40')
- cy.get('#postcodePrimary').type('9000')
+ cy.selectOption('#countryPrimaryDeceased', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryDeceased', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryDeceased', 'Embe', 'Embe')
+ cy.get('#cityPrimaryDeceased').type('My town')
+ cy.get('#addressLine1UrbanOptionPrimaryDeceased').type('My residential area')
+ cy.get('#addressLine2UrbanOptionPrimaryDeceased').type('My street')
+ cy.get('#addressLine3UrbanOptionPrimaryDeceased').type('40')
+ cy.get('#postalCodePrimaryDeceased').type('9000')
cy.goToNextFormSection()
// EVENT DETAILS
cy.get('#deathDate-dd').type('18')
@@ -725,25 +728,26 @@ Cypress.Commands.add('enterDeathMaximumInput', (options) => {
// CAUSE OF DEATH DETAILS
cy.selectOption('#mannerOfDeath', '', 'Homicide')
cy.get('#causeOfDeathEstablished').click()
+ cy.wait(500)
cy.selectOption('#causeOfDeathMethod', '', 'Physician')
cy.selectOption('#placeOfDeath', '', 'Other')
- cy.selectOption('#country', 'Farajaland', 'Farajaland')
+ cy.selectOption('#countryPlaceofdeath', 'Farajaland', 'Farajaland')
cy.selectOption(
- '#state',
+ '#statePlaceofdeath',
options?.eventLocationLevel1 || 'Pualula',
options?.eventLocationLevel1 || 'Pualula'
)
cy.selectOption(
- '#district',
+ '#districtPlaceofdeath',
options?.eventLocationLevel2 || 'Embe',
options?.eventLocationLevel2 || 'Embe'
)
- cy.get('#cityUrbanOption').type('My city')
- cy.get('#addressLine3UrbanOption').type('My residential area')
- cy.get('#addressLine2UrbanOption').type('My street')
- cy.get('#numberUrbanOption').type('40')
- cy.get('#postalCode').type('9000')
+ cy.get('#cityPlaceofdeath').type('My city')
+ cy.get('#addressLine1UrbanOptionPlaceofdeath').type('My residential area')
+ cy.get('#addressLine2UrbanOptionPlaceofdeath').type('My street')
+ cy.get('#addressLine3UrbanOptionPlaceofdeath').type('40')
+ cy.get('#postalCodePlaceofdeath').type('9000')
cy.goToNextFormSection()
// INFORMANT DETAILS
@@ -752,6 +756,7 @@ Cypress.Commands.add('enterDeathMaximumInput', (options) => {
options?.informantType || 'Spouse',
options?.informantType || 'Spouse'
)
+ cy.wait(500)
cy.get('#registrationPhone').type('07' + getRandomNumbers(8))
cy.get('#registrationEmail').type('axonishere@gmail.com')
cy.get('#firstNamesEng').type(options?.informantFirstNames || 'Alom')
@@ -762,11 +767,11 @@ Cypress.Commands.add('enterDeathMaximumInput', (options) => {
cy.selectOption('#nationality', 'Farajaland', 'Farajaland')
cy.get('#informantID').type(getRandomNumbers(10))
cy.get('#primaryAddressSameAsOtherPrimary_false').click()
- cy.selectOption('#countryPrimary-form-input', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
- cy.get('#cityUrbanOptionPrimary').type('My town')
- cy.get('#postcodePrimary').type('9000')
+ cy.selectOption('#countryPrimaryInformant', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryInformant', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryInformant', 'Embe', 'Embe')
+ cy.get('#cityPrimaryInformant').type('My town')
+ cy.get('#postalCodePrimaryInformant').type('9000')
cy.goToNextFormSection()
cy.goToNextFormSection()
})
@@ -792,17 +797,18 @@ Cypress.Commands.add('someoneElseJourney', () => {
cy.selectOption('#birthType', 'Single', 'Single')
cy.get('#weightAtBirth').type('1.5')
cy.selectOption('#placeOfBirth', 'Private_Home', 'Residential address')
- cy.selectOption('#country', 'Farajaland', 'Farajaland')
- cy.selectOption('#state', 'Pualula', 'Pualula')
- cy.selectOption('#district', 'Embe', 'Embe')
- cy.get('#cityUrbanOption').type('My city')
- cy.get('#addressLine3UrbanOption').type('My residential area')
- cy.get('#addressLine2UrbanOption').type('My street')
- cy.get('#numberUrbanOption').type('40')
+ cy.selectOption('#countryPlaceofbirth', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePlaceofbirth', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPlaceofbirth', 'Embe', 'Embe')
+ cy.get('#cityPlaceofbirth').type('My city')
+ cy.get('#addressLine1UrbanOptionPlaceofbirth').type('My residential area')
+ cy.get('#addressLine2UrbanOptionPlaceofbirth').type('My street')
+ cy.get('#addressLine3UrbanOptionPlaceofbirth').type('40')
cy.goToNextFormSection()
// SELECT INFORMANT
cy.selectOption('#informantType', 'Someone else', 'Someone else')
+ cy.wait(500)
cy.get('#otherInformantType').type('Someone else')
cy.get('#registrationPhone').type('07' + getRandomNumbers(8))
cy.get('#registrationEmail').type('axonishere@gmail.com')
@@ -815,9 +821,9 @@ Cypress.Commands.add('someoneElseJourney', () => {
cy.get('#informantBirthDate-yyyy').type('1975')
cy.selectOption('#nationality', 'Farajaland', 'Farajaland')
cy.get('#informantID').type('1234567111')
- cy.selectOption('#countryPrimary-form-input', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
+ cy.selectOption('#countryPrimaryInformant', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryInformant', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryInformant', 'Embe', 'Embe')
cy.goToNextFormSection()
// MOTHER DETAILS
@@ -828,9 +834,9 @@ Cypress.Commands.add('someoneElseJourney', () => {
cy.get('#motherBirthDate-yyyy').type('1975')
cy.get('#firstNamesEng').type('Agnes')
cy.get('#familyNameEng').type('Aktar')
- cy.selectOption('#countryPrimary-form-input', 'Farajaland', 'Farajaland')
- cy.selectOption('#statePrimary', 'Pualula', 'Pualula')
- cy.selectOption('#districtPrimary', 'Embe', 'Embe')
+ cy.selectOption('#countryPrimaryMother', 'Farajaland', 'Farajaland')
+ cy.selectOption('#statePrimaryMother', 'Pualula', 'Pualula')
+ cy.selectOption('#districtPrimaryMother', 'Embe', 'Embe')
cy.goToNextFormSection()
// FATHER DETAILS
diff --git a/package.json b/package.json
index ad4f2e258..ac851cc56 100644
--- a/package.json
+++ b/package.json
@@ -38,8 +38,8 @@
"@octokit/core": "4.2.1",
"@types/bcryptjs": "^2.4.2",
"@types/google-libphonenumber": "^7.4.23",
+ "@types/hapi__inert": "5.2.1",
"@types/handlebars": "^4.1.0",
- "@types/hapi__inert": "^5.2.3",
"@types/jsonwebtoken": "^8.5.8",
"@types/libsodium-wrappers": "^0.7.10",
"@types/react-intl": "^3.0.0",
@@ -74,7 +74,7 @@
"@types/code": "^4.0.3",
"@types/csv2json": "^1.4.0",
"@types/dotenv": "^6.1.0",
- "@types/fhir": "^0.0.30",
+ "@types/fhir": "0.0.30",
"@types/geojson": "^7946.0.4",
"@types/hapi-pino": "^6.3.0",
"@types/hapi__boom": "^9.0.1",
diff --git a/src/api/application/application-config-default.ts b/src/api/application/application-config-default.ts
index 32e310e94..48acc7379 100644
--- a/src/api/application/application-config-default.ts
+++ b/src/api/application/application-config-default.ts
@@ -45,7 +45,7 @@ export const defaultApplicationConfig = {
MARRIAGE_REGISTRATION: true,
DATE_OF_BIRTH_UNKNOWN: false,
INFORMANT_SIGNATURE: true,
- INFORMANT_SIGNATURE_REQUIRED: true,
+ INFORMANT_SIGNATURE_REQUIRED: false,
USER_NOTIFICATION_DELIVERY_METHOD: 'email', // or 'sms', or '' ... You can use 'sms' for WhatsApp
INFORMANT_NOTIFICATION_DELIVERY_METHOD: 'email', // or 'sms', or '' ... You can use 'sms' for WhatsApp
SIGNATURE_REQUIRED_FOR_ROLES: ['LOCAL_REGISTRAR', 'NATIONAL_REGISTRAR']
diff --git a/src/api/content/client/client.json b/src/api/content/client/client.json
index be76e9c21..5d0c9a654 100644
--- a/src/api/content/client/client.json
+++ b/src/api/content/client/client.json
@@ -22,6 +22,7 @@
"buttons.continue": "Continue",
"buttons.delete": "Delete",
"buttons.deleteDeclaration": "Delete declaration",
+ "buttons.printDeclaration": "Print declaration",
"buttons.drafts": "Drafts",
"buttons.edit": "Edit",
"buttons.editRecord": "No, make correction",
@@ -500,6 +501,7 @@
"correction.reason.additionalComment": "Comments",
"correction.reason.clericalError": "Myself or an agent made a mistake (Clerical error)",
"correction.reason.error": "Reason for change",
+ "correction.reason.other": "Other",
"correction.reason.judicialOrder": "Requested to do so by the court (Judicial order)",
"correction.reason.materialError": "Informant provided incorrect information (Material error)",
"correction.reason.materialOmission": "Informant did not provide this information (Material omission)",
@@ -1599,6 +1601,11 @@
"print.certificate.toast.message": "Certificate is ready to print",
"print.certificate.userReviewed": "The informant has reviewed and confirmed that the information on the certificate is correct.",
"print.certificate.noPayment": "No payment required",
+ "print.declaration.civilRegistrationOffice": "Civil registration office",
+ "print.declaration.header.title": "Civil Registration Centre",
+ "print.declaration.informantAttestation": "I attest to having received this {eventType, select, birth{birth} death{death} marriage{marriage} other{}} declaration",
+ "print.declaration.placeOfDeclaration": "Place of declaration",
+ "print.declaration.warning.declarationDetails": "To be completed by office",
"record.certificate.collector": "Printed on collection",
"record.certificate.collectedInAdvance": "Printed in advance by",
"recordAudit.archive.confirmation.body": "This will archive the record and remove it from your workspace",
@@ -1631,7 +1638,10 @@
"recordAudit.regAction.assigned": "Assigned",
"recordAudit.regAction.downloaded": "Retrieved",
"recordAudit.regAction.reinstated": "Reinstated to {regStatus, select, validated{ready for review} in_progress{in progress} declared{ready for review} rejected{requires updates} other{}}",
- "recordAudit.regAction.requestedCorrection": "Corrected record",
+ "recordAudit.regAction.requestedCorrection": "Correction requested",
+ "recordAudit.regAction.approvedCorrection": "Correction approved",
+ "recordAudit.regAction.rejectedCorrection": "Correction rejected",
+ "recordAudit.regAction.corrected": "Record corrected",
"recordAudit.regAction.unassigned": "Unassigned",
"recordAudit.regAction.viewed": "Viewed",
"recordAudit.regAction.markedAsDuplicate": "Marked as a duplicate",
@@ -1719,7 +1729,7 @@
"register.form.missingFieldsDescription": "The following information will be submitted for validation. Please\n make sure all required details have been filled in correctly. There\n are {numberOfErrors} missing mandatory fields in your form:",
"register.form.modal.areYouReadyToSubmit": "Are you ready to submit?",
"register.form.modal.desc.saveDeclarationConfirm": "All inputted data will be kept secure for future editing. Are you ready to save any changes to this declaration form?",
- "register.form.modal.desc.validateConfirmation": "This declaration will be sent to the registrar for approval.",
+ "register.form.modal.desc.validateConfirmation": "This declaration will be sent for approval prior to registration.",
"register.form.modal.submitDescription": "By clicking “Submit” you confirm that the informant has read and reviewed the information and understands that this information will be shared with Civil Registration authorities.",
"register.form.modal.title.saveDeclarationConfirm": "Save & exit?",
"register.form.modal.title.deleteDeclarationConfirm": "Delete draft?",
@@ -1775,6 +1785,7 @@
"review.actions.desc.regConfInComp": "Please add mandatory information before registering.",
"review.actions.description.confirmComplete": "The informant will receive an {deliveryMethod} with a registration number that they can use to collect the certificate.",
"review.actions.description.confirmInComplete": "The informant will receive an {deliveryMethod} with a tracking ID that they can use to provide the additional mandatory information required for registration.",
+ "review.actions.description.hasError": "Please ensure all fields are either empty or have a valid value in them.",
"review.actions.description": "By clicking register, you confirm that the information entered is correct and the vital event can be registered. ",
"review.actions.title.declarationStatus": "Declaration {completeDeclaration, select, true {complete} other {incomplete}}",
"review.actions.title.registerActionTitle": "Register event",
@@ -2047,7 +2058,7 @@
"userSetup.waiting": "Setting up your account",
"validate.complete.declaration.action.description": "The informant will receive an with a registration number that they can use to collect the certificate.",
"validate.complete.declaration.action.title": "Declaration complete",
- "validate.declaration.action.modal.description": "This declaration will be sent to the registrar for approval.",
+ "validate.declaration.action.modal.description": "This declaration will be sent for approval prior to registration.",
"review.inputs.informantsSignature": "Signature of informant",
"review.signature.description": "I, the undersigned, hereby declare that the particulars in this form are true and correct to the best of my knowledge.",
"review.signature.input.description": "By signing this document with an electronic signature, I agree that such signature will be valid as handwritten signatures to the extent allowed by the laws of Farajaland.",
@@ -2057,7 +2068,6 @@
"review.inputs.witnessTwoSignature": "Signature of Witness 2",
"review.inputs.terms": "We, the undersigned declare under penalty of perjury under the laws of Farajaland that the forgoing information is true and correct to the best of our knowledge and belief. We further declare that no legal objections to the marriage is known and hereby apply for a certificate of marriage",
"review.signature.clear": "Clear",
-
"review.signature.open": "Sign",
"review.signature.delete": "Delete",
"validate.declaration.action.modal.title": "Send for approval?",
@@ -2128,6 +2138,7 @@
"buttons.continue": "Continuer",
"buttons.delete": "Supprimer",
"buttons.deleteDeclaration": "Supprimer la déclaration",
+ "buttons.printDeclaration": "Imprimer la déclaration",
"buttons.drafts": "Brouillons",
"buttons.edit": "Modifier",
"buttons.editRecord": "Non, faites la correction",
@@ -2610,6 +2621,7 @@
"correction.reason.materialError": "L'informateur a fourni des informations incorrectes (erreur matérielle)",
"correction.reason.materialOmission": "L'informateur n'a pas fourni cette information (Omission matérielle)",
"correction.reason.reasonForChange": "Motif de la correction",
+ "correction.reason.other": "Autre",
"correction.reason.title": "Quelle était la raison de la correction ?",
"correction.request": "Correction demandée",
"correction.summary.addComments": "Ajouter des commentaires",
@@ -3701,6 +3713,11 @@
"print.certificate.signature.person1": "UP Secrétaire Kylian Mbappe",
"print.certificate.signature.person2": "Registrar local Antoine Griezmann",
"print.certificate.noPayment": "Aucun paiement requis",
+ "print.declaration.civilRegistrationOffice": "Bureau d'état civil",
+ "print.declaration.header.title": "Centre d’Etat Civil",
+ "print.declaration.informantAttestation": "J’atteste avoir reçu cetter déclaration de {eventType, select, birth{naissance} death{décès} marriage{mariage} other{}}",
+ "print.declaration.placeOfDeclaration": "Lieu de déclaration",
+ "print.declaration.warning.declarationDetails": "Partie réservée à l’officier d’état civil",
"record.certificate.collector": "Contrôle d'identité",
"record.certificate.collectedInAdvance": "Imprimé à l'avance par",
"recordAudit.archive.confirmation.body": "Cela supprimera la déclaration de la file d'attente et changera son statut en archive. Pour annuler ce changement, vous devrez rechercher la déclaration.",
@@ -3733,7 +3750,10 @@
"recordAudit.regAction.assigned": "Assigné",
"recordAudit.regAction.downloaded": "Consulté sur",
"recordAudit.regAction.reinstated": "Réintégré à {regStatus, select, validated{prêt pour la révision} in_progress{en cours} declared{prêt pour la révision} rejected{nécessite des mises à jour} other{}}",
- "recordAudit.regAction.requestedCorrection": "Enregistrement corrigé",
+ "recordAudit.regAction.requestedCorrection": "Correction demandée",
+ "recordAudit.regAction.approvedCorrection": "Correction approuvée",
+ "recordAudit.regAction.rejectedCorrection": "Correction rejetée",
+ "recordAudit.regAction.corrected": "Enregistrement corrigé",
"recordAudit.regAction.unassigned": "Non assigné",
"recordAudit.regAction.viewed": "Vu",
"recordAudit.regAction.markedAsDuplicate": "Marqué comme un doublon",
@@ -3821,7 +3841,7 @@
"register.form.missingFieldsDescription": "Les informations suivantes seront soumises pour validation. Veuillez vous assurer que tous les détails requis ont été remplis correctement. Il y a {numberOfErrors} de champs obligatoires manquants dans votre formulaire :",
"register.form.modal.areYouReadyToSubmit": "Êtes-vous prêt à soumettre ?",
"register.form.modal.desc.saveDeclarationConfirm": "Toutes les données saisies seront conservées en toute sécurité pour de futures modifications. Êtes-vous prêt à enregistrer les modifications apportées à ce formulaire de déclaration?",
- "register.form.modal.desc.validateConfirmation": "Cette déclaration sera envoyée à l'officier d'état civil pour qu'il l'approuve.",
+ "register.form.modal.desc.validateConfirmation": "Cette déclaration sera envoyée pour approbation avant l'enregistrement.",
"register.form.modal.submitDescription": "En cliquant sur Soumettre, vous confirmez que l'informateur a lu et revu les informations et qu'il comprend que ces informations seront partagées avec les autorités de l'état civil.",
"register.form.modal.title.saveDeclarationConfirm": "Enregistrer et quitter?",
"register.form.modal.title.submitConfirmation": "{completeDeclaration, select, true {Envoyer une déclaration pour examen ?} other {Envoyer une déclaration incomplète ?}}",
@@ -3877,6 +3897,7 @@
"review.actions.desc.regConfInComp": "Des informations obligatoires sont manquantes. Veuillez ajouter ces informations afin de pouvoir terminer le processus d'enregistrement.",
"review.actions.description.confirmComplete": "En envoyant cette déclaration pour examen, vous confirmez que les informations ont été examinées par l'informateur et qu'il sait qu'il recevra un {deliveryMethod} avec un identifiant de suivi et des détails sur la manière de récupérer l'acte de naissance.",
"review.actions.description.confirmInComplete": "En envoyant cette déclaration {deliveryMethod}omplète, vous créez un enregistrement numérique. Nous informons l'informateur qu'il recevra un {deliveryMethod} avec un identifiant de suivi. Il en aura besoin pour compléter la déclaration dans un bureau d'enregistrement dans les 30 jours. L'informateur devra fournir toutes les informations obligatoires avant que la naissance puisse être enregistrée.",
+ "review.actions.description.hasError": "Veuillez vous assurer que tous les champs sont vides ou qu'ils contiennent une valeur valide.",
"review.actions.description": "En vous enregistrant, vous confirmez que vous avez examiné cette déclaration et que vous êtes convaincu qu'elle remplit les conditions requises pour l'enregistrement.",
"review.actions.title.declarationStatus": "Déclaration {completeDeclaration, select, true {complet} other {incomplet}}",
"review.actions.title.registerActionTitle": "Enregistrer l'événement",
@@ -4149,7 +4170,7 @@
"userSetup.waiting": "Configuration de votre compte",
"validate.complete.declaration.action.description": "En envoyant pour approbation, vous confirmez que la déclaration est prête à être approuvée.",
"validate.complete.declaration.action.title": "Envoyer pour approbation ou rejeter ?",
- "validate.declaration.action.modal.description": "Cette déclaration sera envoyée à l'officier d'état civil pour l'enregistrement.",
+ "validate.declaration.action.modal.description": "Cette déclaration sera envoyée pour approbation avant l'enregistrement.",
"review.inputs.informantsSignature": "Signature de l'informateur",
"review.signature.description": "Je soussigné(e) déclare par la présente que les informations contenues dans ce formulaire sont, à ma connaissance, vraies et correctes.",
"review.signature.input.description": "En signant ce document avec une signature électronique, j'accepte que cette signature soit valable comme les signatures manuscrites dans la mesure où les lois du Farajaland le permettent.",
diff --git a/src/api/content/client/descriptions.json b/src/api/content/client/descriptions.json
index 49eaa9733..0d42e8c5b 100644
--- a/src/api/content/client/descriptions.json
+++ b/src/api/content/client/descriptions.json
@@ -1045,6 +1045,7 @@
"misc.title.declarationStatus": "Title for review action component",
"review.actions.description.confirmComplete": "Description for review action component when complete declaration",
"review.actions.description.confirmInComplete": "Description for review action component when incomplete declaration",
+ "review.actions.description.hasError": "Description for review action component when declaration has errors on fields",
"review.actions.title.declarationStatus": "Title for review action component",
"review.form.section.review.name": "Form section name for Review",
"review.form.section.review.title": "Form section title for Review",
diff --git a/src/api/notification/email-service.ts b/src/api/notification/email-service.ts
index 088014d80..7b8c64361 100644
--- a/src/api/notification/email-service.ts
+++ b/src/api/notification/email-service.ts
@@ -106,6 +106,17 @@ type UsernameUpdateVariables = {
countryLogo: string
}
+type ApproveCorrectionVariables = {
+ firstNames: string
+ lastName: string
+ event: string
+ trackingId: string
+ applicationName: string
+ countryLogo: string
+}
+
+type RejectCorrectionVariables = ApproveCorrectionVariables & { reason: string }
+
type DeclarationCommonVariables = {
trackingId: string
crvsOffice: string
@@ -176,6 +187,20 @@ const templates = {
subject: 'Account username updated',
template: readOtherTemplateBirth registration completed
Congratulations, the birth of {{name}} has been registered.
- Your birth registration numnber (BRN) is: {{registrationNumber}} + Your birth registration number (BRN) is: {{registrationNumber}}
Please visit {{crvsOffice}} with your ID to collect your birth certificate. Your registration tracking ID is @@ -58,4 +58,4 @@