Odoo18-Base/addons/pos_self_order/controllers/webmanifest.py

39 lines
1.5 KiB
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import mimetypes
import re
from urllib.parse import unquote
from odoo import http
from odoo.http import request
from odoo.addons.web.controllers import webmanifest
class WebManifest(webmanifest.WebManifest):
def _get_scoped_app_name(self, app_id):
if app_id == "pos_self_order":
if match := re.findall(r'pos-self/(\d+)', unquote(request.params['path'])):
if record := request.env['pos.config'].search([('id', '=', match[0])]):
return record.name
return super()._get_scoped_app_name(app_id)
def _get_scoped_app_icons(self, app_id):
if app_id == "pos_self_order":
company = request.env.company
if company.uses_default_logo:
icon_src = '/point_of_sale/static/description/icon.svg'
else:
icon_src = f'/web/image?model=res.company&id={company.id}&field=logo&height=192&width=192'
return [{
'src': icon_src,
'sizes': 'any',
'type': mimetypes.guess_type(icon_src)[0] or 'image/png'
}]
return super()._get_scoped_app_icons(app_id)
@http.route()
def scoped_app_icon_png(self, app_id):
if app_id == "pos_self_order" and request.env.company.uses_default_logo:
return super().scoped_app_icon_png('point_of_sale')
return super().scoped_app_icon_png(app_id)