diff --git a/opentech/apply/review/templates/review/review_list.html b/opentech/apply/review/templates/review/review_list.html index 9c5904e81c854eccb4f05a02ac3f2f515ac8a1ae..8450319eb8e878286d1bb56e0bbcc059dff6d7ee 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 549f19b24529bdf540cc75dc6cae5e64432edfec..9deb11e22a10e40785d5a902b45ae6ea9ef200a2 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,