From f59ed76ec321df086a447c4d86bf51fd47737955 Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Tue, 3 Sep 2024 08:14:44 +0200 Subject: [PATCH] Convert choices back to the unslugified variant --- CHANGELOG.rst | 3 +++ form_designer/models.py | 13 +++++++------ tests/testapp/test_forms.py | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5ea920e..0b0ee24 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,9 @@ Change log Next version ------------ +* Changed form submissions to convert choice values back to the unslugified + variant. + 0.25 ---- diff --git a/form_designer/models.py b/form_designer/models.py index c48ea38..4f6c520 100644 --- a/form_designer/models.py +++ b/form_designer/models.py @@ -176,12 +176,13 @@ def submissions_data(self, *, submissions=None): if submissions is None: submissions = self.submissions.all() - def loader(submission, field): + def loader(submission, field, choice_dict): + value = None if field.name in submission.data: - return submission.data[field.name] - if (old := field._old_name) is not None and old in submission.data: - return submission.data[old] - return None + value = submission.data[field.name] + elif (old := field._old_name) is not None and old in submission.data: + value = submission.data[old] + return choice_dict.get(value, value) def old_name_loader(submission, old_name): return submission.data.get(old_name) @@ -189,7 +190,7 @@ def old_name_loader(submission, old_name): fields_and_loaders = [ ( {"name": field.name, "title": field.title}, - partial(loader, field=field), + partial(loader, field=field, choice_dict=dict(field.get_choices())), ) for field in self.fields.all() ] diff --git a/tests/testapp/test_forms.py b/tests/testapp/test_forms.py index b536eb9..70994ba 100644 --- a/tests/testapp/test_forms.py +++ b/tests/testapp/test_forms.py @@ -158,7 +158,7 @@ def test_forms(self): "title": "Please call me", "value": False, }, - {"name": "radio", "title": "Radio Select", "value": "two-what"}, + {"name": "radio", "title": "Radio Select", "value": "two what"}, {"name": "date", "title": "Date", "value": "2022-10-02"}, ], }