From 48a0608801d8cb8c0df0036049187d04485d9a67 Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Tue, 24 Jul 2018 16:13:07 +0100 Subject: [PATCH] Tidy up the population of the review list preventing duplication --- .../review/templates/review/review_list.html | 6 ++--- opentech/apply/review/views.py | 27 ++++++++++--------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/opentech/apply/review/templates/review/review_list.html b/opentech/apply/review/templates/review/review_list.html index 9c5904e81..8450319eb 100644 --- a/opentech/apply/review/templates/review/review_list.html +++ b/opentech/apply/review/templates/review/review_list.html @@ -21,10 +21,10 @@ </div> <div class="wrapper wrapper--reviews-table js-reviews-table"> <table class="reviews-list"> - {% for question, answers in review_data.items %} + {% for answers in review_data.values %} <tr class="reviews-list__tr"> - <th class="reviews-list__th">{{ question }}</th> - {% for answer in answers %} + <th class="reviews-list__th">{{ answers.question }}</th> + {% for answer in answers.answers %} <td class="reviews-list__td">{{ answer|bleach }}</td> {% endfor %} </tr> diff --git a/opentech/apply/review/views.py b/opentech/apply/review/views.py index 549f19b24..9deb11e22 100644 --- a/opentech/apply/review/views.py +++ b/opentech/apply/review/views.py @@ -124,26 +124,29 @@ class ReviewListView(ListView): def get_context_data(self, **kwargs): review_data = {} + # Add the header rows + review_data['title'] = {'question': '', 'answers': list()} + review_data['score'] = {'question': 'Overall Score', 'answers': list()} + review_data['recommendation'] = {'question': 'Recommendation', 'answers': list()} + for review in self.object_list: - # Add the name header row - review_data.setdefault('', []).append(str(review.author)) - review_data.setdefault('Score', []).append(str(review.score)) - review_data.setdefault('Recommendation', []).append(review.get_recommendation_display()) + review_data['title']['answers'].append(str(review.author)) + review_data['score']['answers'].append(str(review.score)) + review_data['recommendation']['answers'].append(review.get_recommendation_display()) for data, field in review.data_and_fields(): if not isinstance(field.block, RecommendationBlock): - title = field.value['field_label'] - review_data.setdefault(title, []) + question = field.value['field_label'] + review_data.setdefault(field.id, {'question': question, 'answers': list()}) if isinstance(field.block, ScoreFieldBlock): value = json.loads(data) - review_data.setdefault(title, []).append(str(value[0])) - review_data.setdefault(f'Rate {title}', []) - - rating = int(value[1]) - review_data.setdefault(f'Rate {title}', []).append(RATE_CHOICES_DICT.get(rating, RATE_CHOICE_NA)) + rating_value = int(value[1]) + rating = RATE_CHOICES_DICT.get(rating_value, RATE_CHOICE_NA) + comment = str(value[0]) + review_data[field.id]['answers'].append(rating + comment) else: - review_data.setdefault(title, []).append(str(data)) + review_data[field.id]['answers'].append(str(data)) return super().get_context_data( submission=self.submission, -- GitLab