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:
@@ -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);
|
||||
@@ -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);
|
||||
Reference in New Issue
Block a user