Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit 814d844

Browse files
authored
Merge pull request #17 from itk-dev/hotfix/use-webform-submission-rendering
DW-439: Changed rendering of submission data
2 parents b80c392 + dce6a87 commit 814d844

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

os2forms_digital_post.services.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ services:
99

1010
os2forms_digital_post.webform_helper:
1111
class: Drupal\os2forms_digital_post\Helper\WebformHelper
12+
arguments: ["@entity_type.manager", "@renderer"]

src/Commands/CreatePdf.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ public function create($template, array $options = [
6767
'file_location' => '',
6868
'file_name' => 'test.pdf',
6969
]) {
70-
$elements[] = [];
7170
$webform_submission = $this->entityTypeManager->getStorage('webform_submission')->load($options['submission_id']);
7271

7372
if (!$webform_submission) {

src/Helper/WebformHelper.php

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,45 @@
44

55
use Drupal\os2forms_cpr_lookup\CPR\CprServiceResult;
66
use Drupal\webform\WebformSubmissionInterface;
7+
use Drupal\Core\Entity\EntityTypeManagerInterface;
8+
use Drupal\Core\Render\Renderer;
79

810
/**
911
* Webform helper.
1012
*/
1113
final class WebformHelper {
1214

15+
/**
16+
* The entity type manager.
17+
*
18+
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
19+
*/
20+
protected $entityTypeManager;
21+
22+
/**
23+
* The drupal renderer.
24+
*
25+
* @var Drupal\Core\Render\Renderer
26+
*/
27+
protected $renderer;
28+
29+
/**
30+
* Constructor.
31+
*/
32+
public function __construct(EntityTypeManagerInterface $entity_type_manager, Renderer $renderer) {
33+
$this->entityTypeManager = $entity_type_manager;
34+
$this->renderer = $renderer;
35+
}
36+
1337
/**
1438
* Get template context.
1539
*/
1640
public function getTemplateContext(WebformSubmissionInterface $webformSubmission, CprServiceResult $cprServiceResult, array $configuration = []) {
17-
18-
$elements = [];
19-
$blacklistedElements = $configuration['blacklist_elements_for_template'] ?? [];
20-
$submissionData = $webformSubmission->getData();
2141
$webform = $webformSubmission->getWebform();
22-
foreach ($submissionData as $key => $value) {
23-
if (array_key_exists($key, $blacklistedElements)) {
24-
continue;
25-
}
26-
27-
$element = $webform->getElement($key);
2842

29-
$elements[] = [
30-
'name' => $element['#title'],
31-
'value' => $element['#return_value'] ?? $value,
32-
];
33-
}
43+
$view_builder = $this->entityTypeManager->getViewBuilder('webform_submission');
44+
$pre_render = $view_builder->view($webformSubmission, 'HTML');
45+
$webformSubmissionRendered = $this->renderer->renderPlain($pre_render);
3446

3547
// We cannot use “side” (from address lookup via cpr) as “suiteIdentifier”
3648
// when sending digital port. Therefore we append it to “floor” instead.
@@ -51,8 +63,8 @@ public function getTemplateContext(WebformSubmissionInterface $webformSubmission
5163

5264
return [
5365
'label' => $webform->label(),
54-
'elements' => $elements,
5566
'recipient' => $recipient,
67+
'submission' => $webformSubmissionRendered
5668
];
5769
}
5870

0 commit comments

Comments
 (0)