Skip to content
Snippets Groups Projects
Commit fc00482b authored by Parbhat Puri's avatar Parbhat Puri Committed by Fredrik Jonsson
Browse files

Exclude non-text answers like attachment from compare revisions

parent dd74d79f
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,9 @@ from django.utils.text import mark_safe
from django.core.files import File
from django.core.files.storage import get_storage_class
from opentech.apply.stream_forms.blocks import FormFieldBlock
from opentech.apply.stream_forms.blocks import (
FileFieldBlock, FormFieldBlock, ImageFieldBlock, MultiFileFieldBlock
)
from opentech.apply.utils.blocks import SingleIncludeMixin
from opentech.apply.stream_forms.blocks import UploadableMediaBlock
......@@ -112,6 +114,14 @@ class AccessFormData:
if isinstance(field.block, FormFieldBlock):
yield field_id
@property
def question_text_field_ids(self):
for field_id, field in self.fields.items():
if isinstance(field.block, (FileFieldBlock, ImageFieldBlock, MultiFileFieldBlock)):
pass
elif isinstance(field.block, FormFieldBlock):
yield field_id
@property
def raw_fields(self):
# Field ids to field class mapping - similar to raw_data
......@@ -168,6 +178,14 @@ class AccessFormData:
for field_id in self.normal_blocks
]
def render_text_blocks_answers(self):
# Returns a list of the rendered answers of type text
return [
self.render_answer(field_id, include_question=True)
for field_id in self.question_text_field_ids
if field_id not in self.named_blocks
]
def output_answers(self):
# Returns a safe string of the rendered answers
return mark_safe(''.join(self.render_answers()))
......@@ -462,11 +462,11 @@ class RevisionCompareView(DetailView):
def compare_revisions(self, from_data, to_data):
self.object.form_data = from_data.form_data
from_fields = self.object.render_answers()
from_rendered_text_fields = self.object.render_text_blocks_answers()
from_required = self.render_required()
self.object.form_data = to_data.form_data
to_fields = self.object.render_answers()
to_rendered_text_fields = self.object.render_text_blocks_answers()
to_required = self.render_required()
# Compare all the required fields
......@@ -478,12 +478,12 @@ class RevisionCompareView(DetailView):
setattr(self.object, 'get_{}_display'.format(field), diff)
# Compare all the answers
diffed_answers = [
diffed_text_fields_answers = [
compare(*fields, should_bleach=False)
for fields in zip(from_fields, to_fields)
for fields in zip(from_rendered_text_fields, to_rendered_text_fields)
]
self.object.output_answers = mark_safe(''.join(diffed_answers))
self.object.output_answers = mark_safe(''.join(diffed_text_fields_answers))
def render_required(self):
return [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment