From 2873650bd7ca27c37932f251a793b6e59a76e683 Mon Sep 17 00:00:00 2001 From: Viktor van Wijk Date: Fri, 24 Jan 2025 17:36:35 +0100 Subject: [PATCH] :construction: [#4980] Trying to solve bug with nested keys not being included --- .../registrations/contrib/json_dump/plugin.py | 11 +++++---- .../contrib/json_dump/tests/test_backend.py | 24 +++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/openforms/registrations/contrib/json_dump/plugin.py b/src/openforms/registrations/contrib/json_dump/plugin.py index d53c8ab61b..5429a6b542 100644 --- a/src/openforms/registrations/contrib/json_dump/plugin.py +++ b/src/openforms/registrations/contrib/json_dump/plugin.py @@ -8,6 +8,7 @@ from zgw_consumers.client import build_client +from openforms.formio.datastructures import FormioData from openforms.formio.service import rewrite_formio_components from openforms.formio.typing import ( FileComponent, @@ -39,10 +40,12 @@ def register_submission( state = submission.load_submission_value_variables_state() # Generate values - all_values: JSONObject = { - **state.get_static_data(), - **state.get_data(), # dynamic values from user input - } + all_values = ( + { + **state.get_static_data(), + **state.get_data(as_formio_data=True), # dynamic values from user input + } + ) values = { key: value for key, value in all_values.items() diff --git a/src/openforms/registrations/contrib/json_dump/tests/test_backend.py b/src/openforms/registrations/contrib/json_dump/tests/test_backend.py index 03c94d1c3a..9a3246270e 100644 --- a/src/openforms/registrations/contrib/json_dump/tests/test_backend.py +++ b/src/openforms/registrations/contrib/json_dump/tests/test_backend.py @@ -695,3 +695,27 @@ def test_radio_component_with_form_variable_as_data_source(self): result["api_response"]["data"]["schema"]["properties"]["radio"]["enum"], ["A", "B", "C", ""], ) + + def test_nested_component_key(self): + submission = SubmissionFactory.from_components( + [ + {"key": "foobar", "type": "textfield", "label": "Nested key"}, + ], + completed=True, + submitted_data={"foobar": "baz"}, + with_public_registration_reference=True, + ) + + json_plugin = JSONDumpRegistration("json_registration_plugin") + + options: JSONDumpOptions = { + "service": self.service, + "path": "json_plugin", + "variables": ["foobar"], + } + + result = json_plugin.register_submission(submission, options) + assert result is not None + + print(result["api_response"]["data"]) + self.assertEqual(result["api_response"]["data"]["values"]["foo.bar"], "baz")