diff --git a/addons/website_slides/controllers/main.py b/addons/website_slides/controllers/main.py index da9fe1a7b81..85ea0ba9681 100644 --- a/addons/website_slides/controllers/main.py +++ b/addons/website_slides/controllers/main.py @@ -644,7 +644,7 @@ class WebsiteSlides(WebsiteProfile): return fetch_res slide = fetch_res['slide'] - if slide.user_membership_id.completed: + if slide.user_membership_id.sudo().completed: return {'error': 'slide_quiz_done'} all_questions = request.env['slide.question'].sudo().search([('slide_id', '=', slide.id)]) diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py index dfd7cc29a46..091b158cf9e 100644 --- a/addons/website_slides/models/slide_slide.py +++ b/addons/website_slides/models/slide_slide.py @@ -523,14 +523,15 @@ class Slide(models.Model): points = 0 for slide in self: - if not slide.user_membership_id or slide.user_membership_id.completed or not slide.user_membership_id.quiz_attempts_count: + user_membership_sudo = slide.user_membership_id.sudo() + if not user_membership_sudo or user_membership_sudo.completed or not user_membership_sudo.quiz_attempts_count: continue gains = [slide.quiz_first_attempt_reward, slide.quiz_second_attempt_reward, slide.quiz_third_attempt_reward, slide.quiz_fourth_attempt_reward] - points += gains[slide.user_membership_id.quiz_attempts_count-1] if slide.user_membership_id.quiz_attempts_count <= len(gains) else gains[-1] + points += gains[user_membership_sudo.quiz_attempts_count - 1] if user_membership_sudo.quiz_attempts_count <= len(gains) else gains[-1] return self.env.user.sudo().add_karma(points)