Replaces Odoo branding with OpenSPP branding across the platform. Adds
/openspp URL routing as an alias for /odoo routes, redirects
telemetry to OpenSPP endpoints or disables it entirely, and customizes
system messages, email signatures, and report footers. Works with
theme_openspp_muk for visual styling.
- URL routing:
/openspp/programs/123works as an alias for/odoo/programs/123 - Telemetry control: redirect to OpenSPP endpoint or disable entirely via configuration
- Session branding: injects OpenSPP system name and version into web client session
- Email signatures: replaces default Odoo signature with OpenSPP branding
- Report customization: updates company report headers and footers with OpenSPP text
- Post-install debranding: disables Odoo brand promotion messages, update notification crons, and theme store menu
- Module filtering: adds "OpenSPP Apps" filter and menu to view OpenSPP-specific applications
- Debug restriction: optionally restricts debug mode access to administrators only
This module does not introduce new models. It extends existing models:
| Model | Extension Purpose |
|---|---|
res.users |
Custom email signature, removes Odoo account URL |
res.config.settings |
Adds branding and telemetry configuration fields |
ir.http |
Injects OpenSPP branding into web client session info |
ir.module.module |
Provides utility to count paid/proprietary apps |
After installing:
- Open Settings
- Scroll to the OpenSPP Branding app card
- Configure System Name (default: "OpenSPP Platform")
- Set Documentation URL and Support URL for help links
- Toggle Display OpenSPP Branding to show/hide "Powered by OpenSPP"
- Configure telemetry: Enable Telemetry (redirects to OpenSPP endpoint) or disable
- Set Telemetry Endpoint if redirecting (default:
https://telemetry.openspp.org)
Post-install hook automatically disables Odoo brand promotion, module update notifications, and theme store menu.
- Apps > OpenSPP Apps — filtered view of OpenSPP-specific applications
- Settings > OpenSPP Branding — branding and telemetry configuration
- Settings > General Settings > About — OpenSPP platform information card
This module does not define new security groups or access control
entries. It extends existing models that already have ACLs.
Configuration access requires base.group_system (Settings).
- Override
get_branding_config(env)inutils.pyto customize branding data injected into session - Inherit
res.usersto further customize email signatures or user menu elements - Inherit
ir.http.session_info()to add custom branding keys to web client session - Patch JavaScript router in
static/src/js/router_patch.jsto customize URL prefix beyond/openspp
spp_security, base, web, base_setup,
theme_openspp_muk
Table of contents
- Upgrade to Production/Stable status
- Fix category to
OpenSPP/Configuration - Use
search_count()inget_paid_apps_count()for efficiency - Add proper JSON response content-type to
/openspp/aboutendpoint - Clean up outdated
requirements.txtreferencing Odoo 17 - Increase test coverage to 95%+ (utils, settings, controllers, HTTP endpoints)
- Update
readme/DESCRIPTION.mdto follow module description template - Fix uninstall hook to clean up
spp.*parameters (was using wrongopenspp.*prefix) - Remove global Apps menu override that forced OpenSPP filter on all users
- Scope CSS branding selectors to login page context
- Change
/openspp/aboutendpoint from public to authenticated access - Remove empty placeholder view files (
login_templates.xml,backend_customization.xml) - Remove missing
banner.pngreference from manifest - Add CSRF justification comment on
/publisher-warrantyendpoint
- Initial migration to OpenSPP2
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
- OpenSPP.org
- OpenSPP Project
Current maintainers:
This module is part of the OpenSPP/OpenSPP2 project on GitHub.
You are welcome to contribute.




