[IMP] removed ajax calls and loaded data while rendering the template
bzr revid: dizzy.zala@gmail.com-20140404051913-ecy6jm62fxacs6me
This commit is contained in:
@@ -309,7 +309,7 @@ class WebsiteSurvey(http.Controller):
|
||||
for page in survey.page_ids:
|
||||
page_dict = {'page': page, 'question_ids': []}
|
||||
for question in page.question_ids:
|
||||
question_dict = { 'question':question, 'input_summary':survey_obj.get_input_summary(request.cr, request.uid, question, current_filters, context=request.context),'prepare_result':survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context)}
|
||||
question_dict = {'question':question, 'input_summary':survey_obj.get_input_summary(request.cr, request.uid, question, current_filters, context=request.context), 'prepare_result':survey_obj.prepare_result(request.cr, request.uid, question, current_filters, context=request.context), 'graph_data': self.get_graph_data(question, current_filters)}
|
||||
page_dict['question_ids'].append(question_dict)
|
||||
result['page_ids'].append(page_dict)
|
||||
return result
|
||||
@@ -332,13 +332,9 @@ class WebsiteSurvey(http.Controller):
|
||||
total = ceil(total_record / float(limit))
|
||||
return range(1, int(total + 1))
|
||||
|
||||
@http.route(['/survey/results/graph/<int:question>'],
|
||||
type='http', auth='user', multilang=True, website=True)
|
||||
def get_graph_data(self, question, **post):
|
||||
def get_graph_data(self, question, current_filters=[]):
|
||||
'''Returns appropriate formated data required by graph library on basis of filter'''
|
||||
question = request.registry['survey.question'].browse(request.cr, request.uid, question)
|
||||
survey_obj = request.registry['survey.survey']
|
||||
current_filters = safe_eval(post.get('current_filters', '[]'))
|
||||
result = []
|
||||
if question.type == 'multiple_choice':
|
||||
result.append({'key': str(question.question),
|
||||
|
||||
@@ -105,34 +105,25 @@ $(document).ready(function () {
|
||||
$.each(survey_graphs, function(index, graph){
|
||||
var question_id = $(graph).attr("data-question_id");
|
||||
var graph_type = $(graph).attr("data-graph_type");
|
||||
var current_filters = $(graph).attr("data-current_filters");
|
||||
console.log(current_filters);
|
||||
$.ajax({
|
||||
url: '/survey/results/graph/'+question_id,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data:{'current_filters': current_filters},
|
||||
success: function(response, status, xhr, wfe){
|
||||
if(graph_type == 'multi_bar'){
|
||||
nv.addGraph(function(){
|
||||
var chart = init_multibar_chart();
|
||||
return load_chart(chart,response,question_id,25);
|
||||
});
|
||||
}
|
||||
else if(graph_type == 'bar'){
|
||||
nv.addGraph(function() {
|
||||
var chart = init_bar_chart();
|
||||
return load_chart(chart,response,question_id,35);
|
||||
});
|
||||
}
|
||||
else if(graph_type == 'pie'){
|
||||
nv.addGraph(function() {
|
||||
var chart = init_pie_chart();
|
||||
return load_chart(chart,response,question_id,25,'pie');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
var graph_data = JSON.parse($(graph).attr("graph-data"));
|
||||
if(graph_type == 'multi_bar'){
|
||||
nv.addGraph(function(){
|
||||
var chart = init_multibar_chart();
|
||||
return load_chart(chart, graph_data, question_id,25);
|
||||
});
|
||||
}
|
||||
else if(graph_type == 'bar'){
|
||||
nv.addGraph(function() {
|
||||
var chart = init_bar_chart();
|
||||
return load_chart(chart, graph_data, question_id,35);
|
||||
});
|
||||
}
|
||||
else if(graph_type == 'pie'){
|
||||
nv.addGraph(function() {
|
||||
var chart = init_pie_chart();
|
||||
return load_chart(chart, graph_data, question_id,25,'pie');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Script for filter
|
||||
@@ -165,7 +156,7 @@ $(document).ready(function () {
|
||||
window.location.href = document.URL+'?'+encodeURI('finished');
|
||||
}
|
||||
else if (document.URL.indexOf("finished") == -1){
|
||||
window.location.href = document.URL+'&'+encodeURI('finished');
|
||||
window.location.href = document.URL+'&'+encodeURI('finished');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
<div t-foreach="page_ids['question_ids']" t-as='question_ids' class="mt16">
|
||||
<t t-set="input_summary" t-value="question_ids['input_summary']"/>
|
||||
<t t-set="question" t-value="question_ids['question']"/>
|
||||
<t t-set="graph_data" t-value="question_ids['graph_data']"/>
|
||||
<t t-set="prepare_result" t-value="question_ids['prepare_result']"/>
|
||||
<h4>
|
||||
<b>Question </b>
|
||||
@@ -145,11 +146,11 @@
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active survey_graph" t-if="question.type != 'simple_choice'" t-att-id="'graph_question_%d' % question.id" t-att-data-question_id="question.id" data-graph_type="bar" t-att-data-current_filters="current_filters">
|
||||
<div class="tab-pane active survey_graph" t-if="question.type != 'simple_choice'" t-att-id="'graph_question_%d' % question.id" t-att-data-question_id="question.id" data-graph_type="bar" t-att-graph-data="graph_data">
|
||||
<!-- svg element for drawing bar chart -->
|
||||
<svg style="height:20em"></svg>
|
||||
</div>
|
||||
<div class="tab-pane active survey_graph" t-if="question.type == 'simple_choice'" t-att-id="'graph_question_%d' % question.id" t-att-data-question_id="question.id" data-graph_type="pie" t-att-data-current_filters="current_filters">
|
||||
<div class="tab-pane active survey_graph" t-if="question.type == 'simple_choice'" t-att-id="'graph_question_%d' % question.id" t-att-data-question_id="question.id" data-graph_type="pie" t-att-graph-data="graph_data">
|
||||
<!-- svg element for drawing pie chart -->
|
||||
<svg style="height:20em"></svg>
|
||||
</div>
|
||||
@@ -198,7 +199,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active with-3d-shadow with-transitions survey_graph" t-att-id="'graph_question_%d' % question.id" t-att-data-question_id= "question.id" data-graph_type= "multi_bar" t-att-data-current_filters="current_filters">
|
||||
<div class="tab-pane active with-3d-shadow with-transitions survey_graph" t-att-id="'graph_question_%d' % question.id" t-att-data-question_id= "question.id" data-graph_type= "multi_bar" t-att-graph-data="graph_data">
|
||||
<!-- svg element for drawing Multibar chart -->
|
||||
<svg style="height:20em"></svg>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user