Files
goodie/frontend/purchase/static/tests/tours/purchase_catalog.js
Marc 8741282322 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>
2026-03-31 23:09:12 +02:00

80 lines
3.6 KiB
JavaScript

import { addSectionFromProductCatalog } from "@account/js/tours/tour_utils";
import { productCatalog, purchaseForm } from "./tour_helper";
import { registry } from "@web/core/registry";
registry.category("web_tour.tours").add("test_add_section_from_product_catalog_on_purchase_order", {
steps: () => [
...purchaseForm.createNewPO(),
...purchaseForm.selectVendor("Test Vendor"),
...addSectionFromProductCatalog(),
],
});
registry.category("web_tour.tours").add("test_catalog_vendor_uom", {
steps: () => [
// Open the PO for the vendor selling product as "Units".
{ trigger: "td[data-tooltip='PO/TEST/00002']", run: "click" },
...purchaseForm.displayOptionalField("discount"),
...purchaseForm.openCatalog(),
{
content: "Check 'No section' is selected in the catalog",
trigger: ".o_search_panel_sections .o_selected_section:contains('No Section') span.o_section_name",
run: "click",
},
...productCatalog.checkProductPrice("Crab Juice", "$ 2.50"),
// Add 6 units and check the price is correctly updated.
...productCatalog.addProduct("Crab Juice"),
...productCatalog.checkProductUoM("Crab Juice", "Units"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.waitForQuantity("Crab Juice", 5),
...productCatalog.checkProductUoM("Crab Juice", "Units"),
...productCatalog.checkProductPrice("Crab Juice", "$ 2.50"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.checkProductPrice("Crab Juice", "$ 2.45"),
// Add 6 units more and check the price is updated again.
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.waitForQuantity("Crab Juice", 11),
...productCatalog.checkProductUoM("Crab Juice", "Units"),
...productCatalog.checkProductPrice("Crab Juice", "$ 2.45"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.checkProductPrice("Crab Juice", "$ 2.20"),
// Go back in the PO form view and check PO line price and qty is correct.
...productCatalog.goBackToOrder(),
...purchaseForm.checkLineValues(0, {
product: "Crab Juice",
discount: "10.20",
quantity: "12.00",
unit: "Units",
unitPrice: "2.45",
totalPrice: "$ 26.40",
}),
// Open the PO for the vendor selling product as liter.
{ trigger: "a[href='/odoo/purchase']", run: "click" },
{ trigger: "td[data-tooltip='PO/TEST/00001']", run: "click" },
...purchaseForm.openCatalog(),
...productCatalog.checkProductPrice("Crab Juice", "$ 1.55"),
...productCatalog.addProduct("Crab Juice"),
...productCatalog.waitForQuantity("Crab Juice", 1),
...productCatalog.checkProductUoM("Crab Juice", "L"),
...productCatalog.checkProductPrice("Crab Juice", "$ 1.55"),
// Go back in the PO form view and check PO line price and qty is correct.
...productCatalog.goBackToOrder(),
...purchaseForm.checkLineValues(0, {
product: "Crab Juice",
quantity: "1.00",
discount: "22.50",
unit: "L",
unitPrice: "2.00",
totalPrice: "$ 1.55",
}),
],
});