From 20a3cd97ba71653938c78bf3129b3e59851db6e8 Mon Sep 17 00:00:00 2001 From: "Dharmraj Jhala (OpenERP)" Date: Tue, 25 Mar 2014 18:38:48 +0530 Subject: [PATCH] [IMP] improved code so that template calls minimum function bzr revid: dizzy.zala@gmail.com-20140325130848-w96dwzhu6kktw428 --- addons/survey/controllers/main.py | 18 +++++++++++++----- addons/survey/views/survey_result.xml | 20 ++++++++++++-------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/addons/survey/controllers/main.py b/addons/survey/controllers/main.py index 305fe050ddc..a5f1260eb75 100644 --- a/addons/survey/controllers/main.py +++ b/addons/survey/controllers/main.py @@ -291,15 +291,22 @@ class WebsiteSurvey(http.Controller): if post: current_filters, filter_display_data = self.filter_input_ids(post) return request.website.render(result_template, - {'survey': survey, - 'prepare_result': self.prepare_result, - 'get_input_summary': self.get_input_summary, - 'get_graph_data': self.get_graph_data, + {'survey_dict': self.prepare_result_dict(survey, current_filters), 'page_range': self.page_range, 'current_filters': current_filters, 'filter_display_data': filter_display_data }) + def prepare_result_dict(self,survey, current_filters=[]): + result = {'survey':survey, 'page_ids': []} + for page in survey.page_ids: + page_dict = {'page': page, 'question_ids': []} + for question in page.question_ids: + question_dict = { 'question':question, 'input_summary':self.get_input_summary(question, current_filters),'prepare_result':self.prepare_result(question, current_filters)} + page_dict['question_ids'].append(question_dict) + result['page_ids'].append(page_dict) + return result + def filter_input_ids(self, filters): '''If user applies any filters, then this function returns list of filtered user_input_id and label's strings for display data in web''' @@ -386,9 +393,10 @@ class WebsiteSurvey(http.Controller): return result_summary - @http.route(['/survey/results/graph/'], + @http.route(['/survey/results/graph/'], type='http', auth='user', multilang=True, website=True) def get_graph_data(self, question, **post): + question = request.registry.get('survey.question').browse(request.cr, request.uid, question) '''Returns appropriate formated data required by graph library on basis of filter''' current_filters = safe_eval(post.get('current_filters', '[]')) result = [] diff --git a/addons/survey/views/survey_result.xml b/addons/survey/views/survey_result.xml index ffefd853dc0..dc1be6dc3d0 100644 --- a/addons/survey/views/survey_result.xml +++ b/addons/survey/views/survey_result.xml @@ -13,6 +13,7 @@
+

@@ -22,11 +23,14 @@
-
+
+


-
- +
+ + +

Question @@ -68,7 +72,7 @@ - + @@ -120,7 +124,7 @@
  • - Pie Chart + Pie Chart
  • @@ -147,7 +151,7 @@ - +

    @@ -166,7 +170,7 @@