an abundance of strawberries

Odoo module upgrades, done for you

Your JavaScript assets won't load — manifest assets= changed

From Odoo 15 onward, frontend assets belong in the assets key in __manifest__.py — not scattered in legacy qweb entries or ad-hoc script tags. Modules that skip this show blank widgets or console errors after upgrade.

Old pattern vs. new

Before (Odoo 13/14): an assets.xml inheriting web.assets_backend, plus a qweb manifest key:

# __manifest__.py
"data": ["views/assets.xml"],
"qweb": ["static/src/xml/widget.xml"],

After (Odoo 15+): everything declared directly in the manifest, grouped by bundle:

# __manifest__.py
"assets": {
    "web.assets_backend": [
        "my_module/static/src/js/widget.js",
        "my_module/static/src/scss/widget.scss",
        "my_module/static/src/xml/widget.xml",
    ],
},

The assets.xml file and the qweb key go away entirely. Frontend/website assets move to web.assets_frontend, and QWeb templates ride along in the same bundle list instead of a separate key.

Send us the module. We move assets to the right manifest structure, rebuild bundles, and test in the target web client. Try it live, then $50 to download.

Try the working result before you pay a cent. No signup to get started.

Common questions

Where do JavaScript assets go in modern Odoo?

In __manifest__.py under the assets key, grouped by bundle (web.assets_backend, etc.). Legacy patterns from Odoo 13–14 need rewriting.