From 5e1221b339694ff60a960df271293357e7cc252a Mon Sep 17 00:00:00 2001 From: Richard Mathot Date: Fri, 25 Jul 2014 14:48:57 +0200 Subject: [PATCH] [FIX] survey: display comments in results --- addons/survey/controllers/main.py | 5 ++-- addons/survey/survey.py | 18 ++++++++----- addons/survey/views/survey_result.xml | 39 ++++++++++++++++++++++++++- 3 files changed, 53 insertions(+), 9 deletions(-) diff --git a/addons/survey/controllers/main.py b/addons/survey/controllers/main.py index bd08fecf6d1..4287bbcf655 100644 --- a/addons/survey/controllers/main.py +++ b/addons/survey/controllers/main.py @@ -394,9 +394,10 @@ class WebsiteSurvey(http.Controller): result = [] if question.type == 'multiple_choice': result.append({'key': str(question.question), - 'values': survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context)}) + 'values': survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context)['answers'] + }) if question.type == 'simple_choice': - result = survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context) + result = survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context)['answers'] if question.type == 'matrix': data = survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context) for answer in data['answers']: diff --git a/addons/survey/survey.py b/addons/survey/survey.py index e5e1149a7d7..f110afae352 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -345,16 +345,20 @@ class survey_survey(osv.Model): context = {} #Calculate and return statistics for choice if question.type in ['simple_choice', 'multiple_choice']: - result_summary = {} - [result_summary.update({label.id: {'text': label.value, 'count': 0, 'answer_id': label.id}}) for label in question.labels_ids] + answers = {} + comments = [] + [answers.update({label.id: {'text': label.value, 'count': 0, 'answer_id': label.id}}) for label in question.labels_ids] for input_line in question.user_input_line_ids: - if input_line.answer_type == 'suggestion' and result_summary.get(input_line.value_suggested.id) and (not(current_filters) or input_line.user_input_id.id in current_filters): - result_summary[input_line.value_suggested.id]['count'] += 1 - result_summary = result_summary.values() + if input_line.answer_type == 'suggestion' and answers.get(input_line.value_suggested.id) and (not(current_filters) or input_line.user_input_id.id in current_filters): + answers[input_line.value_suggested.id]['count'] += 1 + if input_line.answer_type == 'text' and (not(current_filters) or input_line.user_input_id.id in current_filters): + comments.append(input_line) + result_summary = {'answers': answers.values(), 'comments': comments} #Calculate and return statistics for matrix if question.type == 'matrix': rows, answers, res = {}, {}, {} + comments = [] [rows.update({label.id: label.value}) for label in question.labels_ids_2] [answers.update({label.id: label.value}) for label in question.labels_ids] for cell in product(rows.keys(), answers.keys()): @@ -362,7 +366,9 @@ class survey_survey(osv.Model): for input_line in question.user_input_line_ids: if input_line.answer_type == 'suggestion' and (not(current_filters) or input_line.user_input_id.id in current_filters): res[(input_line.value_suggested_row.id, input_line.value_suggested.id)] += 1 - result_summary = {'answers': answers, 'rows': rows, 'result': res} + if input_line.answer_type == 'text' and (not(current_filters) or input_line.user_input_id.id in current_filters): + comments.append(input_line) + result_summary = {'answers': answers, 'rows': rows, 'result': res, 'comments': comments} #Calculate and return statistics for free_text, textbox, datetime if question.type in ['free_text', 'textbox', 'datetime']: diff --git a/addons/survey/views/survey_result.xml b/addons/survey/views/survey_result.xml index 7763321129f..c1303b87b0f 100644 --- a/addons/survey/views/survey_result.xml +++ b/addons/survey/views/survey_result.xml @@ -115,6 +115,28 @@ + + + + @@ -217,6 +247,13 @@ + +
+ + + + +