From ef3480bf82adb3012ce377bbacc965ceeb883d5b Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Tue, 7 Aug 2018 14:26:41 +0100 Subject: [PATCH] Allow blocks to control how they output the values and no response --- opentech/apply/funds/blocks.py | 3 +++ opentech/apply/stream_forms/blocks.py | 14 ++++++++++++++ .../templates/stream_forms/render_field.html | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/opentech/apply/funds/blocks.py b/opentech/apply/funds/blocks.py index 58d994469..695792121 100644 --- a/opentech/apply/funds/blocks.py +++ b/opentech/apply/funds/blocks.py @@ -80,6 +80,9 @@ class DurationBlock(ApplicationMustIncludeFieldBlock): field_kwargs['choices'] = self.DURATION_OPTIONS.items() return field_kwargs + def format_data(self, data): + return self.DURATION_OPTIONS[int(data)] + class Meta: icon = 'date' diff --git a/opentech/apply/stream_forms/blocks.py b/opentech/apply/stream_forms/blocks.py index 903f23228..77692d430 100644 --- a/opentech/apply/stream_forms/blocks.py +++ b/opentech/apply/stream_forms/blocks.py @@ -50,9 +50,20 @@ class FormFieldBlock(StructBlock): return self.get_field_class(struct_value)( **self.get_field_kwargs(struct_value)) + def get_context(self, value, parent_context): + context = super().get_context(value, parent_context) + parent_context['data'] = self.format_data(parent_context['data']) or self.no_response() + return context + def get_searchable_content(self, value, data): return str(data) + def format_data(self, data): + return data + + def no_responose(self): + return "No response" + class OptionalFormFieldBlock(FormFieldBlock): required = BooleanBlock(label=_('Required'), required=False) @@ -126,6 +137,9 @@ class CheckboxFieldBlock(FormFieldBlock): def get_searchable_content(self, value, data): return None + def no_responose(self): + return False + class RadioButtonsFieldBlock(OptionalFormFieldBlock): choices = ListBlock(CharBlock(label=_('Choice'))) diff --git a/opentech/apply/stream_forms/templates/stream_forms/render_field.html b/opentech/apply/stream_forms/templates/stream_forms/render_field.html index 049375a32..668d58eac 100644 --- a/opentech/apply/stream_forms/templates/stream_forms/render_field.html +++ b/opentech/apply/stream_forms/templates/stream_forms/render_field.html @@ -1,4 +1,4 @@ <div> <h5>{{ value.field_label }}</h5> - <div>{% block data_display %}{{ data|default:"No response" }}{% endblock %}</div> + <div>{% block data_display %}{{ data }}{% endblock %}</div> </div> -- GitLab