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,34 @@
import { Interaction } from "@web/public/interaction";
import { registry } from "@web/core/registry";
import { rpc } from "@web/core/network/rpc";
export class PurchaseDatetimePicker extends Interaction {
static selector = ".o-purchase-datetimepicker";
start() {
this.registerCleanup(
this.services.datetime_picker
.create({
target: this.el,
onChange: (newDate) => {
const { accessToken, orderId, lineId } = this.el.dataset;
this.waitFor(
rpc(`/my/purchase/${orderId}/update?access_token=${accessToken}`, {
[lineId]: newDate.toISODate(),
})
);
},
pickerProps: {
type: "date",
value: luxon.DateTime.fromISO(this.el.dataset.value),
},
})
.enable()
);
}
}
registry
.category("public.interactions")
.add("purchase.purchase_datetime_picker", PurchaseDatetimePicker);

View File

@@ -0,0 +1,21 @@
import { Sidebar } from "@portal/interactions/sidebar";
import { registry } from "@web/core/registry";
export class PurchaseSidebar extends Sidebar {
static selector = ".o_portal_purchase_sidebar";
setup() {
super.setup();
this.spyWatched = document.querySelector("body[data-target='.navspy']");
}
start() {
super.start();
// Nav Menu ScrollSpy
this.generateMenu({ "max-width": "200px" });
}
}
registry
.category("public.interactions")
.add("purchase.purchase_sidebar", PurchaseSidebar);