diff --git a/addons/website_event_track_quiz/data/quiz_demo.xml b/addons/website_event_track_quiz/data/quiz_demo.xml index ea0d73af800..3ac5bf4ded0 100644 --- a/addons/website_event_track_quiz/data/quiz_demo.xml +++ b/addons/website_event_track_quiz/data/quiz_demo.xml @@ -3,6 +3,7 @@ What This Event Is All About + @@ -48,12 +49,9 @@ - - - - Securing your Lumber during transport + @@ -99,12 +97,9 @@ - - - - Pretty. Ugly. Lovely. + @@ -132,9 +127,6 @@ - - - diff --git a/addons/website_event_track_quiz/models/event_quiz.py b/addons/website_event_track_quiz/models/event_quiz.py index 8ba65f703e7..da2f08a814f 100644 --- a/addons/website_event_track_quiz/models/event_quiz.py +++ b/addons/website_event_track_quiz/models/event_quiz.py @@ -11,19 +11,11 @@ class Quiz(models.Model): name = fields.Char('Name', required=True, translate=True) question_ids = fields.One2many('event.quiz.question', 'quiz_id', string="Questions") - event_track_ids = fields.One2many('event.track', 'quiz_id', string="Tracks") - event_track_id = fields.Many2one( - 'event.track', compute='_compute_event_track_id', - readonly=True, store=True) + event_track_id = fields.Many2one('event.track', readonly=True) event_id = fields.Many2one( 'event.event', related='event_track_id.event_id', readonly=True, store=True) - @api.depends('event_track_ids.quiz_id') - def _compute_event_track_id(self): - for quiz in self: - quiz.event_track_id = quiz.event_track_ids[0] if quiz.event_track_ids else False - class QuizQuestion(models.Model): _name = "event.quiz.question" diff --git a/addons/website_event_track_quiz/models/event_track.py b/addons/website_event_track_quiz/models/event_track.py index 3011b98a309..5f73d38586d 100644 --- a/addons/website_event_track_quiz/models/event_track.py +++ b/addons/website_event_track_quiz/models/event_track.py @@ -8,11 +8,17 @@ from odoo.osv import expression class EventTrack(models.Model): _inherit = ['event.track'] - quiz_id = fields.Many2one('event.quiz', string="Quiz", groups="event.group_event_user") + quiz_id = fields.Many2one('event.quiz', string="Quiz", compute='_compute_quiz_id', store=True, groups="event.group_event_user") + quiz_ids = fields.One2many('event.quiz', 'event_track_id', string="Quizzes") quiz_questions_count = fields.Integer(string="# Quiz Questions", compute='_compute_quiz_questions_count', groups="event.group_event_user") is_quiz_completed = fields.Boolean('Is Quiz Done', compute='_compute_quiz_data') quiz_points = fields.Integer('Quiz Points', compute='_compute_quiz_data') + @api.depends('quiz_ids.event_track_id') + def _compute_quiz_id(self): + for track in self: + track.quiz_id = track.quiz_ids[0] if track.quiz_ids else False + @api.depends('quiz_id.question_ids') def _compute_quiz_questions_count(self): for track in self: @@ -64,3 +70,31 @@ class EventTrack(models.Model): else: track.is_quiz_completed = False track.quiz_points = 0 + + def action_add_quiz(self): + self.ensure_one() + event_quiz_form = self.env.ref('website_event_track_quiz.event_quiz_view_form') + return { + 'type': 'ir.actions.act_window', + 'view_mode': 'form', + 'res_model': 'event.quiz', + 'view_id': event_quiz_form.id, + 'context': { + 'default_event_track_id': self.id, + 'create': False, + }, + } + + def action_view_quiz(self): + self.ensure_one() + event_quiz_form = self.env.ref('website_event_track_quiz.event_quiz_view_form') + return { + 'type': 'ir.actions.act_window', + 'view_mode': 'form', + 'res_model': 'event.quiz', + 'res_id' : self.quiz_id.id, + 'view_id': event_quiz_form.id, + 'context': { + 'create': False, + } + } diff --git a/addons/website_event_track_quiz/views/event_quiz_views.xml b/addons/website_event_track_quiz/views/event_quiz_views.xml index a7a528a55d6..abbd1e0f51b 100644 --- a/addons/website_event_track_quiz/views/event_quiz_views.xml +++ b/addons/website_event_track_quiz/views/event_quiz_views.xml @@ -39,10 +39,14 @@ placeholder="e.g. Test your Knowledge"/> - - + + + + + + - + - event.quiz.view.form - event.quiz - - primary - - - - - - Event Quizzes event.quiz diff --git a/addons/website_event_track_quiz/views/event_track_views.xml b/addons/website_event_track_quiz/views/event_track_views.xml index 13a0ceac999..9d65b981686 100644 --- a/addons/website_event_track_quiz/views/event_track_views.xml +++ b/addons/website_event_track_quiz/views/event_track_views.xml @@ -5,12 +5,19 @@ event.track - - - - - + + + + + + +