Eliminate Python dependency: embed frontend assets in odoo-go

- Copy all OWL frontend assets (JS/CSS/XML/fonts/images) into frontend/
  directory (2925 files, 43MB) — no more runtime reads from Python Odoo
- Replace OdooAddonsPath config with FrontendDir pointing to local frontend/
- Rewire bundle.go, static.go, templates.go, webclient.go to read from
  frontend/ instead of external Python Odoo addons directory
- Auto-detect frontend/ and build/ dirs relative to binary in main.go
- Delete obsolete Python helper scripts (tools/*.py)

The Go server is now fully self-contained: single binary + frontend/ folder.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marc
2026-03-31 23:09:12 +02:00
parent 0ed29fe2fd
commit 8741282322
2933 changed files with 280644 additions and 264 deletions

View File

@@ -0,0 +1,41 @@
import {
clickSave,
contains,
makeMockServer,
mockService,
mountView,
} from "@web/../tests/web_test_helpers";
import { describe, expect, test } from "@odoo/hoot";
import { defineHrModels } from "@hr/../tests/hr_test_helpers";
describe.current.tags("desktop");
defineHrModels();
test("editing the 'lang' field and saving it triggers a 'reload_context'", async function () {
const { env } = await makeMockServer();
const userId = env["fake.user"].create({
name: "Aline",
lang: "fr",
});
mockService("action", {
doAction(action) {
expect.step(action);
},
});
await mountView({
type: "form",
resModel: "fake.user",
arch: `
<form js_class="hr_user_preferences_form">
<field name="name"/>
<field name="lang"/>
</form>`,
resId: userId,
});
await contains("[name='name'] input").edit("John");
await clickSave();
expect.verifySteps([]);
await contains("[name='lang'] input").edit("En");
await clickSave();
expect.verifySteps(["reload_context"]);
});