From 9a80a2d0865502dafe61ab11ec37896e69b55d70 Mon Sep 17 00:00:00 2001 From: Seema Menon Date: Mon, 2 Dec 2024 10:35:23 +0000 Subject: [PATCH 1/6] changes to accomodate combine format --- .../src/Actor/src/Handler/CheckLpaHandler.php | 9 +- .../src/Handler/CreateViewerCodeHandler.php | 9 +- .../actor/check-combined-lpa.html.twig | 116 +++++++++++++ ...lpa-show-viewercode-combined-lpa.html.twig | 159 ++++++++++++++++++ 4 files changed, 291 insertions(+), 2 deletions(-) create mode 100644 service-front/app/src/Actor/templates/actor/check-combined-lpa.html.twig create mode 100644 service-front/app/src/Actor/templates/actor/lpa-show-viewercode-combined-lpa.html.twig diff --git a/service-front/app/src/Actor/src/Handler/CheckLpaHandler.php b/service-front/app/src/Actor/src/Handler/CheckLpaHandler.php index 912ba690e9..78b0eca471 100644 --- a/service-front/app/src/Actor/src/Handler/CheckLpaHandler.php +++ b/service-front/app/src/Actor/src/Handler/CheckLpaHandler.php @@ -37,6 +37,7 @@ use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\LoggerInterface; +use Common\Service\Features\FeatureEnabled; /** * @codeCoverageIgnore @@ -66,6 +67,7 @@ public function __construct( private RateLimitService $rateLimitService, private TranslatorInterface $translator, private AddLpa $addLpa, + private FeatureEnabled $featureEnabled, ) { parent::__construct($renderer, $urlHelper, $logger); @@ -195,9 +197,14 @@ public function handleGet( $lpa->getCaseSubtype() === 'hw' ? 'health and welfare' : 'property and finance' ); + $templateName = 'actor::check-lpa'; + if (($this->featureEnabled)('support_datastore_lpas')) { + $templateName = 'actor::check-combined-lpa'; + } + return new HtmlResponse( $this->renderer->render( - 'actor::check-lpa', + $templateName, [ 'form' => $this->form, 'lpa' => $lpa, diff --git a/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php b/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php index b3d61d9620..bff0402c5e 100644 --- a/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php +++ b/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php @@ -21,6 +21,7 @@ use Mezzio\Template\TemplateRendererInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Common\Service\Features\FeatureEnabled; /** * @codeCoverageIgnore @@ -37,6 +38,7 @@ public function __construct( AuthenticationInterface $authenticator, private LpaService $lpaService, private ViewerCodeService $viewerCodeService, + private FeatureEnabled $featureEnabled, ) { parent::__construct($renderer, $urlHelper); @@ -72,7 +74,12 @@ public function handle(ServerRequestInterface $request): ResponseInterface $lpaData = $this->lpaService->getLpaById($identity, $validated['lpa_token']); $actorRole = $lpaData['actor']['type'] === 'donor' ? 'Donor' : 'Attorney'; - return new HtmlResponse($this->renderer->render('actor::lpa-show-viewercode', [ + $templateName = 'actor::lpa-show-viewercode'; + if (($this->featureEnabled)('support_datastore_lpas')) { + $templateName = 'actor::lpa-show-viewercode-combined-lpa'; + } + + return new HtmlResponse($this->renderer->render($templateName, [ 'user' => $user, 'actorToken' => $validated['lpa_token'], 'code' => $codeData['code'], diff --git a/service-front/app/src/Actor/templates/actor/check-combined-lpa.html.twig b/service-front/app/src/Actor/templates/actor/check-combined-lpa.html.twig new file mode 100644 index 0000000000..8b12b51b41 --- /dev/null +++ b/service-front/app/src/Actor/templates/actor/check-combined-lpa.html.twig @@ -0,0 +1,116 @@ +{% extends '@actor/layout.html.twig' %} + +{% block html_title %}{% trans %}Confirm this is the correct LPA{% endtrans %} - {{ parent() }} {% endblock %} + +{% block content %} +
+
+ + {% trans %}Back{% endtrans %} +
+ +
+ +

{% trans %}Confirm this is the correct LPA{% endtrans %}

+ +
+
+ +
+
+
+ {% trans %}Type of LPA{% endtrans %} +
+
+ {% if lpa.caseSubtype.value|lower == "pfa" %} + {% trans %}Property and finance{% endtrans %} + {% else %} + {% trans %}Health and welfare{% endtrans %} + {% endif %} +
+
+
+
+ {% trans %}Donor name{% endtrans %} +
+
+ {{ actor_name(lpa.donor) }} +
+
+
+
+ {% trans %}Your name{% endtrans %} +
+
+ {% if userRole == "Trust corporation" %} + {{ actor.companyName }} {% trans %}(Trust corporation){% endtrans %} + {% else %} + {{ actor_name(actor) }} + {% endif %} +
+
+
+
+ {% trans %}Your role on this LPA{% endtrans %} +
+
+ {% if userRole == "Attorney" or userRole == "Trust corporation" %} + {% trans %}Attorney{% endtrans %} + {% elseif userRole == "Donor" %} + {% trans %}Donor{% endtrans %} + {% endif %} +
+
+
+ +
+ + + {% trans %}Warning{% endtrans %} + {% trans %}Check that these details are correct before continuing{% endtrans %} + +
+ +
+ + + {% trans %}What to do if the details are wrong{% endtrans %} + + +
+

+ {% trans %}If the information is wrong, or if a name is misspelt, please call us:{% endtrans %} +

+ {{ include('@partials/contact-details/telephone.html.twig', {heading_level: 2 }) }} +
+
+ + {{ govuk_form_open(form) }} + + {{ govuk_form_element(form.get('__csrf')) }} + +
+
+ + + + + + {% trans %}Cancel{% endtrans %} + +
+
+ + + {{ govuk_form_close() }} +
+
+
+
+{% endblock %} diff --git a/service-front/app/src/Actor/templates/actor/lpa-show-viewercode-combined-lpa.html.twig b/service-front/app/src/Actor/templates/actor/lpa-show-viewercode-combined-lpa.html.twig new file mode 100644 index 0000000000..6fc48e7737 --- /dev/null +++ b/service-front/app/src/Actor/templates/actor/lpa-show-viewercode-combined-lpa.html.twig @@ -0,0 +1,159 @@ +{% extends '@actor/layout.html.twig' %} + +{% block html_title %}{% trans %}Your new access code{% endtrans %} - {{ parent() }} {% endblock %} + +{% block content %} +
+
+ {% trans %}Back to your LPAs{% endtrans %} +
+ +
+ +
+ +
+ {{ actor_name(lpa.donor, false) }}, {{ lpa.caseSubtype.value == 'pfa' ? 'Property and finance' | trans : 'Health and welfare' | trans }} +

{% trans %}Your access code{% endtrans %}

+
+ +
+ + {{ include('@actor/partials/lpa-sub-navigation.html.twig') }} + +
+
+
+
+
+ + +
+

+ {% trans with {'%organisation%': organisation } %}Give this access code to %organisation%{% endtrans %} +
+ {{ add_hyphen_to_viewer_code(code) }} +

+

{% trans with {'%date%': lpa_date(expires)} %}This code expires in 30 days, on %date%.{% endtrans %}

+
+
+
+
+ +
+
+ {% if not feature_enabled("instructions_and_preferences") %} +
+ + {% trans %}Warning{% endtrans %} + {% if is_donor_signature_date_too_old(lpa) %} +

+ {% trans %}If there are instructions or preferences on this LPA, you may also be asked to show the paper LPA.{% endtrans %} +

+ {% elseif lpa.applicationHasRestrictions and lpa.applicationHasGuidance %} +

+ {% trans %}As there are instructions and preferences on this LPA, you may also be asked to show the paper LPA.{% endtrans %} +

+ {% elseif lpa.applicationHasRestrictions %} +

+ {% trans %}As there are instructions on this LPA, you may also be asked to show the paper LPA.{% endtrans %} +

+ {% elseif lpa.applicationHasGuidance %} +

+ {% trans %}As there are preferences on this LPA, you may also be asked to show the paper LPA.{% endtrans %} +

+ {% endif %} +
+ {% endif %} + +

{% trans %}What to do next{% endtrans %}

+ +

+ {% trans with { + '%organisation%': organisation, + '%link_en%': 'https://www.gov.uk/view-lpa', + '%link_cy%': 'https://www.gov.uk/gweld-atwrneiaeth-arhosol' + } %} + Give %organisation% this access code. They should go to + www.gov.uk/view-lpa to enter the access code and see a summary of the + LPA. %organisation% may still ask to see the paper LPA. + {% endtrans %} + +

+ + {% if feature_enabled('instructions_and_preferences') %} + {% if not is_donor_signature_date_too_old(lpa) %} +

+ {% if lpa.applicationHasRestrictions and lpa.applicationHasGuidance %} + {% trans %} + Scanned copies of the donor’s preferences and instructions will be shown in the LPA summary. You’ll need to show organisations the paper LPA if any part of these cannot be read properly. + {% endtrans %} + {% elseif lpa.applicationHasGuidance %} + {% trans %} + Scanned copies of the donor’s preferences will be shown in the LPA summary. You’ll need to show organisations the paper LPA if any part of these cannot be read properly. + {% endtrans %} + {% elseif lpa.applicationHasRestrictions %} + {% trans %} + Scanned copies of the donor’s instructions will be shown in the LPA summary. You’ll need to show organisations the paper LPA if any part of these cannot be read properly. + {% endtrans %} + {% endif %} +

+ {% elseif is_donor_signature_date_too_old(lpa) %} + {% if lpa.applicationHasRestrictions or lpa.applicationHasGuidance %} +

+ {% trans %} + Scanned copies of the donor’s preferences or instructions will be shown in the LPA summary. You’ll need to show organisations the paper LPA if any part of these cannot be read properly. + {% endtrans %} +

+ {% endif %} + {% endif %} + {% endif %} + + {% if lpa.caseSubtype.value == 'pfa' %} + {% if actorRole == 'Attorney' %} +

+ {% trans with {'%organisation%': organisation, '%donorFirstName%': lpa.donor.firstname} %} + %organisation% may ask you for other information, such as %donorFirstName%'s account details, and your name and contact details. They may also ask you to confirm your identity. This is to protect %donorFirstName% and prevent fraud. + {% endtrans %} +

+ {% endif %} + {% if actorRole == 'Donor' %} +

+ {% trans with {'%organisation%': organisation} %} + %organisation% may ask you for other information, such as your customer account details, your attorney's contact details and so on. + {% endtrans %} +

+ {% endif %} + {% elseif lpa.caseSubtype.value == 'hw' %} + {% if actorRole == 'Attorney' %} +

+ {% trans with {'%organisation%': organisation, '%donorFirstName%': lpa.donor.firstname} %} + %organisation% may ask you for other information, such as %donorFirstName%'s NHS number, your contact details and so on. + {% endtrans %} +

+ {% endif %} + {% if actorRole == 'Donor' %} +

+ {% trans with {'%organisation%': organisation} %} + %organisation% may ask you for other information, such as your NHS number, your attorney's contact details and so on. + {% endtrans %} +

+ {% endif %} + {% endif %} + + + {% trans %}Give another organisation access{% endtrans %} + +
+
+
+
+{% endblock %} From 390046211e1b3ee711c8f34dca2816fb86e7e2df Mon Sep 17 00:00:00 2001 From: Seema Menon Date: Mon, 2 Dec 2024 17:15:17 +0000 Subject: [PATCH 2/6] fixes --- .../app/src/Actor/src/Handler/CreateViewerCodeHandler.php | 1 - .../src/Actor/src/Handler/Factory/CheckLpaHandlerFactory.php | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php b/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php index 7b1bac2cb1..6585a5acf5 100644 --- a/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php +++ b/service-front/app/src/Actor/src/Handler/CreateViewerCodeHandler.php @@ -22,7 +22,6 @@ use Mezzio\Template\TemplateRendererInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; -use Common\Service\Features\FeatureEnabled; /** * @codeCoverageIgnore diff --git a/service-front/app/src/Actor/src/Handler/Factory/CheckLpaHandlerFactory.php b/service-front/app/src/Actor/src/Handler/Factory/CheckLpaHandlerFactory.php index 730e4aea02..7200d6fcef 100644 --- a/service-front/app/src/Actor/src/Handler/Factory/CheckLpaHandlerFactory.php +++ b/service-front/app/src/Actor/src/Handler/Factory/CheckLpaHandlerFactory.php @@ -14,6 +14,7 @@ use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Acpr\I18n\TranslatorInterface; +use Common\Service\Features\FeatureEnabled; class CheckLpaHandlerFactory { @@ -29,7 +30,8 @@ public function __invoke(ContainerInterface $container) $container->get(LpaService::class), $rateLimitFactory->factory('actor_code_failure'), $container->get(TranslatorInterface::class), - $container->get(AddLpa::class) + $container->get(AddLpa::class), + $container->get(FeatureEnabled::class), ); } } From 8afb5293b80555caef91dd779eb3fb33984629cb Mon Sep 17 00:00:00 2001 From: Seema Menon Date: Tue, 3 Dec 2024 23:09:40 +0000 Subject: [PATCH 3/6] test fixes --- .../app/features/actor-view-lpa.feature | 2 +- .../context/Integration/LpaContext.php | 140 ++++++++++++++++++ .../app/test/fixtures/combined_lpa.json | 6 +- 3 files changed, 144 insertions(+), 4 deletions(-) diff --git a/service-front/app/features/actor-view-lpa.feature b/service-front/app/features/actor-view-lpa.feature index 7eb8cf83ff..9275373074 100644 --- a/service-front/app/features/actor-view-lpa.feature +++ b/service-front/app/features/actor-view-lpa.feature @@ -61,7 +61,7 @@ Feature: View an LPA that I have added to my account Scenario Outline: The user can view a Combined LPA added to their account Given I have added a Combined LPA to my account And I am on the dashboard page - When I request to view an LPA which status is "" + When I request to view a Combined LPA which status is "" Then The full LPA is displayed with the correct Examples: | status | message | diff --git a/service-front/app/features/context/Integration/LpaContext.php b/service-front/app/features/context/Integration/LpaContext.php index c87508d925..17f9ba1a08 100644 --- a/service-front/app/features/context/Integration/LpaContext.php +++ b/service-front/app/features/context/Integration/LpaContext.php @@ -911,6 +911,146 @@ public function iHaveAddedAnLPAToMyAccount() $this->theLPAIsSuccessfullyAdded(); } + /** + * @Given /^I have added a Combined LPA to my account$/ + */ + public function iHaveAddedACombinedLPAToMyAccount() + { + $this->iHaveBeenGivenAccessToUseACombinedLPAViaCredentials(); + $this->iAmOnTheAddAnLPAPage(); + $this->iRequestToAddACombinedLPAWithValidDetailsUsing($this->activation_key, $this->activation_key); + $this->theCorrectLPAIsFoundAndICanConfirmToAddIt(); + $this->theLPAIsSuccessfullyAdded(); + } + + /** + * @Given /^I have been given access to use a Combined LPA via credentials$/ + */ + public function iHaveBeenGivenAccessToUseACombinedLPAViaCredentials() + { + $this->lpa = json_decode(file_get_contents(__DIR__ . '../../../../test/fixtures/combined_lpa.json')); + + $this->activation_key = 'XYUPHWQRECHV'; + $this->referenceNo = '700000000138'; + $this->userDob = '1975-10-05'; + $this->actorLpaToken = '24680'; + $this->actorId = 0; + + $this->lpaData = [ + 'user-lpa-actor-token' => $this->actorLpaToken, + 'date' => 'today', + 'actor' => [ + 'type' => 'primary-attorney', + 'details' => [ + 'addresses' => [ + [ + 'addressLine1' => '', + 'addressLine2' => '', + 'addressLine3' => '', + 'country' => '', + 'county' => '', + 'id' => 0, + 'postcode' => '', + 'town' => '', + 'type' => 'Primary', + ], + ], + 'companyName' => null, + 'dob' => '1975-10-05', + 'email' => 'test@test.com', + 'firstname' => 'Ian', + 'id' => 0, + 'middlenames' => null, + 'salutation' => 'Mr', + 'surname' => 'Deputy', + 'systemStatus' => true, + 'uId' => '700000000054', + ], + ], + 'lpa' => $this->lpa, + ]; + } + + public function iRequestToAddACombinedLPAWithValidDetailsUsing(string $code, string $storedCode) + { + // API call for checking LPA + $this->apiFixtures->append( + ContextUtilities::newResponse( + StatusCodeInterface::STATUS_OK, + json_encode($this->lpaData), + self::ADD_LPA_VALIDATE + ) + ); + + $addLpa = $this->container->get(AddLpa::class); + $lpaData = $addLpa->validate( + $this->userIdentity, + $storedCode, + $this->referenceNo, + $this->userDob + ); + + Assert::assertInstanceOf(AddLpaApiResult::class, $lpaData); + Assert::assertEquals(AddLpaApiResult::ADD_LPA_FOUND, $lpaData->getResponse()); + Assert::assertEquals(($lpaData->getData()['lpa'])->getUId(), $this->lpa->uId); + } + + /** + * @When /^I request to view a Combined LPA which status is "([^"]*)"$/ + */ + public function iRequestToViewACombinedLPAWhichStatusIs($status) + { + $this->lpa->status = $status; + + if ($status === 'Revoked') { + // API call for getting the LPA by id + $this->apiFixtures->append( + ContextUtilities::newResponse( + StatusCodeInterface::STATUS_OK, + json_encode( + [ + 'user-lpa-actor-token' => $this->actorLpaToken, + 'date' => 'date', + 'lpa' => [], + 'actor' => $this->lpaData['actor'], + ] + ) + ) + ); + } else { + // API call for getting the LPA by id + $this->apiFixtures->append( + ContextUtilities::newResponse( + StatusCodeInterface::STATUS_OK, + json_encode( + [ + 'user-lpa-actor-token' => $this->actorLpaToken, + 'date' => 'date', + 'lpa' => $this->lpa, + 'actor' => $this->lpaData['actor'], + ] + ), + self::LPA_SERVICE_GET_LPA_BY_ID + ) + ); + + // InstAndPrefImagesService::getImagesById + $this->apiFixtures->append( + ContextUtilities::newResponse( + StatusCodeInterface::STATUS_OK, + json_encode( + [ + 'uId' => (int) $this->lpa->uId, + 'status' => 'COLLECTION_COMPLETE', + 'signedUrls' => [], + ] + ), + self::INPSERVICE_GET_BY_ID + ) + ); + } + } + /** * @Given /^I have been given access to use an LPA via a paper document$/ */ diff --git a/service-front/app/test/fixtures/combined_lpa.json b/service-front/app/test/fixtures/combined_lpa.json index 06f46ed9c5..42c4f2f62d 100644 --- a/service-front/app/test/fixtures/combined_lpa.json +++ b/service-front/app/test/fixtures/combined_lpa.json @@ -18,7 +18,7 @@ "otherNames": null, "postcode": "DN37 5SH", "surname": "sanderson", - "systemStatus": "1", + "systemStatus": true, "town": "", "type": "Primary", "uId": "700000000815" @@ -37,7 +37,7 @@ "otherNames": null, "postcode": "", "surname": "Summers", - "systemStatus": "1", + "systemStatus": true, "town": "", "type": "Primary", "uId": "7000-0000-0849" @@ -98,7 +98,7 @@ "otherNames": null, "postcode": "ABC 123", "surname": "test", - "systemStatus": "1", + "systemStatus": true, "town": "Town", "type": "Primary", "uId": "7000-0015-1998" From 59cddd063a9bcf34715df6ccb1ff2c8ca44ab2c3 Mon Sep 17 00:00:00 2001 From: Seema Menon Date: Mon, 9 Dec 2024 13:04:05 +0000 Subject: [PATCH 4/6] getting ready for UAT --- docker-compose.yml | 2 +- terraform/environment/terraform.tfvars.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 67ea6bfbfe..ba6d7292a5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -109,7 +109,7 @@ services: ALLOW_MERIS_LPAS: "false" INSTRUCTIONS_AND_PREFERENCES: "true" ALLOW_GOV_ONE_LOGIN: "true" - SUPPORT_DATASTORE_LPAS: "false" + SUPPORT_DATASTORE_LPAS: "true" # Local only API_SERVICE_URL: diff --git a/terraform/environment/terraform.tfvars.json b/terraform/environment/terraform.tfvars.json index ed2db73e0d..978e6d67fc 100644 --- a/terraform/environment/terraform.tfvars.json +++ b/terraform/environment/terraform.tfvars.json @@ -62,7 +62,7 @@ "allow_meris_lpas": false, "instructions_and_preferences": true, "allow_gov_one_login": true, - "support_datastore_lpas": false + "support_datastore_lpas": true }, "dynamodb_tables": { "actor_codes": { @@ -161,7 +161,7 @@ "allow_meris_lpas": false, "instructions_and_preferences": true, "allow_gov_one_login": false, - "support_datastore_lpas": false + "support_datastore_lpas": true }, "dynamodb_tables": { "actor_codes": { From 3c88e90bbac151358e82501245664bd29e3ce1f4 Mon Sep 17 00:00:00 2001 From: Seema Menon Date: Mon, 9 Dec 2024 14:56:54 +0000 Subject: [PATCH 5/6] reverting the changes made for UAT --- docker-compose.yml | 2 +- terraform/environment/terraform.tfvars.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ba6d7292a5..67ea6bfbfe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -109,7 +109,7 @@ services: ALLOW_MERIS_LPAS: "false" INSTRUCTIONS_AND_PREFERENCES: "true" ALLOW_GOV_ONE_LOGIN: "true" - SUPPORT_DATASTORE_LPAS: "true" + SUPPORT_DATASTORE_LPAS: "false" # Local only API_SERVICE_URL: diff --git a/terraform/environment/terraform.tfvars.json b/terraform/environment/terraform.tfvars.json index 978e6d67fc..ed2db73e0d 100644 --- a/terraform/environment/terraform.tfvars.json +++ b/terraform/environment/terraform.tfvars.json @@ -62,7 +62,7 @@ "allow_meris_lpas": false, "instructions_and_preferences": true, "allow_gov_one_login": true, - "support_datastore_lpas": true + "support_datastore_lpas": false }, "dynamodb_tables": { "actor_codes": { @@ -161,7 +161,7 @@ "allow_meris_lpas": false, "instructions_and_preferences": true, "allow_gov_one_login": false, - "support_datastore_lpas": true + "support_datastore_lpas": false }, "dynamodb_tables": { "actor_codes": { From 866db8239c7bdb3acb3ba43e26eb54a8aab90e94 Mon Sep 17 00:00:00 2001 From: Seema Menon Date: Fri, 13 Dec 2024 00:04:18 +0000 Subject: [PATCH 6/6] removed debug code in file --- .../lpa-donor-details-combined-lpa.html.twig | 2 -- 1 file changed, 2 deletions(-) diff --git a/service-front/app/src/Common/templates/partials/lpa-summary-details/lpa-donor-details-combined-lpa.html.twig b/service-front/app/src/Common/templates/partials/lpa-summary-details/lpa-donor-details-combined-lpa.html.twig index fe2214744d..02110823fc 100644 --- a/service-front/app/src/Common/templates/partials/lpa-summary-details/lpa-donor-details-combined-lpa.html.twig +++ b/service-front/app/src/Common/templates/partials/lpa-summary-details/lpa-donor-details-combined-lpa.html.twig @@ -4,8 +4,6 @@
{% trans %}Name{% endtrans %}
{{ actor_name(lpa.donor) }}
-
{{ lpa.donor.otherNames }}
- {{ dump(lpa) }} {% if lpa.donor.otherNames is not empty and lpa.donor.otherNames != 'null' %}
{% trans %}Also known as{% endtrans %}