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,147 @@
import { accountTourSteps } from "@account/js/tours/account";
import { registry } from "@web/core/registry";
import { stepUtils } from "@web_tour/tour_utils";
registry.category("web_tour.tours").add('account_tax_group', {
url: "/odoo",
steps: () => [
...accountTourSteps.goToAccountMenu("Go to Invoicing"),
{
content: "Go to Vendors",
trigger: 'span:contains("Vendors")',
run: "click",
},
{
content: "Go to Bills",
trigger: 'a:contains("Bills")',
run: "click",
},
{
trigger: ".o_breadcrumb .text-truncate:contains(Bills)",
},
{
content: "Create new bill",
trigger: '.o_control_panel_main_buttons .o_list_button_add',
run: "click",
},
// Set a vendor
{
content: "Add vendor",
trigger: 'div.o_field_widget.o_field_res_partner_many2one[name="partner_id"] div input',
run: "edit Account Tax Group Partner",
},
{
content: "Valid vendor",
trigger: '.ui-menu-item a:contains("Account Tax Group Partner")',
run: "click",
},
// Show product column
{
content: "Open line fields list",
trigger: ".o_optional_columns_dropdown_toggle",
run: "click"
},
{
content: "Show product column",
trigger: '.o-dropdown-item input[name="product_id"]',
run: "click"
},
{
content: "Close line fields list",
trigger: ".o_optional_columns_dropdown_toggle",
run: "click"
},
// Add First product
{
content: "Add items",
trigger: 'div[name="invoice_line_ids"] .o_field_x2many_list_row_add a:contains("Add a line")',
run: "click",
},
{
content: "Select input",
trigger: 'div[name="invoice_line_ids"] .o_selected_row .o_list_many2one[name="product_id"] input',
run: "edit Account Tax Group Product",
},
{
content: "Valid item",
trigger: '.ui-menu-item-wrapper:contains("Account Tax Group Product")',
run: "click",
},
{
content: "Set Bill Date",
trigger: "input[data-field=invoice_date]",
run: "edit 2025-12-01",
},
// Save account.move
...stepUtils.saveForm(),
// Edit tax group amount
{
content: "Edit tax group amount",
trigger: '.o_tax_group_edit',
run: "click",
},
{
content: "Modify the input value",
trigger: '.o_tax_group_edit_input input',
run() {
this.anchor.value = 200;
this.anchor.select();
this.anchor.blur();
},
},
// Check new value for total (with modified tax_group_amount).
{
content: "Valid total amount",
trigger: 'span[name="amount_total"]:contains("800")',
run: "click",
},
// Modify the quantity of the object
{
content: "Select item quantity",
trigger: 'div[name="invoice_line_ids"] tbody tr.o_data_row .o_list_number[name="quantity"]',
run: "click",
},
{
content: "Change item quantity",
trigger: 'div[name="invoice_line_ids"] tbody tr.o_data_row .o_list_number[name="quantity"] input',
run: "edit 2",
},
{
content: "Valid the new value",
trigger: 'div[name="invoice_line_ids"] tbody tr.o_data_row .o_list_number[name="quantity"] input',
run: "press Enter",
},
// Check new tax group value
{
content: "Check new value of tax group",
trigger: '.o_tax_group_amount_value:contains("120")',
run: "click",
},
// Save form
...stepUtils.saveForm(),
// Check new tax group value
{
content: "Check new value of tax group",
trigger: '.o_tax_group_amount_value:contains("120")',
run: "click",
},
{
content: "Edit tax value",
trigger: '.o_tax_group_edit_input input',
run: "edit 2 && click body",
},
{
content: "Check new value of total",
trigger: '.oe_subtotal_footer_separator:contains("1,202")',
run: "click",
},
{
content: "Discard changes",
trigger: '.o_form_button_cancel',
run: "click",
},
{
content: "Check tax value is reset",
trigger: '.o_tax_group_amount_value:contains("120")',
},
]});