diff --git a/addons/survey/models/survey_question.py b/addons/survey/models/survey_question.py index 84ded5fa492..54ae51e0ec1 100644 --- a/addons/survey/models/survey_question.py +++ b/addons/survey/models/survey_question.py @@ -492,6 +492,8 @@ class SurveyQuestion(models.Model): elif self.question_type == 'numerical_box': stats.update(self._get_stats_summary_data_numerical(user_input_lines)) + if self.question_type in ['numerical_box', 'date', 'datetime']: + stats.update(self._get_stats_summary_data_scored(user_input_lines)) return stats def _get_stats_summary_data_choice(self, user_input_lines): @@ -519,7 +521,14 @@ class SurveyQuestion(models.Model): 'numerical_max': max(all_values, default=0), 'numerical_min': min(all_values, default=0), 'numerical_average': round(lines_sum / (len(all_values) or 1), 2), - 'numerical_common_lines': collections.Counter(all_values).most_common(5), + } + + def _get_stats_summary_data_scored(self, user_input_lines): + return { + 'common_lines': collections.Counter( + user_input_lines.filtered(lambda line: not line.skipped).mapped('value_%s' % self.question_type) + ).most_common(5) if self.question_type != 'datetime' else [], + 'right_inputs_count': len(user_input_lines.filtered(lambda line: line.answer_is_correct).mapped('user_input_id')) } diff --git a/addons/survey/views/survey_templates_statistics.xml b/addons/survey/views/survey_templates_statistics.xml index b46bcd90c5b..c738e6a80ba 100644 --- a/addons/survey/views/survey_templates_statistics.xml +++ b/addons/survey/views/survey_templates_statistics.xml @@ -130,11 +130,11 @@
-| + | |
| + + + | + + + |