mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
Rename web_pwa -> web_pwa_oca
This commit is contained in:
75
web_pwa_oca/controllers/main.py
Normal file
75
web_pwa_oca/controllers/main.py
Normal file
@@ -0,0 +1,75 @@
|
||||
from odoo.http import request, Controller, route
|
||||
|
||||
|
||||
class PWA(Controller):
|
||||
|
||||
def get_asset_urls(self, asset_xml_id):
|
||||
qweb = request.env['ir.qweb'].sudo()
|
||||
assets = qweb._get_asset_nodes(asset_xml_id, {}, True, True)
|
||||
urls = []
|
||||
for asset in assets:
|
||||
if asset[0] == 'link':
|
||||
urls.append(asset[1]['href'])
|
||||
if asset[0] == 'script':
|
||||
urls.append(asset[1]['src'])
|
||||
return urls
|
||||
|
||||
@route('/service-worker.js', type='http', auth="public")
|
||||
def service_worker(self):
|
||||
qweb = request.env['ir.qweb'].sudo()
|
||||
urls = []
|
||||
urls.extend(self.get_asset_urls("web.assets_common"))
|
||||
urls.extend(self.get_asset_urls("web.assets_backend"))
|
||||
version_list = []
|
||||
for url in urls:
|
||||
version_list.append(url.split('/')[3])
|
||||
cache_version = '-'.join(version_list)
|
||||
mimetype = 'text/javascript;charset=utf-8'
|
||||
content = qweb.render('web_pwa_oca.service_worker', {
|
||||
'pwa_cache_name': cache_version,
|
||||
'pwa_files_to_cache': urls,
|
||||
})
|
||||
return request.make_response(content, [('Content-Type', mimetype)])
|
||||
|
||||
@route('/web_pwa_oca/manifest.json', type='http', auth="public")
|
||||
def manifest(self):
|
||||
qweb = request.env['ir.qweb'].sudo()
|
||||
config_param = request.env['ir.config_parameter'].sudo()
|
||||
pwa_name = config_param.get_param("pwa.manifest.name", "Odoo PWA")
|
||||
pwa_short_name = config_param.get_param("pwa.manifest.short_name", "Odoo PWA")
|
||||
icon128x128 = config_param.get_param(
|
||||
"pwa.manifest.icon128x128",
|
||||
"/web_pwa_oca/static/img/icons/icon-128x128.png")
|
||||
icon144x144 = config_param.get_param(
|
||||
"pwa.manifest.icon144x144",
|
||||
"/web_pwa_oca/static/img/icons/icon-144x144.png")
|
||||
icon152x152 = config_param.get_param(
|
||||
"pwa.manifest.icon152x152",
|
||||
"/web_pwa_oca/static/img/icons/icon-152x152.png")
|
||||
icon192x192 = config_param.get_param(
|
||||
"pwa.manifest.icon192x192",
|
||||
"/web_pwa_oca/static/img/icons/icon-192x192.png")
|
||||
icon256x256 = config_param.get_param(
|
||||
"pwa.manifest.icon256x256",
|
||||
"/web_pwa_oca/static/img/icons/icon-256x256.png")
|
||||
icon512x512 = config_param.get_param(
|
||||
"pwa.manifest.icon512x512",
|
||||
"/web_pwa_oca/static/img/icons/icon-512x512.png")
|
||||
background_color = config_param.get_param(
|
||||
"pwa.manifest.background_color", "#2E69B5")
|
||||
theme_color = config_param.get_param(
|
||||
"pwa.manifest.theme_color", "#2E69B5")
|
||||
mimetype = 'application/json;charset=utf-8'
|
||||
content = qweb.render('web_pwa_oca.manifest', {
|
||||
'pwa_name': pwa_name,
|
||||
'pwa_short_name': pwa_short_name,
|
||||
'icon128x128': icon128x128,
|
||||
'icon144x144': icon144x144,
|
||||
'icon152x152': icon152x152,
|
||||
'icon192x192': icon192x192,
|
||||
'icon256x256': icon256x256,
|
||||
'icon512x512': icon512x512,
|
||||
'background_color': background_color,
|
||||
'theme_color': theme_color,
|
||||
})
|
||||
return request.make_response(content, [('Content-Type', mimetype)])
|
||||
Reference in New Issue
Block a user