diff --git a/addons/survey/models/survey_survey.py b/addons/survey/models/survey_survey.py index ececbcd207b..64a74f57652 100644 --- a/addons/survey/models/survey_survey.py +++ b/addons/survey/models/survey_survey.py @@ -74,8 +74,8 @@ class Survey(models.Model): answer_count = fields.Integer("Registered", compute="_compute_survey_statistic") answer_done_count = fields.Integer("Attempts", compute="_compute_survey_statistic") answer_score_avg = fields.Float("Avg Score %", compute="_compute_survey_statistic") - certified_count = fields.Integer("Certified", compute="_compute_survey_statistic") - certified_ratio = fields.Integer("Certified Ratio", compute="_compute_certified_ratio") + success_count = fields.Integer("Success", compute="_compute_survey_statistic") + success_ratio = fields.Integer("Success Ratio", compute="_compute_survey_statistic") # scoring and certification fields scoring_type = fields.Selection([ ('no_scoring', 'No scoring'), @@ -121,31 +121,27 @@ class Survey(models.Model): for survey in self: survey.users_can_signup = signup_allowed - @api.depends('user_input_ids.input_type', 'user_input_ids.state', 'user_input_ids.test_entry', 'user_input_ids.quizz_score', 'user_input_ids.quizz_passed') + @api.depends('user_input_ids.state', 'user_input_ids.test_entry', 'user_input_ids.quizz_score', 'user_input_ids.quizz_passed') def _compute_survey_statistic(self): - stat = dict((cid, dict(answer_count=0, answer_done_count=0, certified_count=0, answer_score_avg_total=0.0)) for cid in self.ids) + stat = dict((cid, dict(answer_count=0, answer_done_count=0, success_count=0, answer_score_avg_total=0.0)) for cid in self.ids) UserInput = self.env['survey.user_input'] base_domain = ['&', ('survey_id', 'in', self.ids), ('test_entry', '!=', True)] - read_group_res = UserInput.read_group(base_domain, ['survey_id', 'state'], ['survey_id', 'input_type', 'state', 'quizz_score', 'quizz_passed'], lazy=False) + read_group_res = UserInput.read_group(base_domain, ['survey_id', 'state'], ['survey_id', 'state', 'quizz_score', 'quizz_passed'], lazy=False) for item in read_group_res: stat[item['survey_id'][0]]['answer_count'] += item['__count'] stat[item['survey_id'][0]]['answer_score_avg_total'] += item['quizz_score'] if item['state'] == 'done': stat[item['survey_id'][0]]['answer_done_count'] += item['__count'] if item['quizz_passed']: - stat[item['survey_id'][0]]['certified_count'] += item['__count'] + stat[item['survey_id'][0]]['success_count'] += item['__count'] for survey in self: avg_total = stat[survey.id].pop('answer_score_avg_total') stat[survey.id]['answer_score_avg'] = avg_total / (stat[survey.id]['answer_done_count'] or 1) + stat[survey.id]['success_ratio'] = (stat[survey.id]['success_count'] / (stat[survey.id]['answer_done_count'] or 1.0))*100 survey.update(stat[survey.id]) - @api.depends('certified_count', 'answer_done_count') - def _compute_certified_ratio(self): - for survey in self: - survey.certified_ratio = survey.certified_count / (survey.answer_done_count or 1.0) - def _compute_survey_url(self): """ Computes a public URL for the survey """ base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') diff --git a/addons/survey/static/src/img/trophy-solid.svg b/addons/survey/static/src/img/trophy-solid.svg new file mode 100644 index 00000000000..543ed227116 --- /dev/null +++ b/addons/survey/static/src/img/trophy-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/addons/survey/static/src/scss/survey_views.scss b/addons/survey/static/src/scss/survey_views.scss index 520efd97799..f81f5a660aa 100644 --- a/addons/survey/static/src/scss/survey_views.scss +++ b/addons/survey/static/src/scss/survey_views.scss @@ -1,9 +1,19 @@ .o_kanban_card_survey { - .certification_icon { - font-size: 20px; + & > .row { + min-height: 60px; } } +.o_kanban_card_survey_successed{ + background-image: + linear-gradient(rgba(255,255,255,.9), + rgba(255,255,255,.9)), + url(/survey/static/src/img/trophy-solid.svg); + background-repeat: no-repeat; + background-position: bottom 6px left -45px; + background-size: 100px; +} + table.o_section_list_view tr.o_data_row.o_is_section { font-weight: bold; background-color: #DDD; diff --git a/addons/survey/views/survey_survey_views.xml b/addons/survey/views/survey_survey_views.xml index 99f46580fc1..fef62755f8e 100644 --- a/addons/survey/views/survey_survey_views.xml +++ b/addons/survey/views/survey_survey_views.xml @@ -32,7 +32,7 @@ class="oe_stat_button" attrs="{'invisible': [('certificate', '=', False)]}" icon="fa-trophy"> - +