Files
Odoo-Tutorial/Elearning/bhs_elearning_required_slide/controllers/main.py
T
2025-04-28 16:35:45 +07:00

49 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from ast import literal_eval
from collections import defaultdict
import base64
import json
import logging
import math
import werkzeug
from odoo import http, tools, _
# from odoo.addons.http_routing.models.ir_http import slug, unslug
# from odoo.tools import slugify
from odoo.addons.website.controllers.main import QueryURL
from odoo.addons.website.models.ir_http import sitemap_qs2dom
from odoo.addons.website_profile.controllers.main import WebsiteProfile
from odoo.exceptions import AccessError, UserError
from odoo.http import request
from odoo.osv import expression
_logger = logging.getLogger(__name__)
class WebsiteSlides(WebsiteProfile):
@http.route('/slides/slide/toggle_is_required', type='json', auth='user', website=True)
def toggle_slide_required(self, slide_id):
slide = request.env['slide.slide'].browse(int(slide_id))
if slide.channel_id.can_publish:
slide.is_required = not slide.is_required
return slide.is_required
@http.route('/slides/slide/required_slide', type='json', auth='public', website=True)
def get_required_slide(self, slide_id):
slide = request.env['slide.slide'].sudo().browse(int(slide_id))
channel_id = slide.channel_id
required_slide = channel_id.current_req_slide if slide.sequence > channel_id.current_req_slide.sequence else False
if not required_slide:
return False
return {'id': required_slide.id,
'name': required_slide.name,
'url': required_slide.website_url,
'can_skip': slide.is_preview}