49 lines
1.7 KiB
Python
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}
|
|
|
|
|