diff --git a/opentech/apply/funds/models/mixins.py b/opentech/apply/funds/models/mixins.py index 50c3c0ccdb24e4e3d3e68df66a36c8260cdb2aba..fbc9a879df0c28d2c803ac1e566a257edeb5d529 100644 --- a/opentech/apply/funds/models/mixins.py +++ b/opentech/apply/funds/models/mixins.py @@ -22,33 +22,27 @@ class AccessFormData: # values data = self.form_data.copy() for field_name, field_id in self.must_include.items(): - response = data.pop(field_name) - data[field_id] = response + if field_id not in data: + response = data[field_name] + data[field_id] = response return data + def get_definitive_id(self, id): + if id in self.must_include: + return self.must_include[id] + return id + def field(self, id): - try: - return self.fields[id] - except KeyError as e: - try: - actual_id = self.must_include[id] - except KeyError: - raise e - else: - return self.fields[actual_id] + definitive_id = self.get_definitive_id(id) + return self.raw_fields[definitive_id] def data(self, id): + definitive_id = self.get_definitive_id(id) try: - return self.form_data[id] + return self.raw_data[definitive_id] except KeyError as e: - try: - transposed_must_include = {v: k for k, v in self.must_include.items()} - actual_id = transposed_must_include[id] - except KeyError: - # We have most likely progressed application forms so the data isnt in form_data - return None - else: - return self.form_data[actual_id] + # We have most likely progressed application forms so the data isnt in form_data + return None @property def question_field_ids(self): diff --git a/opentech/apply/review/models.py b/opentech/apply/review/models.py index e038f2a94afdb06e8cb6799cec187afb6ff8faec..aca75207943f3c177d7fee12340e4a95a851ed9e 100644 --- a/opentech/apply/review/models.py +++ b/opentech/apply/review/models.py @@ -127,6 +127,9 @@ class Review(ReviewFormFieldsMixin, BaseStreamForm, AccessFormData, models.Model def outcome(self): return self.get_recommendation_display() + def get_comments_display(self, include_question=True): + return self.render_answer(self.comment_field.id, include_question=include_question) + def get_absolute_url(self): return reverse('apply:reviews:review', args=(self.id,)) diff --git a/opentech/apply/review/templates/review/review_detail.html b/opentech/apply/review/templates/review/review_detail.html index 94182ff8fd81de68d0d9ea6f031010f4b77fb86c..8581f9d77c2c74931bbd6865501b5d6f935ff1c8 100644 --- a/opentech/apply/review/templates/review/review_detail.html +++ b/opentech/apply/review/templates/review/review_detail.html @@ -29,6 +29,8 @@ </div> <div class="rich-text rich-text--answers"> + {{ object.get_comments_display }} + {{ object.output_answers }} </div> {% endblock %} diff --git a/opentech/apply/review/views.py b/opentech/apply/review/views.py index cff082171c1e46ec35a1c00f056206efdcb3bf24..a287d9159769777074b37ef3814b86eef0cfd4b6 100644 --- a/opentech/apply/review/views.py +++ b/opentech/apply/review/views.py @@ -130,6 +130,7 @@ class ReviewListView(ListView): review_data['score'] = {'question': 'Overall Score', 'answers': list()} review_data['recommendation'] = {'question': 'Recommendation', 'answers': list()} review_data['revision'] = {'question': 'Revision', 'answers': list()} + review_data['comments'] = {'question': 'Comments', 'answers': list()} responses = self.object_list.count() @@ -137,6 +138,7 @@ class ReviewListView(ListView): 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()) + review_data['comments']['answers'].append(review.get_comments_display(include_question=False)) if review.for_latest: revision = 'Current' else: