From 9a603b6cef26d27f2c4f787d3719b8d1825ec4da Mon Sep 17 00:00:00 2001 From: Sandeep Chauhan <sandeepsajan0@gmail.com> Date: Fri, 19 Jan 2024 12:56:04 +0530 Subject: [PATCH] Fix errors for compare revisions page(JSONDecodeError and Invalid literal int error) (#3727) Fixes #3709 --- hypha/apply/funds/blocks.py | 6 ++++++ hypha/apply/stream_forms/blocks.py | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hypha/apply/funds/blocks.py b/hypha/apply/funds/blocks.py index 8b89f2487..4984c4823 100644 --- a/hypha/apply/funds/blocks.py +++ b/hypha/apply/funds/blocks.py @@ -51,6 +51,8 @@ class ValueBlock(ApplicationSingleIncludeFieldBlock): icon = "decimal" def prepare_data(self, value, data, serialize): + if not data: + return data return format_number_as_currency(str(data)) @@ -99,6 +101,8 @@ class AddressFieldBlock(ApplicationSingleIncludeFieldBlock): return ", ".join(data[field] for field in ADDRESS_FIELDS_ORDER if data[field]) def prepare_data(self, value, data, serialize): + if not data: + return data data = json.loads(data) data = {field: data[field] for field in ADDRESS_FIELDS_ORDER} @@ -193,6 +197,8 @@ class DurationBlock(ApplicationSingleIncludeFieldBlock): return field_kwargs def prepare_data(self, value, data, serialize): + if not data: + return data if value["duration_type"] == self.DAYS: return self.DURATION_DAY_OPTIONS[int(data)] if value["duration_type"] == self.WEEKS: diff --git a/hypha/apply/stream_forms/blocks.py b/hypha/apply/stream_forms/blocks.py index e67c7e57d..70d264dd5 100644 --- a/hypha/apply/stream_forms/blocks.py +++ b/hypha/apply/stream_forms/blocks.py @@ -285,6 +285,8 @@ class CheckboxesFieldBlock(OptionalFormFieldBlock): return kwargs def prepare_data(self, value, data, serialize=False): + if not data: + return data base_prepare = super().prepare_data return [base_prepare(value, item, serialize) for item in data] @@ -443,7 +445,9 @@ class MultiFileFieldBlock(UploadableMediaBlock): def prepare_data(self, value, data, serialize): if serialize: - return [file.serialize() for file in data] + if data: + return [file.serialize() for file in data] + return None return data def no_response(self): -- GitLab