Skip to content

Commit 8b78e20

Browse files
committed
spp_branding_kit: format utils and controllers after refactor
1 parent c9128e6 commit 8b78e20

File tree

5 files changed

+40
-98
lines changed

5 files changed

+40
-98
lines changed

spp_branding_kit/__manifest__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
"web.assets_backend": [
4949
"spp_branding_kit/static/src/js/webclient.js",
5050
"spp_branding_kit/static/src/js/user_menu.js",
51-
"spp_branding_kit/static/src/js/telemetry_manager.js",
5251
],
5352
"web.assets_frontend": [
5453
"spp_branding_kit/static/src/css/login_branding.css",
Lines changed: 11 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
import json
22

3+
from werkzeug.urls import url_encode
34
from werkzeug.wrappers import Response
45

56
from odoo import http
67
from odoo.http import request
78

89
from odoo.addons.portal.controllers.web import Home
910

11+
from ..utils import get_param, telemetry_payload, version_info_payload
12+
1013

1114
class OpenSPPHome(Home):
1215
"""Restrict debug mode to administrators when enabled via parameter."""
1316

1417
@http.route()
1518
def web_client(self, s_action=None, **kw):
1619
# Enforce optional debug restriction before rendering
17-
try:
18-
config_parameter = request.env["ir.config_parameter"].sudo()
19-
debug_admin_only = config_parameter.get_param("openspp.debug.admin_only", "True") == "True"
20-
except Exception: # pragma: no cover - defensive
21-
debug_admin_only = True
20+
debug_admin_only = get_param(request.env, "openspp.debug.admin_only", "True") == "True"
2221

2322
# Detect debug flag from kwargs or query string
2423
has_debug = bool(kw.get("debug")) or ("debug" in (request.httprequest.args or {}))
@@ -28,7 +27,8 @@ def web_client(self, s_action=None, **kw):
2827
if not uid or not request.env.user._is_admin():
2928
kw.pop("debug", None)
3029
args = {k: v for k, v in request.httprequest.args.items() if k != "debug"}
31-
return request.redirect("/web", query=args)
30+
query = url_encode(args)
31+
return request.redirect("/web" + (f"?{query}" if query else ""))
3232

3333
return super().web_client(s_action, **kw)
3434

@@ -39,48 +39,23 @@ class OpenSPPBrandingController(http.Controller):
3939
@http.route("/openspp/about", type="http", auth="public")
4040
def openspp_about(self, **kwargs):
4141
"""Custom about page for OpenSPP"""
42-
config_parameter = request.env["ir.config_parameter"].sudo()
4342
return json.dumps(
4443
{
4544
"title": "About OpenSPP",
4645
"version": "1.0.0",
47-
"system_name": config_parameter.get_param("openspp.system.name", "OpenSPP Platform"),
48-
"documentation_url": config_parameter.get_param(
49-
"openspp.documentation.url", "https://docs.openspp.org"
50-
),
51-
"support_url": config_parameter.get_param("openspp.support.url", "https://openspp.org"),
46+
"system_name": get_param(request.env, "openspp.system.name", "OpenSPP Platform"),
47+
"documentation_url": get_param(request.env, "openspp.documentation.url", "https://docs.openspp.org"),
48+
"support_url": get_param(request.env, "openspp.support.url", "https://openspp.org"),
5249
}
5350
)
5451

5552
@http.route("/web/webclient/version_info", type="json", auth="none")
5653
def version_info(self):
5754
"""Override version info to show OpenSPP branding"""
58-
config_parameter = request.env["ir.config_parameter"].sudo()
59-
system_name = config_parameter.get_param("openspp.system.name", "OpenSPP Platform")
60-
return {
61-
"server_version": system_name,
62-
# Keep the server series aligned with the actual Odoo major version
63-
"server_serie": "17.0",
64-
"protocol_version": 1,
65-
}
55+
return version_info_payload(request.env)
6656

6757
@http.route("/publisher-warranty", type="http", auth="none", csrf=False)
6858
def publisher_warranty(self, **kwargs):
6959
"""Handle telemetry based on configuration"""
70-
config_parameter = request.env["ir.config_parameter"].sudo()
71-
telemetry_enabled = config_parameter.get_param("openspp.telemetry.enabled", "True") == "True"
72-
73-
if not telemetry_enabled:
74-
payload = {"status": "disabled", "message": "Telemetry disabled"}
75-
else:
76-
# Redirect to OpenSPP telemetry endpoint
77-
telemetry_endpoint = config_parameter.get_param(
78-
"openspp.telemetry.endpoint", "https://telemetry.openspp.org"
79-
)
80-
payload = {
81-
"status": "redirected",
82-
"endpoint": telemetry_endpoint,
83-
"message": "Telemetry redirected to OpenSPP",
84-
}
85-
60+
payload = telemetry_payload(request.env)
8661
return Response(json.dumps(payload), content_type="application/json")

spp_branding_kit/models/ir_http.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
from odoo import models
44

5+
from ..utils import get_branding_config
6+
57
_logger = logging.getLogger(__name__)
68

79

@@ -12,23 +14,8 @@ def session_info(self):
1214
"""Override session info to customize branding"""
1315
result = super().session_info()
1416

15-
IrConfig = self.env["ir.config_parameter"].sudo()
16-
1717
# Add OpenSPP configuration
18-
result.update(
19-
{
20-
"openspp_system_name": IrConfig.get_param("openspp.system.name", "OpenSPP Platform"),
21-
"openspp_documentation_url": IrConfig.get_param(
22-
"openspp.documentation.url", "https://docs.openspp.org"
23-
),
24-
"openspp_support_url": IrConfig.get_param("openspp.support.url", "https://openspp.org"),
25-
"openspp_show_powered_by": IrConfig.get_param("openspp.show.powered_by", "True") == "True",
26-
"openspp_telemetry_enabled": IrConfig.get_param("openspp.telemetry.enabled", "True") == "True",
27-
"openspp_telemetry_endpoint": IrConfig.get_param(
28-
"openspp.telemetry.endpoint", "https://telemetry.openspp.org"
29-
),
30-
}
31-
)
18+
result.update(get_branding_config(self.env))
3219

3320
# Customize server version info while keeping the correct Odoo series
3421
if "server_version_info" in result:

spp_branding_kit/static/src/js/telemetry_manager.js

Lines changed: 0 additions & 45 deletions
This file was deleted.

spp_branding_kit/utils.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
def get_param(env, key, default=None):
2+
return env["ir.config_parameter"].sudo().get_param(key, default)
3+
4+
5+
def get_branding_config(env):
6+
return {
7+
"openspp_system_name": get_param(env, "openspp.system.name", "OpenSPP Platform"),
8+
"openspp_documentation_url": get_param(env, "openspp.documentation.url", "https://docs.openspp.org"),
9+
"openspp_support_url": get_param(env, "openspp.support.url", "https://openspp.org"),
10+
"openspp_show_powered_by": get_param(env, "openspp.show.powered_by", "True") == "True",
11+
"openspp_telemetry_enabled": get_param(env, "openspp.telemetry.enabled", "True") == "True",
12+
"openspp_telemetry_endpoint": get_param(env, "openspp.telemetry.endpoint", "https://telemetry.openspp.org"),
13+
}
14+
15+
16+
def version_info_payload(env):
17+
system_name = get_param(env, "openspp.system.name", "OpenSPP Platform")
18+
return {"server_version": system_name, "server_serie": "17.0", "protocol_version": 1}
19+
20+
21+
def telemetry_payload(env):
22+
enabled = get_param(env, "openspp.telemetry.enabled", "True") == "True"
23+
if not enabled:
24+
return {"status": "disabled", "message": "Telemetry disabled"}
25+
endpoint = get_param(env, "openspp.telemetry.endpoint", "https://telemetry.openspp.org")
26+
return {"status": "redirected", "endpoint": endpoint, "message": "Telemetry redirected to OpenSPP"}

0 commit comments

Comments
 (0)