diff --git a/.claude/board/AGENT_LOG.md b/.claude/board/AGENT_LOG.md index 2229f7cd..c7af608c 100644 --- a/.claude/board/AGENT_LOG.md +++ b/.claude/board/AGENT_LOG.md @@ -1,6 +1,34 @@ +## 2026-06-18 — PR #525 follow-up: `_inherit`-only binding scoped to `inherit[0]` + +**Main thread (Opus) — single implementer**, branch `claude/odoo-spo-fk-target-deep-reads`. Addresses the one unresolved codex P2 on #525: the prior `_inherit`-only fix bound a no-`_name` class's relational fields to the WHOLE `_inherit` list, so a multi-element `_inherit = ['a','b']` would attach local fields to every inherited mixin and let `build_relation_map()` emit bogus `target`/`reads_field` triples for secondary parents. + +**Fix:** `spo_enrich.py` no-`_name` case now binds to `inherit[0]` only (`inherit_models[:1]`), matching Odoo in-place extension semantics and the repo's own `parsers/classes.py` collapse. `test_inherit_list_binds_field_to_each_model` → `..._to_first_model_only` (asserts `sale_order` bound, `purchase_order` NOT). Docstrings reworded. + +**Corpus impact: NONE.** Regenerated from base `1ec76f5b` (22 245) with the fixed enrich → `out=24166`, `target=842`, `inverse_name=144` — **byte-identical** to the committed corpus (`diff -q` clean). No real scanned-addons class triggers the bogus secondary-mixin binding scoped to a corpus-declared model, so the Rust count assertions (24 166 / 842 / 144 / 3 030) are unchanged; no `odoo_ontology.rs` edit. The fix is defensive tooling-correctness. + +**Tests:** `python3 -m unittest tests.test_spo_enrich` 20/20 green. + +## 2026-06-17 — PR #523 review fixes: spo_enrich multi-emitter + `_inherit`-only + +**Main thread (Opus) — single implementer**, branch `claude/odoo-spo-fk-target-deep-reads` (review-fix commit on top of the enrichment commit, no rebase). Addresses 4 valid review findings (codex P1 + codex P2/CodeRabbit Major + 2 CodeRabbit doc nits). Scope: the lance-graph SPO corpus + the stdlib Python extractor tooling under `tools/odoo-blueprint-extractor/` (no odoo-rs change). + +**Fixed:** +- **Fix 1 (codex P1, real bug):** `spo_enrich.py` deep-read lift kept only the LAST `emitted_by` method per field (`field_emitter` dict). A field with multiple emitters (confirmed `stock_move.quantity` ← `_compute_quantity` AND `_onchange_product_uom_qty`) lifted the deep `reads_field` onto one only. Changed to a per-field sorted emitter LIST (`field_emitters`); the deep read is now emitted for EACH emitter (self-loop drop preserved per-emitter, determinism kept). +- **Fix 2 (codex P2 / CodeRabbit Major):** `_scan_file` bound relational fields only when `_name` was present, dropping the `_inherit`-only extension form (`_inherit = "account.move"` / `["a","b"]` with no `_name`). Now resolves `model_names` from `_name` if present ELSE from `_inherit` (string→1, list/tuple→each, via new `_const_str_list`), mapping `local_fields` onto every resolved model — mirroring the package class parser's `_inherit` handling. +- **Fix 3 (CodeRabbit doc nit):** AGENT_LOG scope reworded from "lance-graph only" to "lance-graph corpus + the stdlib Python extractor tooling" (the diff includes `spo_enrich.py` + tests). +- **Fix 4 (CodeRabbit doc nit):** the EPIPHANIES "27 compute edges / no-cycle verified locally" claim used a discarded worktree. Re-anchored to a persistent in-repo fixture test (`tools/odoo-blueprint-extractor/tests/test_spo_enrich.py` `TestMultiEmitterDeepReads` + `TestInheritOnlyRelationMap`). + +**Corpus regenerated from base (22 245):** 22 245 → **24 166** triples. `target` 618→**842** (+224, `_inherit`-only extension fields), `inverse_name` 102→**144** (+42), deep `reads_field` 736→**935** (+199, per-emitter lift); `reads_field` total 2 095→**3 030**. Unknown-hop skips 567→337 (more hops now resolve via `_inherit` targets). `rdf:type`/`depends_on`/`emitted_by`/`has_function` unchanged. + +**Rust:** `odoo_ontology.rs` module-doc + count test (24 166), histogram (`target`=842, `inverse_name`=144, `reads_field`=3 030) updated; 2 new in-corpus tests (`enrichment_lifts_deep_reads_onto_every_emitter` on `stock_move.quantity`; `enrichment_honors_inherit_only_extension_fields` on `account_move.authorized_transaction_ids` → `payment.transaction`). + +**Tests:** extractor `python3 -m unittest discover` 20/20 green (14 prior + 6 new). lance-graph `cargo test -p lance-graph --lib odoo_ontology` green (counts updated). `cargo fmt` clean; `cargo clippy -p lance-graph -- -D warnings` clean on the touched crate (pre-existing causal-edge/p64-bridge/planner `-D warnings` debt untouched). See `EPIPHANIES.md` E-ODOO-FK-DEEP-READS (Status updated with the review-fix totals). + +--- + ## 2026-06-17 — odoo SPO corpus enrichment: P1 FK-target + P0 deep-reads_field (UPSTREAM_WISHLIST) -**Main thread (Opus) — single implementer**, branch `claude/odoo-spo-fk-target-deep-reads`. Implements the odoo-rs `UPSTREAM_WISHLIST` P1 (FK `target`/`inverse_name`) + coupled P0 (deep `reads_field`) corpus enrichment, lance-graph only. +**Main thread (Opus) — single implementer**, branch `claude/odoo-spo-fk-target-deep-reads`. Implements the odoo-rs `UPSTREAM_WISHLIST` P1 (FK `target`/`inverse_name`) + coupled P0 (deep `reads_field`) corpus enrichment. Scope: the lance-graph SPO corpus + the stdlib Python extractor tooling under `tools/odoo-blueprint-extractor/` (no odoo-rs change). **Review-fix follow-up 2026-06-17 (PR #523, see entry above):** totals below (618/102/736 → 24 166) were corrected by the review pass; see the prepended entry for the new figures. **Shipped:** - `tools/odoo-blueprint-extractor/odoo_blueprint_extractor/spo_enrich.py` (new, stdlib-only): builds a `(model, field) → (comodel, inverse)` relation map from `/home/user/odoo/addons` via `ast`, then (P1) emits `target`/`inverse_name` sibling triples keyed by the relation IRI (ruff#18 shape, raw dotted comodel object) for every relational field on a corpus-declared model, and (P0) resolves each dotted `@api.depends` path through the map and lifts a deep `reads_field` onto the field's emitting method. Additive, deterministic, idempotent (`(s,p,o)` dedup); self-loops dropped; unknown-hop paths skipped + counted. CLI: `python3 -m odoo_blueprint_extractor.spo_enrich --corpus … --addons …`. diff --git a/crates/lance-graph/src/graph/spo/odoo_ontology.rs b/crates/lance-graph/src/graph/spo/odoo_ontology.rs index 0edf684c..a8b90dc2 100644 --- a/crates/lance-graph/src/graph/spo/odoo_ontology.rs +++ b/crates/lance-graph/src/graph/spo/odoo_ontology.rs @@ -68,8 +68,15 @@ //! //! Data file `odoo_ontology.spo.ndjson` carries the base extraction (388 //! Object Types, 3 107 Properties, 3 328 Functions) plus the `spo_enrich` -//! P1/P0 layer (618 `target` + 102 `inverse_name` + 736 deep `reads_field`), -//! for 23 701 triples total. The base extraction's original generator +//! P1/P0 layer (842 `target` + 144 `inverse_name` + 935 deep `reads_field`), +//! for 24 166 triples total. The `target`/`inverse_name`/deep-read totals grew +//! over the initial enrichment (618/102/736) once `spo_enrich` (a) honored +//! `_inherit`-only extension classes — `_inherit = "account.move"` with no +//! `_name`, the common Odoo extension form whose relational fields were +//! previously dropped — and (b) lifted each deep `reads_field` onto EVERY +//! emitter of the dependent field, not just the last (a field such as +//! `stock_move.quantity` is emitted by both `_compute_quantity` and +//! `_onchange_product_uom_qty`). The base extraction's original generator //! (`emit_ontology2.py` over a `methods.parquet`) is not present in this //! tree — only its output is — so the enrichment is applied over the shipped //! corpus + the Odoo source via @@ -146,9 +153,9 @@ mod tests { #[test] fn parses_all_triples() { let triples = parse_triples(ONTOLOGY); - // 22 245 base triples + 1 456 spo_enrich triples (618 target + - // 102 inverse_name + 736 deep reads_field) = 23 701. - assert_eq!(triples.len(), 23_701, "triple count drifted from data file"); + // 22 245 base triples + 1 921 spo_enrich triples (842 target + + // 144 inverse_name + 935 deep reads_field) = 24 166. + assert_eq!(triples.len(), 24_166, "triple count drifted from data file"); } #[test] @@ -176,10 +183,13 @@ mod tests { assert_eq!(hist.get("emitted_by"), Some(&3228)); assert_eq!(hist.get("rdf:type"), Some(&6823)); // spo_enrich P1/P0 layer: FK target/inverse_name + deep reads_field. - assert_eq!(hist.get("target"), Some(&618)); - assert_eq!(hist.get("inverse_name"), Some(&102)); - // reads_field grew from 2 095 (base) to 2 831 with 736 deep lifts. - assert_eq!(hist.get("reads_field"), Some(&2831)); + // Totals grew from 618/102/736 once `_inherit`-only extension classes + // were honored (more `target`/`inverse_name`) and deep reads were + // lifted onto EVERY emitter of a field (more deep `reads_field`). + assert_eq!(hist.get("target"), Some(&842)); + assert_eq!(hist.get("inverse_name"), Some(&144)); + // reads_field grew from 2 095 (base) to 3 030 with 935 deep lifts. + assert_eq!(hist.get("reads_field"), Some(&3030)); assert_eq!(hist.get("other"), None, "unexpected predicate kind"); } @@ -369,4 +379,58 @@ mod tests { "function count drifted from module-doc claim (3 328)" ); } + + /// `spo_enrich` P0 multi-emitter — a field emitted by MORE than one method + /// must have its deep `reads_field` lifted onto EVERY emitter, not just the + /// last. `stock_move.quantity` is emitted by both `_compute_quantity` AND + /// `_onchange_product_uom_qty`; both must carry the cross-model deep reads + /// (`stock_move_line.quantity` / `stock_move_line.product_uom_id`). Before + /// the multi-emitter fix the deep read landed on only one of them, dropping + /// the recompute-ordering edge for the other (typically the `_compute_*`). + #[test] + fn enrichment_lifts_deep_reads_onto_every_emitter() { + let triples = parse_triples(ONTOLOGY); + let deep_on = |method: &str, obj: &str| { + triples + .iter() + .any(|t| t.s == method && t.p == "reads_field" && t.o == obj) + }; + // Both emitters of stock_move.quantity carry the cross-model deep read. + assert!( + deep_on( + "odoo:stock_move._compute_quantity", + "odoo:stock_move_line.quantity" + ), + "P0 multi-emitter: _compute_quantity must read stock_move_line.quantity" + ); + assert!( + deep_on( + "odoo:stock_move._onchange_product_uom_qty", + "odoo:stock_move_line.quantity" + ), + "P0 multi-emitter: _onchange_product_uom_qty must also read \ + stock_move_line.quantity (every emitter, not just the last)" + ); + } + + /// `spo_enrich` P1 `_inherit`-only — relational fields declared on an + /// extension class (`_inherit = "account.move"` with no `_name`) must still + /// get their `target`. `account_move.authorized_transaction_ids` is declared + /// only on the `account_payment` extension of `account.move`; before the + /// `_inherit` fix the class was skipped (no `_name`) and the field never got + /// a target. + #[test] + fn enrichment_honors_inherit_only_extension_fields() { + let triples = parse_triples(ONTOLOGY); + let target = triples.iter().any(|t| { + t.s == "odoo:account_move.authorized_transaction_ids" + && t.p == "target" + && t.o == "payment.transaction" + }); + assert!( + target, + "P1 _inherit-only: authorized_transaction_ids (declared on an \ + _inherit='account.move' extension) must resolve to payment.transaction" + ); + } } diff --git a/crates/lance-graph/src/graph/spo/odoo_ontology.spo.ndjson b/crates/lance-graph/src/graph/spo/odoo_ontology.spo.ndjson index fafc2c38..a22a35d5 100644 --- a/crates/lance-graph/src/graph/spo/odoo_ontology.spo.ndjson +++ b/crates/lance-graph/src/graph/spo/odoo_ontology.spo.ndjson @@ -22249,6 +22249,9 @@ {"s":"odoo:account_account.group_id","p":"target","o":"account.group","f":0.95,"c":0.9} {"s":"odoo:account_account.root_id","p":"target","o":"account.root","f":0.95,"c":0.9} {"s":"odoo:account_account.tax_ids","p":"target","o":"account.tax","f":0.95,"c":0.9} +{"s":"odoo:account_analytic_line._compute_partner_id","p":"reads_field","o":"odoo:account_move_line.partner_id","f":0.85,"c":0.75} +{"s":"odoo:account_analytic_line.general_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} +{"s":"odoo:account_analytic_line.move_line_id","p":"target","o":"account.move.line","f":0.95,"c":0.9} {"s":"odoo:account_analytic_line.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:account_analytic_line.product_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:account_bank_statement._compute_balance_end","p":"reads_field","o":"odoo:account_bank_statement_line.amount","f":0.85,"c":0.75} @@ -22286,9 +22289,12 @@ {"s":"odoo:account_journal._compute_l10n_tr_default_sales_return_account_id","p":"reads_field","o":"odoo:res_company.country_code","f":0.85,"c":0.75} {"s":"odoo:account_journal.available_payment_method_ids","p":"target","o":"account.payment.method","f":0.95,"c":0.9} {"s":"odoo:account_journal.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:account_journal.compatible_edi_ids","p":"target","o":"account.edi.format","f":0.95,"c":0.9} {"s":"odoo:account_journal.default_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} +{"s":"odoo:account_journal.edi_format_ids","p":"target","o":"account.edi.format","f":0.95,"c":0.9} {"s":"odoo:account_journal.inbound_payment_method_line_ids","p":"inverse_name","o":"journal_id","f":0.95,"c":0.9} {"s":"odoo:account_journal.inbound_payment_method_line_ids","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} +{"s":"odoo:account_journal.l10n_tr_default_sales_return_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} {"s":"odoo:account_journal.loss_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} {"s":"odoo:account_journal.outbound_payment_method_line_ids","p":"inverse_name","o":"journal_id","f":0.95,"c":0.9} {"s":"odoo:account_journal.outbound_payment_method_line_ids","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} @@ -22304,6 +22310,19 @@ {"s":"odoo:account_move._compute_amount","p":"reads_field","o":"odoo:account_payment.is_matched","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_amount","p":"reads_field","o":"odoo:account_payment.state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_checked","p":"reads_field","o":"odoo:account_journal.type","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_delivery_date","p":"reads_field","o":"odoo:sale_order.effective_date","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_error_count","p":"reads_field","o":"odoo:account_edi_document.error","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_error_message","p":"reads_field","o":"odoo:account_edi_document.blocking_level","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_error_message","p":"reads_field","o":"odoo:account_edi_document.error","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_show_abandon_cancel_button","p":"reads_field","o":"odoo:account_edi_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_show_cancel_button","p":"reads_field","o":"odoo:account_edi_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_show_force_cancel_button","p":"reads_field","o":"odoo:account_edi_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_state","p":"reads_field","o":"odoo:account_edi_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_web_services_to_process","p":"reads_field","o":"odoo:account_edi_document.blocking_level","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_web_services_to_process","p":"reads_field","o":"odoo:account_edi_document.edi_format_id","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_web_services_to_process","p":"reads_field","o":"odoo:account_edi_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_edi_web_services_to_process","p":"reads_field","o":"odoo:account_edi_format.name","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_incoterm_location","p":"reads_field","o":"odoo:sale_order_line.order_id","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_invoice_incoterm_placeholder","p":"reads_field","o":"odoo:res_company.incoterm_id","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_invoice_partner_display_info","p":"reads_field","o":"odoo:res_partner.display_name","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_ar_afip_concept","p":"reads_field","o":"odoo:account_move_line.product_id","f":0.85,"c":0.75} @@ -22311,9 +22330,16 @@ {"s":"odoo:account_move._compute_l10n_es_edi_is_required","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_es_edi_verifactu_available_clave_regimens","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_es_edi_verifactu_clave_regimen","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_es_edi_verifactu_qr_code","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.json_attachment_id","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_es_edi_verifactu_state","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_es_edi_verifactu_warning","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.errors","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_es_edi_verifactu_warning","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_es_is_simplified","p":"reads_field","o":"odoo:account_move_line.balance","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_es_tbai_state","p":"reads_field","o":"odoo:l10n_es_edi_tbai_document.state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_fr_is_company_french","p":"reads_field","o":"odoo:res_company.country_code","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_hr_payment_unreported","p":"reads_field","o":"odoo:l10n_hr_edi_addendum.payment_reported_amount","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_id_coretax_efaktur_available","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_in_ewaybill_details","p":"reads_field","o":"odoo:l10n_in_ewaybill.state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_it_edi_doi_id","p":"reads_field","o":"odoo:res_partner.commercial_partner_id","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_it_edi_is_self_invoice","p":"reads_field","o":"odoo:account_move_line.tax_tag_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_it_partner_is_public_administration","p":"reads_field","o":"odoo:res_partner.l10n_it_pa_index","f":0.85,"c":0.75} @@ -22321,16 +22347,21 @@ {"s":"odoo:account_move._compute_l10n_it_payment_method","p":"reads_field","o":"odoo:account_move_line.matching_number","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_jo_edi_invoice_type","p":"reads_field","o":"odoo:res_partner.country_code","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_my_edi_display_tax_exemption_reason","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_l10n_my_edi_state","p":"reads_field","o":"odoo:myinvois_document.myinvois_state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_tw_edi_invoice_type","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_l10n_tw_edi_is_zero_tax_rate","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_landed_costs_visible","p":"reads_field","o":"odoo:account_move_line.is_landed_costs_line","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_narration","p":"reads_field","o":"odoo:res_partner.lang","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_nemhandel_can_send_response","p":"reads_field","o":"odoo:nemhandel_response.nemhandel_state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_nemhandel_move_state","p":"reads_field","o":"odoo:nemhandel_response.nemhandel_state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_next_payment_date","p":"reads_field","o":"odoo:account_move_line.payment_date","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_next_payment_date","p":"reads_field","o":"odoo:account_move_line.reconciled","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_no_followup","p":"reads_field","o":"odoo:account_move_line.no_followup","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_origin_so_count","p":"reads_field","o":"odoo:account_move_line.sale_line_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_payment_state","p":"reads_field","o":"odoo:account_payment.state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_payments_widget_reconciled_info","p":"reads_field","o":"odoo:account_move_line.amount_residual","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_peppol_can_send_response","p":"reads_field","o":"odoo:account_peppol_response.peppol_state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_peppol_move_state","p":"reads_field","o":"odoo:account_peppol_response.peppol_state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_qr_code_str","p":"reads_field","o":"odoo:account_journal.l10n_sa_production_csid_json","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_qr_code_str","p":"reads_field","o":"odoo:res_company.vat","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_quick_edit_mode","p":"reads_field","o":"odoo:account_journal.type","f":0.85,"c":0.75} @@ -22342,6 +22373,10 @@ {"s":"odoo:account_move._compute_sale_warning_text","p":"reads_field","o":"odoo:product_product.sale_line_warn_msg","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_sale_warning_text","p":"reads_field","o":"odoo:res_partner.name","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_sale_warning_text","p":"reads_field","o":"odoo:res_partner.sale_warn_msg","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_show_reset_to_draft_button","p":"reads_field","o":"odoo:account_edi_document.state","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_show_reset_to_draft_button","p":"reads_field","o":"odoo:l10n_es_edi_tbai_document.chain_index","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_show_reset_to_draft_button","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.json_attachment_id","f":0.85,"c":0.75} +{"s":"odoo:account_move._compute_show_reset_to_draft_button","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.state","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_tax_lock_date_message","p":"reads_field","o":"odoo:account_move_line.credit","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_tax_lock_date_message","p":"reads_field","o":"odoo:account_move_line.debit","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_tax_lock_date_message","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} @@ -22354,11 +22389,14 @@ {"s":"odoo:account_move._compute_tax_totals","p":"reads_field","o":"odoo:account_move_line.tax_line_id","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_taxes_legal_notes","p":"reads_field","o":"odoo:account_move_line.tax_ids","f":0.85,"c":0.75} {"s":"odoo:account_move._compute_timesheet_total_duration","p":"reads_field","o":"odoo:res_company.timesheet_encode_uom_id","f":0.85,"c":0.75} +{"s":"odoo:account_move.authorized_transaction_ids","p":"target","o":"payment.transaction","f":0.95,"c":0.9} {"s":"odoo:account_move.bank_partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:account_move.commercial_partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:account_move.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:account_move.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} {"s":"odoo:account_move.duplicated_ref_ids","p":"target","o":"account.move","f":0.95,"c":0.9} +{"s":"odoo:account_move.edi_document_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.edi_document_ids","p":"target","o":"account.edi.document","f":0.95,"c":0.9} {"s":"odoo:account_move.fiscal_position_id","p":"target","o":"account.fiscal.position","f":0.95,"c":0.9} {"s":"odoo:account_move.invoice_incoterm_id","p":"target","o":"account.incoterms","f":0.95,"c":0.9} {"s":"odoo:account_move.invoice_line_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} @@ -22367,15 +22405,39 @@ {"s":"odoo:account_move.invoice_user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:account_move.invoice_vendor_bill_id","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:account_move.journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_ar_withholding_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_ar_withholding_ids","p":"target","o":"account.move.line","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_es_edi_verifactu_document_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_es_edi_verifactu_document_ids","p":"target","o":"l10n_es_edi_verifactu.document","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_es_tbai_cancel_document_id","p":"target","o":"l10n_es_edi_tbai.document","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_es_tbai_post_document_id","p":"target","o":"l10n_es_edi_tbai.document","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_gr_edi_attachment_id","p":"target","o":"ir.attachment","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_hr_edi_addendum_id","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_hr_edi_addendum_id","p":"target","o":"l10n_hr_edi.addendum","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_in_ewaybill_ids","p":"inverse_name","o":"account_move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_in_ewaybill_ids","p":"target","o":"l10n.in.ewaybill","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_in_state_id","p":"target","o":"res.country.state","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_it_document_type","p":"target","o":"l10n_it.document.type","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_it_edi_doi_id","p":"target","o":"l10n_it_edi_doi.declaration_of_intent","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_latam_available_document_type_ids","p":"target","o":"l10n_latam.document.type","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_latam_document_type_id","p":"target","o":"l10n_latam.document.type","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_my_edi_document_ids","p":"target","o":"myinvois.document","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_tr_exemption_code_id","p":"target","o":"l10n_tr_nilvera_einvoice_extended.account.tax.code","f":0.95,"c":0.9} +{"s":"odoo:account_move.l10n_vn_edi_invoice_symbol","p":"target","o":"l10n_vn_edi_viettel.sinvoice.symbol","f":0.95,"c":0.9} {"s":"odoo:account_move.line_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} {"s":"odoo:account_move.line_ids","p":"target","o":"account.move.line","f":0.95,"c":0.9} {"s":"odoo:account_move.matched_payment_ids","p":"target","o":"account.payment","f":0.95,"c":0.9} +{"s":"odoo:account_move.nemhandel_response_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.nemhandel_response_ids","p":"target","o":"nemhandel.response","f":0.95,"c":0.9} {"s":"odoo:account_move.partner_bank_id","p":"target","o":"res.partner.bank","f":0.95,"c":0.9} {"s":"odoo:account_move.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:account_move.partner_shipping_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:account_move.peppol_response_ids","p":"inverse_name","o":"move_id","f":0.95,"c":0.9} +{"s":"odoo:account_move.peppol_response_ids","p":"target","o":"account.peppol.response","f":0.95,"c":0.9} {"s":"odoo:account_move.preferred_payment_method_line_id","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} {"s":"odoo:account_move.reconciled_payment_ids","p":"target","o":"account.payment","f":0.95,"c":0.9} {"s":"odoo:account_move.suitable_journal_ids","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:account_move.website_id","p":"target","o":"website","f":0.95,"c":0.9} {"s":"odoo:account_move_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_ids","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_currency_id","p":"reads_field","o":"odoo:account_move.currency_id","f":0.85,"c":0.75} @@ -22383,6 +22445,7 @@ {"s":"odoo:account_move_line._compute_currency_rate","p":"reads_field","o":"odoo:account_move.invoice_currency_rate","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_epd_needed","p":"reads_field","o":"odoo:account_move.needed_terms","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_is_refund","p":"reads_field","o":"odoo:account_move.move_type","f":0.85,"c":0.75} +{"s":"odoo:account_move_line._compute_is_storno","p":"reads_field","o":"odoo:account_move.is_storno","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_l10n_gr_edi_available_cls_category","p":"reads_field","o":"odoo:account_move.l10n_gr_edi_correlation_id","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_l10n_gr_edi_available_cls_category","p":"reads_field","o":"odoo:account_move.l10n_gr_edi_inv_type","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_l10n_gr_edi_available_cls_type","p":"reads_field","o":"odoo:account_move.l10n_gr_edi_correlation_id","f":0.85,"c":0.75} @@ -22395,21 +22458,31 @@ {"s":"odoo:account_move_line._compute_name","p":"reads_field","o":"odoo:account_move.payment_reference","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_name","p":"reads_field","o":"odoo:account_move.ref","f":0.85,"c":0.75} {"s":"odoo:account_move_line._compute_sale_line_warn_msg","p":"reads_field","o":"odoo:product_product.sale_line_warn_msg","f":0.85,"c":0.75} +{"s":"odoo:account_move_line._inverse_credit","p":"reads_field","o":"odoo:account_move.is_storno","f":0.85,"c":0.75} {"s":"odoo:account_move_line._inverse_debit","p":"reads_field","o":"odoo:account_move.is_storno","f":0.85,"c":0.75} {"s":"odoo:account_move_line.allowed_uom_ids","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:account_move_line.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} +{"s":"odoo:account_move_line.l10n_hr_kpd_category_id","p":"target","o":"l10n_hr.kpd.category","f":0.95,"c":0.9} {"s":"odoo:account_move_line.move_id","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:account_move_line.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:account_move_line.product_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:account_move_line.reconciled_lines_excluding_exchange_diff_ids","p":"target","o":"account.move.line","f":0.95,"c":0.9} {"s":"odoo:account_move_line.reconciled_lines_ids","p":"target","o":"account.move.line","f":0.95,"c":0.9} {"s":"odoo:account_move_line.tax_ids","p":"target","o":"account.tax","f":0.95,"c":0.9} +{"s":"odoo:account_move_reversal.l10n_latam_available_document_type_ids","p":"target","o":"l10n_latam.document.type","f":0.95,"c":0.9} +{"s":"odoo:account_move_reversal.l10n_latam_document_type_id","p":"target","o":"l10n_latam.document.type","f":0.95,"c":0.9} {"s":"odoo:account_partial_reconcile._compute_max_date","p":"reads_field","o":"odoo:account_move_line.date","f":0.85,"c":0.75} {"s":"odoo:account_partial_reconcile.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:account_partial_reconcile.credit_move_id","p":"target","o":"account.move.line","f":0.95,"c":0.9} {"s":"odoo:account_partial_reconcile.debit_move_id","p":"target","o":"account.move.line","f":0.95,"c":0.9} +{"s":"odoo:account_payment._compute_amount","p":"reads_field","o":"odoo:l10n_latam_check.amount","f":0.85,"c":0.75} {"s":"odoo:account_payment._compute_amount_company_currency_signed","p":"reads_field","o":"odoo:account_move.amount_total_signed","f":0.85,"c":0.75} {"s":"odoo:account_payment._compute_display_name","p":"reads_field","o":"odoo:account_move.name","f":0.85,"c":0.75} +{"s":"odoo:account_payment._compute_l10n_latam_check_warning_msg","p":"reads_field","o":"odoo:account_payment.date","f":0.85,"c":0.75} +{"s":"odoo:account_payment._compute_l10n_latam_check_warning_msg","p":"reads_field","o":"odoo:l10n_latam_check.amount","f":0.85,"c":0.75} +{"s":"odoo:account_payment._compute_l10n_latam_check_warning_msg","p":"reads_field","o":"odoo:l10n_latam_check.bank_id","f":0.85,"c":0.75} +{"s":"odoo:account_payment._compute_l10n_latam_check_warning_msg","p":"reads_field","o":"odoo:l10n_latam_check.issuer_vat","f":0.85,"c":0.75} +{"s":"odoo:account_payment._compute_l10n_latam_check_warning_msg","p":"reads_field","o":"odoo:l10n_latam_check.name","f":0.85,"c":0.75} {"s":"odoo:account_payment._compute_name","p":"reads_field","o":"odoo:account_move.name","f":0.85,"c":0.75} {"s":"odoo:account_payment._compute_qr_code","p":"reads_field","o":"odoo:account_move.state","f":0.85,"c":0.75} {"s":"odoo:account_payment._compute_reconciliation_status","p":"reads_field","o":"odoo:account_move_line.account_id","f":0.85,"c":0.75} @@ -22428,14 +22501,37 @@ {"s":"odoo:account_payment.destination_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} {"s":"odoo:account_payment.duplicate_payment_ids","p":"target","o":"account.payment","f":0.95,"c":0.9} {"s":"odoo:account_payment.journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:account_payment.l10n_latam_move_check_ids","p":"target","o":"l10n_latam.check","f":0.95,"c":0.9} +{"s":"odoo:account_payment.l10n_latam_new_check_ids","p":"inverse_name","o":"payment_id","f":0.95,"c":0.9} +{"s":"odoo:account_payment.l10n_latam_new_check_ids","p":"target","o":"l10n_latam.check","f":0.95,"c":0.9} +{"s":"odoo:account_payment.l10n_pl_verification_id","p":"target","o":"l10n_pl.bank.account.verification","f":0.95,"c":0.9} {"s":"odoo:account_payment.move_id","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:account_payment.outstanding_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} {"s":"odoo:account_payment.partner_bank_id","p":"target","o":"res.partner.bank","f":0.95,"c":0.9} {"s":"odoo:account_payment.payment_method_line_id","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} +{"s":"odoo:account_payment.payment_token_id","p":"target","o":"payment.token","f":0.95,"c":0.9} {"s":"odoo:account_payment.reconciled_bill_ids","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:account_payment.reconciled_invoice_ids","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:account_payment.reconciled_statement_line_ids","p":"target","o":"account.bank.statement.line","f":0.95,"c":0.9} +{"s":"odoo:account_payment.suitable_payment_token_ids","p":"target","o":"payment.token","f":0.95,"c":0.9} +{"s":"odoo:account_payment_method_line._compute_name","p":"reads_field","o":"odoo:payment_provider.name","f":0.85,"c":0.75} +{"s":"odoo:account_payment_method_line.payment_provider_id","p":"target","o":"payment.provider","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register._compute_amount","p":"reads_field","o":"odoo:l10n_latam_check.amount","f":0.85,"c":0.75} +{"s":"odoo:account_payment_register._compute_amount","p":"reads_field","o":"odoo:l10n_latam_payment_register_check.amount","f":0.85,"c":0.75} +{"s":"odoo:account_payment_register._compute_currency_id","p":"reads_field","o":"odoo:l10n_latam_check.currency_id","f":0.85,"c":0.75} +{"s":"odoo:account_payment_register._compute_l10n_ar_net_amount","p":"reads_field","o":"odoo:l10n_ar_payment_register_withholding.amount","f":0.85,"c":0.75} +{"s":"odoo:account_payment_register._compute_withholding_net_amount","p":"reads_field","o":"odoo:account_payment_register_withholding_line.amount","f":0.85,"c":0.75} {"s":"odoo:account_payment_register.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.l10n_ar_withholding_ids","p":"inverse_name","o":"payment_register_id","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.l10n_ar_withholding_ids","p":"target","o":"l10n_ar.payment.register.withholding","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.l10n_latam_move_check_ids","p":"target","o":"l10n_latam.check","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.l10n_latam_new_check_ids","p":"inverse_name","o":"payment_register_id","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.l10n_latam_new_check_ids","p":"target","o":"l10n_latam.payment.register.check","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.payment_token_id","p":"target","o":"payment.token","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.suitable_payment_token_ids","p":"target","o":"payment.token","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.withholding_line_ids","p":"inverse_name","o":"payment_register_id","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.withholding_line_ids","p":"target","o":"account.payment.register.withholding.line","f":0.95,"c":0.9} +{"s":"odoo:account_payment_register.withholding_outstanding_account_id","p":"target","o":"account.account","f":0.95,"c":0.9} {"s":"odoo:account_payment_register_withholding_line._compute_comodel_currency_id","p":"reads_field","o":"odoo:account_payment_register.currency_id","f":0.85,"c":0.75} {"s":"odoo:account_payment_register_withholding_line._compute_comodel_date","p":"reads_field","o":"odoo:account_payment_register.payment_date","f":0.85,"c":0.75} {"s":"odoo:account_payment_register_withholding_line._compute_comodel_payment_type","p":"reads_field","o":"odoo:account_payment_register.payment_type","f":0.85,"c":0.75} @@ -22476,6 +22572,8 @@ {"s":"odoo:account_tax.country_id","p":"target","o":"res.country","f":0.95,"c":0.9} {"s":"odoo:account_tax.invoice_repartition_line_ids","p":"inverse_name","o":"tax_id","f":0.95,"c":0.9} {"s":"odoo:account_tax.invoice_repartition_line_ids","p":"target","o":"account.tax.repartition.line","f":0.95,"c":0.9} +{"s":"odoo:account_tax.l10n_ar_state_id","p":"target","o":"res.country.state","f":0.95,"c":0.9} +{"s":"odoo:account_tax.l10n_ke_item_code_id","p":"target","o":"l10n_ke.item.code","f":0.95,"c":0.9} {"s":"odoo:account_tax.refund_repartition_line_ids","p":"inverse_name","o":"tax_id","f":0.95,"c":0.9} {"s":"odoo:account_tax.refund_repartition_line_ids","p":"target","o":"account.tax.repartition.line","f":0.95,"c":0.9} {"s":"odoo:account_tax.repartition_line_ids","p":"inverse_name","o":"tax_id","f":0.95,"c":0.9} @@ -22492,6 +22590,7 @@ {"s":"odoo:base_automation.trigger_field_ids","p":"target","o":"ir.model.fields","f":0.95,"c":0.9} {"s":"odoo:base_document_layout.report_layout_id","p":"target","o":"report.layout","f":0.95,"c":0.9} {"s":"odoo:calendar_alarm.mail_template_id","p":"target","o":"mail.template","f":0.95,"c":0.9} +{"s":"odoo:calendar_alarm.sms_template_id","p":"target","o":"sms.template","f":0.95,"c":0.9} {"s":"odoo:calendar_attendee._compute_common_name","p":"reads_field","o":"odoo:res_partner.name","f":0.85,"c":0.75} {"s":"odoo:calendar_attendee.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:calendar_event._compute_current_attendee","p":"reads_field","o":"odoo:calendar_attendee.state","f":0.85,"c":0.75} @@ -22522,8 +22621,16 @@ {"s":"odoo:crm_iap_lead_mining_request.team_id","p":"target","o":"crm.team","f":0.95,"c":0.9} {"s":"odoo:crm_lead._compute_email_from","p":"reads_field","o":"odoo:res_partner.email","f":0.85,"c":0.75} {"s":"odoo:crm_lead._compute_meeting_display","p":"reads_field","o":"odoo:calendar_event.start","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_phone","p":"reads_field","o":"odoo:res_partner.phone","f":0.85,"c":0.75} {"s":"odoo:crm_lead._compute_phone_state","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:crm_lead._compute_recurring_revenue_monthly","p":"reads_field","o":"odoo:crm_recurring_plan.number_of_months","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_sale_data","p":"reads_field","o":"odoo:sale_order.amount_untaxed","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_sale_data","p":"reads_field","o":"odoo:sale_order.company_id","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_sale_data","p":"reads_field","o":"odoo:sale_order.currency_id","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_sale_data","p":"reads_field","o":"odoo:sale_order.date_order","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_sale_data","p":"reads_field","o":"odoo:sale_order.state","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_visitor_page_count","p":"reads_field","o":"odoo:website_visitor.page_ids","f":0.85,"c":0.75} +{"s":"odoo:crm_lead._compute_visitor_sessions_count","p":"reads_field","o":"odoo:website_visitor.discuss_channel_ids","f":0.85,"c":0.75} {"s":"odoo:crm_lead._onchange_phone_validation","p":"reads_field","o":"odoo:res_partner.phone","f":0.85,"c":0.75} {"s":"odoo:crm_lead.calendar_event_ids","p":"inverse_name","o":"opportunity_id","f":0.95,"c":0.9} {"s":"odoo:crm_lead.calendar_event_ids","p":"target","o":"calendar.event","f":0.95,"c":0.9} @@ -22533,11 +22640,14 @@ {"s":"odoo:crm_lead.country_id","p":"target","o":"res.country","f":0.95,"c":0.9} {"s":"odoo:crm_lead.duplicate_lead_ids","p":"target","o":"crm.lead","f":0.95,"c":0.9} {"s":"odoo:crm_lead.lang_id","p":"target","o":"res.lang","f":0.95,"c":0.9} +{"s":"odoo:crm_lead.order_ids","p":"inverse_name","o":"opportunity_id","f":0.95,"c":0.9} +{"s":"odoo:crm_lead.order_ids","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:crm_lead.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:crm_lead.recurring_plan","p":"target","o":"crm.recurring.plan","f":0.95,"c":0.9} {"s":"odoo:crm_lead.stage_id","p":"target","o":"crm.stage","f":0.95,"c":0.9} {"s":"odoo:crm_lead.team_id","p":"target","o":"crm.team","f":0.95,"c":0.9} {"s":"odoo:crm_lead.user_company_ids","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:crm_lead.visitor_ids","p":"target","o":"website.visitor","f":0.95,"c":0.9} {"s":"odoo:crm_team._compute_assignment_max","p":"reads_field","o":"odoo:crm_team_member.assignment_max","f":0.85,"c":0.75} {"s":"odoo:crm_team._compute_lead_all_assigned_month_count","p":"reads_field","o":"odoo:crm_team_member.lead_month_count","f":0.85,"c":0.75} {"s":"odoo:crm_team._compute_member_ids","p":"reads_field","o":"odoo:crm_team_member.active","f":0.85,"c":0.75} @@ -22581,22 +22691,45 @@ {"s":"odoo:discuss_channel.livechat_customer_partner_ids","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:discuss_channel.parent_channel_id","p":"target","o":"discuss.channel","f":0.95,"c":0.9} {"s":"odoo:discuss_channel.self_member_id","p":"target","o":"discuss.channel.member","f":0.95,"c":0.9} +{"s":"odoo:discuss_channel_member._compute_agent_expertise_ids","p":"reads_field","o":"odoo:im_livechat_channel_member_history.agent_expertise_ids","f":0.85,"c":0.75} +{"s":"odoo:discuss_channel_member._compute_chatbot_script_id","p":"reads_field","o":"odoo:im_livechat_channel_member_history.chatbot_script_id","f":0.85,"c":0.75} {"s":"odoo:discuss_channel_member._compute_display_name","p":"reads_field","o":"odoo:discuss_channel.display_name","f":0.85,"c":0.75} {"s":"odoo:discuss_channel_member._compute_display_name","p":"reads_field","o":"odoo:mail_guest.name","f":0.85,"c":0.75} {"s":"odoo:discuss_channel_member._compute_display_name","p":"reads_field","o":"odoo:res_partner.name","f":0.85,"c":0.75} {"s":"odoo:discuss_channel_member._compute_is_pinned","p":"reads_field","o":"odoo:discuss_channel.last_interest_dt","f":0.85,"c":0.75} +{"s":"odoo:discuss_channel_member._compute_livechat_member_type","p":"reads_field","o":"odoo:im_livechat_channel_member_history.livechat_member_type","f":0.85,"c":0.75} {"s":"odoo:discuss_channel_member._compute_message_unread","p":"reads_field","o":"odoo:discuss_channel.message_ids","f":0.85,"c":0.75} +{"s":"odoo:discuss_channel_member.agent_expertise_ids","p":"target","o":"im_livechat.expertise","f":0.95,"c":0.9} {"s":"odoo:discuss_channel_member.channel_id","p":"target","o":"discuss.channel","f":0.95,"c":0.9} +{"s":"odoo:discuss_channel_member.chatbot_script_id","p":"target","o":"chatbot.script","f":0.95,"c":0.9} {"s":"odoo:discuss_channel_member.guest_id","p":"target","o":"mail.guest","f":0.95,"c":0.9} +{"s":"odoo:discuss_channel_member.livechat_member_history_ids","p":"inverse_name","o":"member_id","f":0.95,"c":0.9} +{"s":"odoo:discuss_channel_member.livechat_member_history_ids","p":"target","o":"im_livechat.channel.member.history","f":0.95,"c":0.9} {"s":"odoo:discuss_channel_member.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:event_booth_category._compute_price_incl","p":"reads_field","o":"odoo:product_product.taxes_id","f":0.85,"c":0.75} +{"s":"odoo:event_booth_category.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} +{"s":"odoo:event_booth_category.sponsor_type_id","p":"target","o":"event.sponsor.type","f":0.95,"c":0.9} +{"s":"odoo:event_event._compute_event_booth_category_available_ids","p":"reads_field","o":"odoo:event_booth.is_available","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_event_booth_category_ids","p":"reads_field","o":"odoo:event_booth.booth_category_id","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_event_booth_count","p":"reads_field","o":"odoo:event_booth.state","f":0.85,"c":0.75} {"s":"odoo:event_event._compute_event_registrations_open","p":"reads_field","o":"odoo:event_event_ticket.sale_available","f":0.85,"c":0.75} {"s":"odoo:event_event._compute_event_registrations_sold_out","p":"reads_field","o":"odoo:event_event_ticket.sale_available","f":0.85,"c":0.75} {"s":"odoo:event_event._compute_sale_price_total","p":"reads_field","o":"odoo:res_company.currency_id","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_sale_price_total","p":"reads_field","o":"odoo:sale_order.date_order","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_sale_price_total","p":"reads_field","o":"odoo:sale_order_line.company_id","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_sale_price_total","p":"reads_field","o":"odoo:sale_order_line.currency_id","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_sale_price_total","p":"reads_field","o":"odoo:sale_order_line.price_total","f":0.85,"c":0.75} {"s":"odoo:event_event._compute_seats","p":"reads_field","o":"odoo:event_registration.active","f":0.85,"c":0.75} {"s":"odoo:event_event._compute_seats","p":"reads_field","o":"odoo:event_registration.state","f":0.85,"c":0.75} {"s":"odoo:event_event._compute_start_sale_date","p":"reads_field","o":"odoo:event_event_ticket.start_sale_datetime","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_tracks_tag_ids","p":"reads_field","o":"odoo:event_track.tag_ids","f":0.85,"c":0.75} +{"s":"odoo:event_event._compute_tracks_tag_ids","p":"reads_field","o":"odoo:event_track_tag.color","f":0.85,"c":0.75} {"s":"odoo:event_event.address_search","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:event_event.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:event_event.event_booth_category_available_ids","p":"target","o":"event.booth.category","f":0.95,"c":0.9} +{"s":"odoo:event_event.event_booth_category_ids","p":"target","o":"event.booth.category","f":0.95,"c":0.9} +{"s":"odoo:event_event.event_booth_ids","p":"inverse_name","o":"event_id","f":0.95,"c":0.9} +{"s":"odoo:event_event.event_booth_ids","p":"target","o":"event.booth","f":0.95,"c":0.9} {"s":"odoo:event_event.event_mail_ids","p":"inverse_name","o":"event_id","f":0.95,"c":0.9} {"s":"odoo:event_event.event_mail_ids","p":"target","o":"event.mail","f":0.95,"c":0.9} {"s":"odoo:event_event.event_ticket_ids","p":"inverse_name","o":"event_id","f":0.95,"c":0.9} @@ -22604,7 +22737,12 @@ {"s":"odoo:event_event.question_ids","p":"target","o":"event.question","f":0.95,"c":0.9} {"s":"odoo:event_event.registration_ids","p":"inverse_name","o":"event_id","f":0.95,"c":0.9} {"s":"odoo:event_event.registration_ids","p":"target","o":"event.registration","f":0.95,"c":0.9} +{"s":"odoo:event_event.sale_order_lines_ids","p":"inverse_name","o":"event_id","f":0.95,"c":0.9} +{"s":"odoo:event_event.sale_order_lines_ids","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:event_event.tag_ids","p":"target","o":"event.tag","f":0.95,"c":0.9} +{"s":"odoo:event_event.track_ids","p":"inverse_name","o":"event_id","f":0.95,"c":0.9} +{"s":"odoo:event_event.track_ids","p":"target","o":"event.track","f":0.95,"c":0.9} +{"s":"odoo:event_event.tracks_tag_ids","p":"target","o":"event.track.tag","f":0.95,"c":0.9} {"s":"odoo:event_lead_rule.lead_user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:event_mail._compute_scheduled_date","p":"reads_field","o":"odoo:event_event.date_begin","f":0.85,"c":0.75} {"s":"odoo:event_mail._compute_scheduled_date","p":"reads_field","o":"odoo:event_event.date_end","f":0.85,"c":0.75} @@ -22618,8 +22756,12 @@ {"s":"odoo:event_mail_slot._compute_scheduled_date","p":"reads_field","o":"odoo:event_slot.start_datetime","f":0.85,"c":0.75} {"s":"odoo:event_mail_slot.event_slot_id","p":"target","o":"event.slot","f":0.95,"c":0.9} {"s":"odoo:event_mail_slot.scheduler_id","p":"target","o":"event.mail","f":0.95,"c":0.9} +{"s":"odoo:event_registration._compute_registration_status","p":"reads_field","o":"odoo:sale_order.amount_total","f":0.85,"c":0.75} +{"s":"odoo:event_registration._compute_registration_status","p":"reads_field","o":"odoo:sale_order.currency_id","f":0.85,"c":0.75} +{"s":"odoo:event_registration._compute_registration_status","p":"reads_field","o":"odoo:sale_order.state","f":0.85,"c":0.75} {"s":"odoo:event_registration.event_slot_id","p":"target","o":"event.slot","f":0.95,"c":0.9} {"s":"odoo:event_registration.event_ticket_id","p":"target","o":"event.event.ticket","f":0.95,"c":0.9} +{"s":"odoo:event_registration.sale_order_id","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:event_registration.utm_campaign_id","p":"target","o":"utm.campaign","f":0.95,"c":0.9} {"s":"odoo:event_registration.utm_medium_id","p":"target","o":"utm.medium","f":0.95,"c":0.9} {"s":"odoo:event_registration.utm_source_id","p":"target","o":"utm.source","f":0.95,"c":0.9} @@ -22648,30 +22790,44 @@ {"s":"odoo:event_track._compute_quiz_data","p":"reads_field","o":"odoo:event_track_visitor.quiz_completed","f":0.85,"c":0.75} {"s":"odoo:event_track._compute_quiz_data","p":"reads_field","o":"odoo:event_track_visitor.quiz_points","f":0.85,"c":0.75} {"s":"odoo:event_track._compute_quiz_data","p":"reads_field","o":"odoo:event_track_visitor.visitor_id","f":0.85,"c":0.75} +{"s":"odoo:event_track._compute_quiz_id","p":"reads_field","o":"odoo:event_quiz.event_track_id","f":0.85,"c":0.75} +{"s":"odoo:event_track._compute_quiz_questions_count","p":"reads_field","o":"odoo:event_quiz.question_ids","f":0.85,"c":0.75} {"s":"odoo:event_track._compute_website_image_url","p":"reads_field","o":"odoo:res_partner.image_256","f":0.85,"c":0.75} {"s":"odoo:event_track._compute_wishlist_visitor_ids","p":"reads_field","o":"odoo:event_track_visitor.is_wishlisted","f":0.85,"c":0.75} {"s":"odoo:event_track._compute_wishlist_visitor_ids","p":"reads_field","o":"odoo:event_track_visitor.visitor_id","f":0.85,"c":0.75} {"s":"odoo:event_track.event_track_visitor_ids","p":"inverse_name","o":"track_id","f":0.95,"c":0.9} {"s":"odoo:event_track.event_track_visitor_ids","p":"target","o":"event.track.visitor","f":0.95,"c":0.9} {"s":"odoo:event_track.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:event_track.quiz_id","p":"target","o":"event.quiz","f":0.95,"c":0.9} +{"s":"odoo:event_track.quiz_ids","p":"inverse_name","o":"event_track_id","f":0.95,"c":0.9} +{"s":"odoo:event_track.quiz_ids","p":"target","o":"event.quiz","f":0.95,"c":0.9} {"s":"odoo:event_track.wishlist_visitor_ids","p":"target","o":"website.visitor","f":0.95,"c":0.9} {"s":"odoo:event_track_visitor.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle._compute_vehicle_name","p":"reads_field","o":"odoo:fleet_vehicle_model.name","f":0.85,"c":0.75} {"s":"odoo:fleet_vehicle._compute_vehicle_name","p":"reads_field","o":"odoo:fleet_vehicle_model_brand.name","f":0.85,"c":0.75} +{"s":"odoo:fleet_vehicle.driver_employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} +{"s":"odoo:fleet_vehicle.future_driver_employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle.model_id","p":"target","o":"fleet.vehicle.model","f":0.95,"c":0.9} +{"s":"odoo:fleet_vehicle_assignation_log.driver_employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle_log_contract._compute_contract_name","p":"reads_field","o":"odoo:fleet_vehicle.name","f":0.85,"c":0.75} {"s":"odoo:fleet_vehicle_log_contract.vehicle_id","p":"target","o":"fleet.vehicle","f":0.95,"c":0.9} +{"s":"odoo:fleet_vehicle_log_services._compute_amount","p":"reads_field","o":"odoo:account_move_line.price_subtotal","f":0.85,"c":0.75} +{"s":"odoo:fleet_vehicle_log_services._compute_vehicle_id","p":"reads_field","o":"odoo:account_move_line.vehicle_id","f":0.85,"c":0.75} +{"s":"odoo:fleet_vehicle_log_services.account_move_line_id","p":"target","o":"account.move.line","f":0.95,"c":0.9} +{"s":"odoo:fleet_vehicle_log_services.purchaser_employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle_log_services.purchaser_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle_log_services.vehicle_id","p":"target","o":"fleet.vehicle","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle_model_brand._compute_model_count","p":"reads_field","o":"odoo:fleet_vehicle_model.active","f":0.85,"c":0.75} {"s":"odoo:fleet_vehicle_model_brand.model_ids","p":"inverse_name","o":"brand_id","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle_model_brand.model_ids","p":"target","o":"fleet.vehicle.model","f":0.95,"c":0.9} {"s":"odoo:fleet_vehicle_odometer.driver_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:forum_forum._compute_image_1920","p":"reads_field","o":"odoo:slide_channel.image_1920","f":0.85,"c":0.75} {"s":"odoo:forum_forum._compute_tag_ids_usage","p":"reads_field","o":"odoo:forum_post.tag_ids","f":0.85,"c":0.75} {"s":"odoo:forum_forum._compute_tag_ids_usage","p":"reads_field","o":"odoo:forum_tag.posts_count","f":0.85,"c":0.75} {"s":"odoo:forum_forum.last_post_id","p":"target","o":"forum.post","f":0.95,"c":0.9} {"s":"odoo:forum_forum.post_ids","p":"inverse_name","o":"forum_id","f":0.95,"c":0.9} {"s":"odoo:forum_forum.post_ids","p":"target","o":"forum.post","f":0.95,"c":0.9} +{"s":"odoo:forum_forum.slide_channel_id","p":"target","o":"slide.channel","f":0.95,"c":0.9} {"s":"odoo:forum_forum.tag_most_used_ids","p":"target","o":"forum.tag","f":0.95,"c":0.9} {"s":"odoo:forum_forum.tag_unused_ids","p":"target","o":"forum.tag","f":0.95,"c":0.9} {"s":"odoo:forum_post._compute_has_validated_answer","p":"reads_field","o":"odoo:forum_post.is_correct","f":0.85,"c":0.75} @@ -22700,13 +22856,21 @@ {"s":"odoo:hr_applicant._compute_matching_skill_ids","p":"reads_field","o":"odoo:hr_job.expected_degree","f":0.85,"c":0.75} {"s":"odoo:hr_applicant._compute_matching_skill_ids","p":"reads_field","o":"odoo:hr_job.job_skill_ids","f":0.85,"c":0.75} {"s":"odoo:hr_applicant._compute_meeting_display","p":"reads_field","o":"odoo:calendar_event.start","f":0.85,"c":0.75} +{"s":"odoo:hr_applicant._compute_skill_ids","p":"reads_field","o":"odoo:hr_applicant_skill.skill_id","f":0.85,"c":0.75} {"s":"odoo:hr_applicant._compute_talent_pool_count","p":"reads_field","o":"odoo:hr_applicant.talent_pool_ids","f":0.85,"c":0.75} +{"s":"odoo:hr_applicant.applicant_skill_ids","p":"inverse_name","o":"applicant_id","f":0.95,"c":0.9} +{"s":"odoo:hr_applicant.applicant_skill_ids","p":"target","o":"hr.applicant.skill","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:hr_applicant.current_applicant_skill_ids","p":"inverse_name","o":"applicant_id","f":0.95,"c":0.9} +{"s":"odoo:hr_applicant.current_applicant_skill_ids","p":"target","o":"hr.applicant.skill","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.department_id","p":"target","o":"hr.department","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.job_id","p":"target","o":"hr.job","f":0.95,"c":0.9} +{"s":"odoo:hr_applicant.matching_skill_ids","p":"target","o":"hr.skill","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.meeting_ids","p":"inverse_name","o":"applicant_id","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.meeting_ids","p":"target","o":"calendar.event","f":0.95,"c":0.9} +{"s":"odoo:hr_applicant.missing_skill_ids","p":"target","o":"hr.skill","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.pool_applicant_id","p":"target","o":"hr.applicant","f":0.95,"c":0.9} +{"s":"odoo:hr_applicant.skill_ids","p":"target","o":"hr.skill","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.stage_id","p":"target","o":"hr.recruitment.stage","f":0.95,"c":0.9} {"s":"odoo:hr_applicant.user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:hr_attendance.linked_overtime_ids","p":"target","o":"hr.attendance.overtime.line","f":0.95,"c":0.9} @@ -22714,20 +22878,38 @@ {"s":"odoo:hr_department.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:hr_department.master_department_id","p":"target","o":"hr.department","f":0.95,"c":0.9} {"s":"odoo:hr_department.parent_id","p":"target","o":"hr.department","f":0.95,"c":0.9} +{"s":"odoo:hr_employee._compute_attendance_state","p":"reads_field","o":"odoo:hr_attendance.check_in","f":0.85,"c":0.75} +{"s":"odoo:hr_employee._compute_attendance_state","p":"reads_field","o":"odoo:hr_attendance.check_out","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_current_version_id","p":"reads_field","o":"odoo:hr_version.active","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_current_version_id","p":"reads_field","o":"odoo:hr_version.date_version","f":0.85,"c":0.75} +{"s":"odoo:hr_employee._compute_employee_badges","p":"reads_field","o":"odoo:gamification_badge_user.employee_id","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_is_trusted_bank_account","p":"reads_field","o":"odoo:res_partner_bank.allow_out_payment","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_presence_state","p":"reads_field","o":"odoo:res_users.im_status","f":0.85,"c":0.75} +{"s":"odoo:hr_employee._compute_skill_ids","p":"reads_field","o":"odoo:hr_employee_skill.skill_id","f":0.85,"c":0.75} +{"s":"odoo:hr_employee._compute_total_overtime","p":"reads_field","o":"odoo:hr_attendance_overtime_line.manual_duration","f":0.85,"c":0.75} +{"s":"odoo:hr_employee._compute_total_overtime","p":"reads_field","o":"odoo:hr_attendance_overtime_line.status","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_work_contact_details","p":"reads_field","o":"odoo:res_partner.email","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_work_contact_details","p":"reads_field","o":"odoo:res_partner.phone","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_work_location_name","p":"reads_field","o":"odoo:hr_work_location.name","f":0.85,"c":0.75} {"s":"odoo:hr_employee._compute_work_location_type","p":"reads_field","o":"odoo:hr_work_location.location_type","f":0.85,"c":0.75} {"s":"odoo:hr_employee._onchange_phone_validation_employee","p":"reads_field","o":"odoo:res_partner.email","f":0.85,"c":0.75} {"s":"odoo:hr_employee._onchange_phone_validation_employee","p":"reads_field","o":"odoo:res_partner.phone","f":0.85,"c":0.75} +{"s":"odoo:hr_employee.badge_ids","p":"target","o":"gamification.badge.user","f":0.95,"c":0.9} {"s":"odoo:hr_employee.bank_account_ids","p":"target","o":"res.partner.bank","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.certification_ids","p":"target","o":"hr.employee.skill","f":0.95,"c":0.9} {"s":"odoo:hr_employee.coach_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.current_employee_skill_ids","p":"target","o":"hr.employee.skill","f":0.95,"c":0.9} {"s":"odoo:hr_employee.current_version_id","p":"target","o":"hr.version","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.employee_skill_ids","p":"inverse_name","o":"employee_id","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.employee_skill_ids","p":"target","o":"hr.employee.skill","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.expense_manager_id","p":"target","o":"res.users","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.goal_ids","p":"target","o":"gamification.goal","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.last_attendance_id","p":"target","o":"hr.attendance","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.leave_manager_id","p":"target","o":"res.users","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.overtime_ids","p":"inverse_name","o":"employee_id","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.overtime_ids","p":"target","o":"hr.attendance.overtime.line","f":0.95,"c":0.9} {"s":"odoo:hr_employee.primary_bank_account_id","p":"target","o":"res.partner.bank","f":0.95,"c":0.9} +{"s":"odoo:hr_employee.skill_ids","p":"target","o":"hr.skill","f":0.95,"c":0.9} {"s":"odoo:hr_employee.user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:hr_employee.version_id","p":"target","o":"hr.version","f":0.95,"c":0.9} {"s":"odoo:hr_employee.version_ids","p":"inverse_name","o":"employee_id","f":0.95,"c":0.9} @@ -22749,21 +22931,29 @@ {"s":"odoo:hr_expense.payment_method_line_id","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} {"s":"odoo:hr_expense.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:hr_expense.product_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} +{"s":"odoo:hr_expense.sale_order_id","p":"target","o":"sale.order","f":0.95,"c":0.9} +{"s":"odoo:hr_expense.sale_order_line_id","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:hr_expense.same_receipt_expense_ids","p":"target","o":"hr.expense","f":0.95,"c":0.9} {"s":"odoo:hr_expense.selectable_payment_method_line_ids","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} {"s":"odoo:hr_expense.tax_ids","p":"target","o":"account.tax","f":0.95,"c":0.9} +{"s":"odoo:hr_expense_split.sale_order_id","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:hr_individual_skill_mixin.skill_id","p":"target","o":"hr.skill","f":0.95,"c":0.9} {"s":"odoo:hr_individual_skill_mixin.skill_level_id","p":"target","o":"hr.skill.level","f":0.95,"c":0.9} {"s":"odoo:hr_job._compute_employees","p":"reads_field","o":"odoo:hr_employee.active","f":0.85,"c":0.75} {"s":"odoo:hr_job._compute_employees","p":"reads_field","o":"odoo:hr_employee.job_id","f":0.85,"c":0.75} {"s":"odoo:hr_job._compute_extended_interviewer_ids","p":"reads_field","o":"odoo:hr_applicant.interviewer_ids","f":0.85,"c":0.75} {"s":"odoo:hr_job._compute_no_of_hired_employee","p":"reads_field","o":"odoo:hr_applicant.date_closed","f":0.85,"c":0.75} +{"s":"odoo:hr_job._compute_skill_ids","p":"reads_field","o":"odoo:hr_job_skill.skill_id","f":0.85,"c":0.75} {"s":"odoo:hr_job.allowed_user_ids","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:hr_job.application_ids","p":"inverse_name","o":"job_id","f":0.95,"c":0.9} {"s":"odoo:hr_job.application_ids","p":"target","o":"hr.applicant","f":0.95,"c":0.9} +{"s":"odoo:hr_job.current_job_skill_ids","p":"target","o":"hr.job.skill","f":0.95,"c":0.9} {"s":"odoo:hr_job.employee_ids","p":"inverse_name","o":"job_id","f":0.95,"c":0.9} {"s":"odoo:hr_job.employee_ids","p":"target","o":"hr.employee","f":0.95,"c":0.9} {"s":"odoo:hr_job.extended_interviewer_ids","p":"target","o":"res.users","f":0.95,"c":0.9} +{"s":"odoo:hr_job.job_skill_ids","p":"inverse_name","o":"job_id","f":0.95,"c":0.9} +{"s":"odoo:hr_job.job_skill_ids","p":"target","o":"hr.job.skill","f":0.95,"c":0.9} +{"s":"odoo:hr_job.skill_ids","p":"target","o":"hr.skill","f":0.95,"c":0.9} {"s":"odoo:hr_leave._compute_duration","p":"reads_field","o":"odoo:hr_leave_type.request_unit","f":0.85,"c":0.75} {"s":"odoo:hr_leave._compute_tz","p":"reads_field","o":"odoo:resource_calendar.tz","f":0.85,"c":0.75} {"s":"odoo:hr_leave.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} @@ -22781,6 +22971,8 @@ {"s":"odoo:hr_leave_type.country_id","p":"target","o":"res.country","f":0.95,"c":0.9} {"s":"odoo:hr_recruitment_source._compute_url","p":"reads_field","o":"odoo:hr_job.company_id","f":0.85,"c":0.75} {"s":"odoo:hr_recruitment_source.job_id","p":"target","o":"hr.job","f":0.95,"c":0.9} +{"s":"odoo:hr_resume_line.channel_id","p":"target","o":"slide.channel","f":0.95,"c":0.9} +{"s":"odoo:hr_resume_line.event_id","p":"target","o":"event.event","f":0.95,"c":0.9} {"s":"odoo:hr_version._compute_company_id","p":"reads_field","o":"odoo:hr_employee.company_id","f":0.85,"c":0.75} {"s":"odoo:hr_version._compute_dates","p":"reads_field","o":"odoo:hr_version.date_version","f":0.85,"c":0.75} {"s":"odoo:hr_version._compute_is_flexible","p":"reads_field","o":"odoo:resource_calendar.flexible_hours","f":0.85,"c":0.75} @@ -22827,16 +23019,19 @@ {"s":"odoo:ir_actions_server.activity_type_id","p":"target","o":"mail.activity.type","f":0.95,"c":0.9} {"s":"odoo:ir_actions_server.activity_user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:ir_actions_server.partner_ids","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:ir_actions_server.sms_template_id","p":"target","o":"sms.template","f":0.95,"c":0.9} {"s":"odoo:ir_actions_server.template_id","p":"target","o":"mail.template","f":0.95,"c":0.9} {"s":"odoo:l10n_ar_payment_register_withholding._compute_base_amount","p":"reads_field","o":"odoo:account_payment_register.amount","f":0.85,"c":0.75} {"s":"odoo:l10n_ar_payment_register_withholding.payment_register_id","p":"target","o":"account.payment.register","f":0.95,"c":0.9} {"s":"odoo:l10n_in_ewaybill._compute_is_process_through_irn","p":"reads_field","o":"odoo:account_move.l10n_in_edi_status","f":0.85,"c":0.75} {"s":"odoo:l10n_in_ewaybill.account_move_id","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:l10n_in_ewaybill.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:l10n_in_ewaybill.fiscal_position_id","p":"target","o":"account.fiscal.position","f":0.95,"c":0.9} {"s":"odoo:l10n_in_ewaybill.partner_bill_from_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:l10n_in_ewaybill.partner_bill_to_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:l10n_in_ewaybill.partner_ship_from_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:l10n_in_ewaybill.partner_ship_to_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:l10n_latam_check._clean_issuer_vat","p":"reads_field","o":"odoo:account_payment.partner_id","f":0.85,"c":0.75} {"s":"odoo:l10n_latam_check._compute_bank_id","p":"reads_field","o":"odoo:account_payment.partner_id","f":0.85,"c":0.75} {"s":"odoo:l10n_latam_check._compute_current_journal","p":"reads_field","o":"odoo:account_payment.state","f":0.85,"c":0.75} {"s":"odoo:l10n_latam_check._compute_issue_state","p":"reads_field","o":"odoo:account_move_line.amount_residual","f":0.85,"c":0.75} @@ -22848,6 +23043,8 @@ {"s":"odoo:l10n_latam_check.payment_id","p":"target","o":"account.payment","f":0.95,"c":0.9} {"s":"odoo:l10n_latam_payment_mass_transfer.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:l10n_latam_payment_mass_transfer.journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:l10n_latam_payment_register_check._clean_issuer_vat","p":"reads_field","o":"odoo:account_payment_method_line.code","f":0.85,"c":0.75} +{"s":"odoo:l10n_latam_payment_register_check._clean_issuer_vat","p":"reads_field","o":"odoo:account_payment_register.partner_id","f":0.85,"c":0.75} {"s":"odoo:l10n_latam_payment_register_check._compute_bank_id","p":"reads_field","o":"odoo:account_payment_method_line.code","f":0.85,"c":0.75} {"s":"odoo:l10n_latam_payment_register_check._compute_bank_id","p":"reads_field","o":"odoo:account_payment_register.partner_id","f":0.85,"c":0.75} {"s":"odoo:l10n_latam_payment_register_check._compute_issuer_vat","p":"reads_field","o":"odoo:account_payment_method_line.code","f":0.85,"c":0.75} @@ -22887,10 +23084,12 @@ {"s":"odoo:mail_activity_mixin._compute_activity_user_id","p":"reads_field","o":"odoo:mail_activity.user_id","f":0.85,"c":0.75} {"s":"odoo:mail_activity_mixin._compute_my_activity_date_deadline","p":"reads_field","o":"odoo:mail_activity.date_deadline","f":0.85,"c":0.75} {"s":"odoo:mail_activity_mixin._compute_my_activity_date_deadline","p":"reads_field","o":"odoo:mail_activity.user_id","f":0.85,"c":0.75} +{"s":"odoo:mail_activity_mixin.activity_calendar_event_id","p":"target","o":"calendar.event","f":0.95,"c":0.9} {"s":"odoo:mail_activity_mixin.activity_ids","p":"inverse_name","o":"res_id","f":0.95,"c":0.9} {"s":"odoo:mail_activity_mixin.activity_ids","p":"target","o":"mail.activity","f":0.95,"c":0.9} {"s":"odoo:mail_activity_mixin.activity_user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:mail_activity_plan._compute_has_user_on_demand","p":"reads_field","o":"odoo:mail_activity_plan_template.responsible_type","f":0.85,"c":0.75} +{"s":"odoo:mail_activity_plan.department_id","p":"target","o":"hr.department","f":0.95,"c":0.9} {"s":"odoo:mail_activity_plan.res_model_id","p":"target","o":"ir.model","f":0.95,"c":0.9} {"s":"odoo:mail_activity_plan.template_ids","p":"inverse_name","o":"plan_id","f":0.95,"c":0.9} {"s":"odoo:mail_activity_plan.template_ids","p":"target","o":"mail.activity.plan.template","f":0.95,"c":0.9} @@ -22914,13 +23113,24 @@ {"s":"odoo:mail_guest.presence_ids","p":"inverse_name","o":"guest_id","f":0.95,"c":0.9} {"s":"odoo:mail_guest.presence_ids","p":"target","o":"mail.presence","f":0.95,"c":0.9} {"s":"odoo:mail_mail.unrestricted_attachment_ids","p":"target","o":"ir.attachment","f":0.95,"c":0.9} +{"s":"odoo:mail_message._compute_rating_id","p":"reads_field","o":"odoo:rating_rating.consumed","f":0.85,"c":0.75} +{"s":"odoo:mail_message._compute_rating_value","p":"reads_field","o":"odoo:rating_rating.rating","f":0.85,"c":0.75} +{"s":"odoo:mail_message._compute_snailmail_error","p":"reads_field","o":"odoo:snailmail_letter.state","f":0.85,"c":0.75} +{"s":"odoo:mail_message.channel_id","p":"target","o":"discuss.channel","f":0.95,"c":0.9} +{"s":"odoo:mail_message.letter_ids","p":"inverse_name","o":"message_id","f":0.95,"c":0.9} +{"s":"odoo:mail_message.letter_ids","p":"target","o":"snailmail.letter","f":0.95,"c":0.9} {"s":"odoo:mail_message.linked_message_ids","p":"target","o":"mail.message","f":0.95,"c":0.9} +{"s":"odoo:mail_message.rating_id","p":"target","o":"rating.rating","f":0.95,"c":0.9} +{"s":"odoo:mail_message.rating_ids","p":"inverse_name","o":"message_id","f":0.95,"c":0.9} +{"s":"odoo:mail_message.rating_ids","p":"target","o":"rating.rating","f":0.95,"c":0.9} +{"s":"odoo:mail_notification.sms_id","p":"target","o":"sms.sms","f":0.95,"c":0.9} {"s":"odoo:mail_thread.message_partner_ids","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:mailing_mailing._compute_sms_has_iap_failure","p":"reads_field","o":"odoo:mailing_trace.failure_type","f":0.85,"c":0.75} {"s":"odoo:mailing_mailing.mailing_model_id","p":"target","o":"ir.model","f":0.95,"c":0.9} {"s":"odoo:mailing_mailing.mailing_trace_ids","p":"inverse_name","o":"mass_mailing_id","f":0.95,"c":0.9} {"s":"odoo:mailing_mailing.mailing_trace_ids","p":"target","o":"mailing.trace","f":0.95,"c":0.9} {"s":"odoo:mailing_mailing.medium_id","p":"target","o":"utm.medium","f":0.95,"c":0.9} +{"s":"odoo:mailing_trace.sms_id","p":"target","o":"sms.sms","f":0.95,"c":0.9} {"s":"odoo:mrp_bom._compute_possible_product_template_attribute_value_ids","p":"reads_field","o":"odoo:product_attribute.create_variant","f":0.85,"c":0.75} {"s":"odoo:mrp_bom._compute_possible_product_template_attribute_value_ids","p":"reads_field","o":"odoo:product_template_attribute_line.value_ids","f":0.85,"c":0.75} {"s":"odoo:mrp_bom._compute_possible_product_template_attribute_value_ids","p":"reads_field","o":"odoo:product_template_attribute_value.ptav_active","f":0.85,"c":0.75} @@ -22948,6 +23158,7 @@ {"s":"odoo:mrp_production._compute_product_uom_qty","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:mrp_production._compute_purchase_order_count","p":"reads_field","o":"odoo:stock_reference.purchase_ids","f":0.85,"c":0.75} {"s":"odoo:mrp_production._compute_reservation_state","p":"reads_field","o":"odoo:stock_move.state","f":0.85,"c":0.75} +{"s":"odoo:mrp_production._compute_sale_order_count","p":"reads_field","o":"odoo:sale_order_line.order_id","f":0.85,"c":0.75} {"s":"odoo:mrp_production._compute_sale_order_count","p":"reads_field","o":"odoo:stock_reference.sale_ids","f":0.85,"c":0.75} {"s":"odoo:mrp_production._compute_show_generate_bom","p":"reads_field","o":"odoo:stock_move.product_id","f":0.85,"c":0.75} {"s":"odoo:mrp_production._compute_show_lots","p":"reads_field","o":"odoo:product_product.tracking","f":0.85,"c":0.75} @@ -22966,6 +23177,7 @@ {"s":"odoo:mrp_production.move_byproduct_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} {"s":"odoo:mrp_production.move_finished_ids","p":"inverse_name","o":"production_id","f":0.95,"c":0.9} {"s":"odoo:mrp_production.move_finished_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} +{"s":"odoo:mrp_production.move_line_raw_ids","p":"target","o":"stock.move.line","f":0.95,"c":0.9} {"s":"odoo:mrp_production.move_raw_ids","p":"inverse_name","o":"raw_material_production_id","f":0.95,"c":0.9} {"s":"odoo:mrp_production.move_raw_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} {"s":"odoo:mrp_production.picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} @@ -22974,7 +23186,9 @@ {"s":"odoo:mrp_production.product_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:mrp_production.production_group_id","p":"target","o":"mrp.production.group","f":0.95,"c":0.9} {"s":"odoo:mrp_production.production_location_id","p":"target","o":"stock.location","f":0.95,"c":0.9} +{"s":"odoo:mrp_production.project_id","p":"target","o":"project.project","f":0.95,"c":0.9} {"s":"odoo:mrp_production.reference_ids","p":"target","o":"stock.reference","f":0.95,"c":0.9} +{"s":"odoo:mrp_production.sale_line_id","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:mrp_production.workorder_ids","p":"inverse_name","o":"production_id","f":0.95,"c":0.9} {"s":"odoo:mrp_production.workorder_ids","p":"target","o":"mrp.workorder","f":0.95,"c":0.9} {"s":"odoo:mrp_unbuild.bom_id","p":"target","o":"mrp.bom","f":0.95,"c":0.9} @@ -23026,6 +23240,7 @@ {"s":"odoo:onboarding_progress.progress_step_ids","p":"target","o":"onboarding.progress.step","f":0.95,"c":0.9} {"s":"odoo:payment_link_wizard.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:payment_provider.available_currency_ids","p":"target","o":"res.currency","f":0.95,"c":0.9} +{"s":"odoo:payment_provider.journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} {"s":"odoo:pos_config._compute_currency","p":"reads_field","o":"odoo:account_journal.currency_id","f":0.85,"c":0.75} {"s":"odoo:pos_config._compute_currency","p":"reads_field","o":"odoo:res_company.currency_id","f":0.85,"c":0.75} {"s":"odoo:pos_config._compute_current_session","p":"reads_field","o":"odoo:pos_session.state","f":0.85,"c":0.75} @@ -23038,6 +23253,7 @@ {"s":"odoo:pos_config.current_user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:pos_config.fast_payment_method_ids","p":"target","o":"pos.payment.method","f":0.95,"c":0.9} {"s":"odoo:pos_config.journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:pos_config.l10n_vn_pos_symbol","p":"target","o":"l10n_vn_edi_viettel.sinvoice.symbol","f":0.95,"c":0.9} {"s":"odoo:pos_config.minimal_employee_ids","p":"target","o":"hr.employee","f":0.95,"c":0.9} {"s":"odoo:pos_config.session_ids","p":"inverse_name","o":"config_id","f":0.95,"c":0.9} {"s":"odoo:pos_config.session_ids","p":"target","o":"pos.session","f":0.95,"c":0.9} @@ -23048,6 +23264,11 @@ {"s":"odoo:pos_order._compute_has_refundable_lines","p":"reads_field","o":"odoo:pos_order_line.refunded_qty","f":0.85,"c":0.75} {"s":"odoo:pos_order._compute_is_edited","p":"reads_field","o":"odoo:pos_order_line.is_edited","f":0.85,"c":0.75} {"s":"odoo:pos_order._compute_is_total_cost_computed","p":"reads_field","o":"odoo:pos_order_line.is_total_cost_computed","f":0.85,"c":0.75} +{"s":"odoo:pos_order._compute_l10n_es_edi_verifactu_qr_code","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.json_attachment_id","f":0.85,"c":0.75} +{"s":"odoo:pos_order._compute_l10n_es_edi_verifactu_state","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.state","f":0.85,"c":0.75} +{"s":"odoo:pos_order._compute_l10n_es_edi_verifactu_warning","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.errors","f":0.85,"c":0.75} +{"s":"odoo:pos_order._compute_l10n_es_edi_verifactu_warning","p":"reads_field","o":"odoo:l10n_es_edi_verifactu_document.state","f":0.85,"c":0.75} +{"s":"odoo:pos_order._compute_l10n_es_tbai_state","p":"reads_field","o":"odoo:l10n_es_edi_tbai_document.state","f":0.85,"c":0.75} {"s":"odoo:pos_order._compute_margin","p":"reads_field","o":"odoo:pos_order_line.margin","f":0.85,"c":0.75} {"s":"odoo:pos_order._compute_online_payment_method_id","p":"reads_field","o":"odoo:pos_config.payment_method_ids","f":0.85,"c":0.75} {"s":"odoo:pos_order._compute_online_payment_method_id","p":"reads_field","o":"odoo:pos_config.self_order_online_payment_method_id","f":0.85,"c":0.75} @@ -23059,8 +23280,12 @@ {"s":"odoo:pos_order.account_move","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:pos_order.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:pos_order.config_id","p":"target","o":"pos.config","f":0.95,"c":0.9} +{"s":"odoo:pos_order.l10n_es_edi_verifactu_document_ids","p":"inverse_name","o":"pos_order_id","f":0.95,"c":0.9} +{"s":"odoo:pos_order.l10n_es_edi_verifactu_document_ids","p":"target","o":"l10n_es_edi_verifactu.document","f":0.95,"c":0.9} +{"s":"odoo:pos_order.l10n_es_tbai_post_document_id","p":"target","o":"l10n_es_edi_tbai.document","f":0.95,"c":0.9} {"s":"odoo:pos_order.lines","p":"inverse_name","o":"order_id","f":0.95,"c":0.9} {"s":"odoo:pos_order.lines","p":"target","o":"pos.order.line","f":0.95,"c":0.9} +{"s":"odoo:pos_order.online_payment_method_id","p":"target","o":"pos.payment.method","f":0.95,"c":0.9} {"s":"odoo:pos_order.picking_ids","p":"inverse_name","o":"pos_order_id","f":0.95,"c":0.9} {"s":"odoo:pos_order.picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} {"s":"odoo:pos_order.pricelist_id","p":"target","o":"product.pricelist","f":0.95,"c":0.9} @@ -23085,6 +23310,7 @@ {"s":"odoo:product_category._compute_complete_name","p":"reads_field","o":"odoo:product_category.complete_name","f":0.85,"c":0.75} {"s":"odoo:product_category.parent_id","p":"target","o":"product.category","f":0.95,"c":0.9} {"s":"odoo:product_combo.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} +{"s":"odoo:product_document.form_field_ids","p":"target","o":"sale.pdf.form.field","f":0.95,"c":0.9} {"s":"odoo:product_feed.lang_id","p":"target","o":"res.lang","f":0.95,"c":0.9} {"s":"odoo:product_pricelist_item._compute_company_id","p":"reads_field","o":"odoo:product_pricelist.company_id","f":0.85,"c":0.75} {"s":"odoo:product_pricelist_item._compute_currency_id","p":"reads_field","o":"odoo:product_pricelist.currency_id","f":0.85,"c":0.75} @@ -23128,27 +23354,38 @@ {"s":"odoo:product_template.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:product_template.cost_currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} {"s":"odoo:product_template.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} +{"s":"odoo:product_template.l10n_id_product_code","p":"target","o":"l10n_id_efaktur_coretax.product.code","f":0.95,"c":0.9} {"s":"odoo:product_template.product_variant_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:product_template.product_variant_ids","p":"inverse_name","o":"product_tmpl_id","f":0.95,"c":0.9} {"s":"odoo:product_template.product_variant_ids","p":"target","o":"product.product","f":0.95,"c":0.9} +{"s":"odoo:product_template.project_id","p":"target","o":"project.project","f":0.95,"c":0.9} +{"s":"odoo:product_template.project_template_id","p":"target","o":"project.project","f":0.95,"c":0.9} +{"s":"odoo:product_template.task_template_id","p":"target","o":"project.task","f":0.95,"c":0.9} {"s":"odoo:product_template.uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:product_template.valid_product_template_attribute_line_ids","p":"target","o":"product.template.attribute.line","f":0.95,"c":0.9} {"s":"odoo:product_template_attribute_line.value_ids","p":"target","o":"product.attribute.value","f":0.95,"c":0.9} {"s":"odoo:product_value.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:project_milestone._compute_project_allow_milestones","p":"reads_field","o":"odoo:project_project.allow_milestones","f":0.85,"c":0.75} +{"s":"odoo:project_milestone._compute_quantity_percentage","p":"reads_field","o":"odoo:sale_order_line.product_uom_qty","f":0.85,"c":0.75} {"s":"odoo:project_milestone.project_id","p":"target","o":"project.project","f":0.95,"c":0.9} +{"s":"odoo:project_milestone.sale_line_id","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:project_milestone.task_ids","p":"inverse_name","o":"milestone_id","f":0.95,"c":0.9} {"s":"odoo:project_milestone.task_ids","p":"target","o":"project.task","f":0.95,"c":0.9} {"s":"odoo:project_project._compute_company_id","p":"reads_field","o":"odoo:account_analytic_account.company_id","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_company_id","p":"reads_field","o":"odoo:res_partner.company_id","f":0.85,"c":0.75} +{"s":"odoo:project_project._compute_has_any_so_to_invoice","p":"reads_field","o":"odoo:sale_order.invoice_status","f":0.85,"c":0.75} +{"s":"odoo:project_project._compute_has_any_so_with_nothing_to_invoice","p":"reads_field","o":"odoo:sale_order.invoice_status","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_is_milestone_exceeded","p":"reads_field","o":"odoo:project_milestone.deadline","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_is_milestone_exceeded","p":"reads_field","o":"odoo:project_milestone.is_reached","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_last_update_status","p":"reads_field","o":"odoo:project_update.status","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_milestone_reached_count","p":"reads_field","o":"odoo:project_milestone.is_reached","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_next_milestone_id","p":"reads_field","o":"odoo:project_milestone.deadline","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_next_milestone_id","p":"reads_field","o":"odoo:project_milestone.is_reached","f":0.85,"c":0.75} +{"s":"odoo:project_project._compute_partner_id","p":"reads_field","o":"odoo:project_sale_line_employee_map.sale_line_id","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_partner_id","p":"reads_field","o":"odoo:res_partner.company_id","f":0.85,"c":0.75} +{"s":"odoo:project_project._compute_remaining_hours","p":"reads_field","o":"odoo:account_analytic_line.unit_amount","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_resource_calendar_id","p":"reads_field","o":"odoo:res_company.resource_calendar_id","f":0.85,"c":0.75} +{"s":"odoo:project_project._compute_sale_order_count","p":"reads_field","o":"odoo:project_sale_line_employee_map.sale_line_id","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_sale_order_count","p":"reads_field","o":"odoo:project_task.sale_order_id","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_show_ratings","p":"reads_field","o":"odoo:project_task_type.rating_active","f":0.85,"c":0.75} {"s":"odoo:project_project._compute_timesheet_encode_uom_id","p":"reads_field","o":"odoo:res_company.timesheet_encode_uom_id","f":0.85,"c":0.75} @@ -23160,16 +23397,25 @@ {"s":"odoo:project_project.milestone_ids","p":"target","o":"project.milestone","f":0.95,"c":0.9} {"s":"odoo:project_project.next_milestone_id","p":"target","o":"project.milestone","f":0.95,"c":0.9} {"s":"odoo:project_project.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:project_project.reinvoiced_sale_order_id","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:project_project.resource_calendar_id","p":"target","o":"resource.calendar","f":0.95,"c":0.9} +{"s":"odoo:project_project.sale_line_employee_ids","p":"inverse_name","o":"project_id","f":0.95,"c":0.9} +{"s":"odoo:project_project.sale_line_employee_ids","p":"target","o":"project.sale.line.employee.map","f":0.95,"c":0.9} +{"s":"odoo:project_project.sale_line_id","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:project_project.stage_id","p":"target","o":"project.project.stage","f":0.95,"c":0.9} {"s":"odoo:project_project.task_ids","p":"inverse_name","o":"project_id","f":0.95,"c":0.9} {"s":"odoo:project_project.task_ids","p":"target","o":"project.task","f":0.95,"c":0.9} {"s":"odoo:project_project.tasks","p":"inverse_name","o":"project_id","f":0.95,"c":0.9} {"s":"odoo:project_project.tasks","p":"target","o":"project.task","f":0.95,"c":0.9} +{"s":"odoo:project_project.timesheet_encode_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} +{"s":"odoo:project_project.timesheet_ids","p":"inverse_name","o":"project_id","f":0.95,"c":0.9} +{"s":"odoo:project_project.timesheet_ids","p":"target","o":"account.analytic.line","f":0.95,"c":0.9} +{"s":"odoo:project_project.timesheet_product_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:project_project.type_ids","p":"target","o":"project.task.type","f":0.95,"c":0.9} {"s":"odoo:project_sale_line_employee_map._compute_cost","p":"reads_field","o":"odoo:hr_employee.hourly_cost","f":0.85,"c":0.75} {"s":"odoo:project_sale_line_employee_map._compute_currency_id","p":"reads_field","o":"odoo:sale_order_line.price_unit","f":0.85,"c":0.75} {"s":"odoo:project_sale_line_employee_map._compute_display_cost","p":"reads_field","o":"odoo:hr_employee.resource_calendar_id","f":0.85,"c":0.75} +{"s":"odoo:project_sale_line_employee_map._compute_existing_employee_ids","p":"reads_field","o":"odoo:project_sale_line_employee_map.employee_id","f":0.85,"c":0.75} {"s":"odoo:project_sale_line_employee_map._compute_price_unit","p":"reads_field","o":"odoo:sale_order_line.price_unit","f":0.85,"c":0.75} {"s":"odoo:project_sale_line_employee_map.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} {"s":"odoo:project_sale_line_employee_map.employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} @@ -23179,16 +23425,26 @@ {"s":"odoo:project_task._compute_allow_timesheets","p":"reads_field","o":"odoo:project_project.allow_timesheets","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_company_id","p":"reads_field","o":"odoo:project_project.company_id","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_company_id","p":"reads_field","o":"odoo:project_task.company_id","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_effective_hours","p":"reads_field","o":"odoo:account_analytic_line.unit_amount","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_has_template_ancestor","p":"reads_field","o":"odoo:project_task.has_template_ancestor","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_is_project_map_empty","p":"reads_field","o":"odoo:project_project.sale_line_employee_ids","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_partner_id","p":"reads_field","o":"odoo:project_project.reinvoiced_sale_order_id","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_partner_id","p":"reads_field","o":"odoo:project_task.partner_id","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_partner_phone","p":"reads_field","o":"odoo:res_partner.phone","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_project_id","p":"reads_field","o":"odoo:project_task.project_id","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_remaining_hours_so","p":"reads_field","o":"odoo:account_analytic_line.unit_amount","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_sale_line","p":"reads_field","o":"odoo:project_milestone.sale_line_id","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_sale_line","p":"reads_field","o":"odoo:project_project.sale_line_id","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_sale_line","p":"reads_field","o":"odoo:project_task.sale_line_id","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_sale_line","p":"reads_field","o":"odoo:sale_order_line.order_partner_id","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_sale_order_id","p":"reads_field","o":"odoo:project_project.reinvoiced_sale_order_id","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_sale_order_id","p":"reads_field","o":"odoo:project_task.partner_id","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_state","p":"reads_field","o":"odoo:project_task.state","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_subtask_allocated_hours","p":"reads_field","o":"odoo:project_task.allocated_hours","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_subtask_effective_hours","p":"reads_field","o":"odoo:project_task.effective_hours","f":0.85,"c":0.75} {"s":"odoo:project_task._compute_subtask_effective_hours","p":"reads_field","o":"odoo:project_task.subtask_effective_hours","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_task_to_invoice","p":"reads_field","o":"odoo:sale_order.invoice_status","f":0.85,"c":0.75} +{"s":"odoo:project_task._compute_task_to_invoice","p":"reads_field","o":"odoo:sale_order.order_line","f":0.85,"c":0.75} {"s":"odoo:project_task._onchange_partner_id","p":"reads_field","o":"odoo:project_project.reinvoiced_sale_order_id","f":0.85,"c":0.75} {"s":"odoo:project_task.child_ids","p":"inverse_name","o":"parent_id","f":0.95,"c":0.9} {"s":"odoo:project_task.child_ids","p":"target","o":"project.task","f":0.95,"c":0.9} @@ -23199,7 +23455,11 @@ {"s":"odoo:project_task.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:project_task.personal_stage_id","p":"target","o":"project.task.stage.personal","f":0.95,"c":0.9} {"s":"odoo:project_task.project_id","p":"target","o":"project.project","f":0.95,"c":0.9} +{"s":"odoo:project_task.sale_line_id","p":"target","o":"sale.order.line","f":0.95,"c":0.9} +{"s":"odoo:project_task.sale_order_id","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:project_task.stage_id","p":"target","o":"project.task.type","f":0.95,"c":0.9} +{"s":"odoo:project_task.timesheet_ids","p":"inverse_name","o":"task_id","f":0.95,"c":0.9} +{"s":"odoo:project_task.timesheet_ids","p":"target","o":"account.analytic.line","f":0.95,"c":0.9} {"s":"odoo:project_task.user_ids","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:project_task_type._compute_show_rating_active","p":"reads_field","o":"odoo:project_project.allow_billable","f":0.85,"c":0.75} {"s":"odoo:project_task_type.project_ids","p":"target","o":"project.project","f":0.95,"c":0.9} @@ -23210,11 +23470,16 @@ {"s":"odoo:purchase_order._amount_all","p":"reads_field","o":"odoo:purchase_order_line.price_subtotal","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_amount_total_cc","p":"reads_field","o":"odoo:purchase_order_line.price_subtotal","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_date_planned","p":"reads_field","o":"odoo:purchase_order_line.date_planned","f":0.85,"c":0.75} +{"s":"odoo:purchase_order._compute_effective_date","p":"reads_field","o":"odoo:stock_picking.date_done","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_invoice","p":"reads_field","o":"odoo:account_move_line.move_id","f":0.85,"c":0.75} +{"s":"odoo:purchase_order._compute_is_shipped","p":"reads_field","o":"odoo:stock_picking.state","f":0.85,"c":0.75} +{"s":"odoo:purchase_order._compute_picking_ids","p":"reads_field","o":"odoo:stock_move.picking_id","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_purchase_warning_text","p":"reads_field","o":"odoo:purchase_order_line.purchase_line_warn_msg","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_purchase_warning_text","p":"reads_field","o":"odoo:res_partner.name","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_purchase_warning_text","p":"reads_field","o":"odoo:res_partner.purchase_warn_msg","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_receipt_reminder_email","p":"reads_field","o":"odoo:res_partner.reminder_date_before_receipt","f":0.85,"c":0.75} +{"s":"odoo:purchase_order._compute_receipt_status","p":"reads_field","o":"odoo:stock_picking.state","f":0.85,"c":0.75} +{"s":"odoo:purchase_order._compute_repair_count","p":"reads_field","o":"odoo:stock_move.repair_id","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_sale_order_count","p":"reads_field","o":"odoo:purchase_order_line.sale_order_id","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_show_comparison","p":"reads_field","o":"odoo:purchase_order_line.product_id","f":0.85,"c":0.75} {"s":"odoo:purchase_order._compute_subcontracting_resupply_picking_count","p":"reads_field","o":"odoo:purchase_order_line.move_ids","f":0.85,"c":0.75} @@ -23233,6 +23498,9 @@ {"s":"odoo:purchase_order.order_line","p":"target","o":"purchase.order.line","f":0.95,"c":0.9} {"s":"odoo:purchase_order.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:purchase_order.payment_term_id","p":"target","o":"account.payment.term","f":0.95,"c":0.9} +{"s":"odoo:purchase_order.picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} +{"s":"odoo:purchase_order.picking_type_id","p":"target","o":"stock.picking.type","f":0.95,"c":0.9} +{"s":"odoo:purchase_order.reference_ids","p":"target","o":"stock.reference","f":0.95,"c":0.9} {"s":"odoo:purchase_order.tax_country_id","p":"target","o":"res.country","f":0.95,"c":0.9} {"s":"odoo:purchase_order.user_id","p":"target","o":"res.users","f":0.95,"c":0.9} {"s":"odoo:purchase_order_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.seller_ids","f":0.85,"c":0.75} @@ -23252,6 +23520,8 @@ {"s":"odoo:purchase_order_line.allowed_uom_ids","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:purchase_order_line.invoice_lines","p":"inverse_name","o":"purchase_line_id","f":0.95,"c":0.9} {"s":"odoo:purchase_order_line.invoice_lines","p":"target","o":"account.move.line","f":0.95,"c":0.9} +{"s":"odoo:purchase_order_line.move_ids","p":"inverse_name","o":"purchase_line_id","f":0.95,"c":0.9} +{"s":"odoo:purchase_order_line.move_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} {"s":"odoo:purchase_order_line.onchange_product_id","p":"reads_field","o":"odoo:purchase_order.partner_id","f":0.85,"c":0.75} {"s":"odoo:purchase_order_line.order_id","p":"target","o":"purchase.order","f":0.95,"c":0.9} {"s":"odoo:purchase_order_line.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} @@ -23262,10 +23532,87 @@ {"s":"odoo:rating_parent_mixin._compute_rating_percentage_satisfaction","p":"reads_field","o":"odoo:rating_rating.rating","f":0.85,"c":0.75} {"s":"odoo:rating_parent_mixin.rating_ids","p":"inverse_name","o":"parent_res_id","f":0.95,"c":0.9} {"s":"odoo:rating_parent_mixin.rating_ids","p":"target","o":"rating.rating","f":0.95,"c":0.9} +{"s":"odoo:repair_order._compute_purchase_count","p":"reads_field","o":"odoo:purchase_order_line.order_id","f":0.85,"c":0.75} {"s":"odoo:repair_order.move_ids","p":"inverse_name","o":"repair_id","f":0.95,"c":0.9} {"s":"odoo:repair_order.move_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} +{"s":"odoo:res_company.account_peppol_edi_user","p":"target","o":"account_edi_proxy_client.user","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_es_sii_certificate_id","p":"target","o":"certificate.certificate","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_es_tbai_certificate_id","p":"target","o":"certificate.certificate","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_hr_mer_purchase_journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_it_edi_proxy_user_id","p":"target","o":"account_edi_proxy_client.user","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_it_edi_purchase_journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_it_tax_representative_partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_my_edi_proxy_user_id","p":"target","o":"account_edi_proxy_client.user","f":0.95,"c":0.9} +{"s":"odoo:res_company.l10n_ro_edi_anaf_imported_inv_journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:res_company.nemhandel_edi_user","p":"target","o":"account_edi_proxy_client.user","f":0.95,"c":0.9} +{"s":"odoo:res_company.nemhandel_purchase_journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:res_company.peppol_parent_company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:res_company.peppol_purchase_journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:res_company.peppol_self_billing_reception_journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings._compute_account_on_checkout","p":"reads_field","o":"odoo:website.account_on_checkout","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_account_peppol_contact_email","p":"reads_field","o":"odoo:res_company.account_peppol_contact_email","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_auth_signup_uninvited","p":"reads_field","o":"odoo:website.auth_signup_uninvited","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_l10n_hu_edi_is_active","p":"reads_field","o":"odoo:res_company.l10n_hu_edi_server_mode","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_nemhandel_edi_user","p":"reads_field","o":"odoo:res_company.account_edi_proxy_client_ids","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_onboarding_payment_module","p":"reads_field","o":"odoo:res_company.currency_id","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_peppol_use_parent_company","p":"reads_field","o":"odoo:res_company.peppol_parent_company_id","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_use_root_proxy_user","p":"reads_field","o":"odoo:account_edi_proxy_client_user.active","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings._compute_use_root_proxy_user","p":"reads_field","o":"odoo:res_company.account_edi_proxy_client_ids","f":0.85,"c":0.75} +{"s":"odoo:res_config_settings.active_provider_id","p":"target","o":"payment.provider","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.l10n_pl_edi_certificate","p":"target","o":"certificate.certificate","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.l10n_vn_edi_default_symbol","p":"target","o":"l10n_vn_edi_viettel.sinvoice.symbol","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.mass_mailing_mail_server_id","p":"target","o":"ir.mail_server","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_allowed_pricelist_ids","p":"target","o":"product.pricelist","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_available_pricelist_ids","p":"target","o":"product.pricelist","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_default_fiscal_position_id","p":"target","o":"account.fiscal.position","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_discount_product_id","p":"target","o":"product.product","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_fiscal_position_ids","p":"target","o":"account.fiscal.position","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_iface_available_categ_ids","p":"target","o":"pos.category","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_pricelist_id","p":"target","o":"product.pricelist","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_selectable_categ_ids","p":"target","o":"pos.category","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.pos_tip_product_id","p":"target","o":"product.product","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.predictive_lead_scoring_fields","p":"target","o":"crm.lead.scoring.frequency.field","f":0.95,"c":0.9} +{"s":"odoo:res_config_settings.website_id","p":"target","o":"website","f":0.95,"c":0.9} +{"s":"odoo:res_partner._compute_company_registry_placeholder","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} +{"s":"odoo:res_partner._compute_implemented_partner_count","p":"reads_field","o":"odoo:res_partner.active","f":0.85,"c":0.75} +{"s":"odoo:res_partner._compute_implemented_partner_count","p":"reads_field","o":"odoo:res_partner.is_published","f":0.85,"c":0.75} +{"s":"odoo:res_partner._compute_partner_weight","p":"reads_field","o":"odoo:res_partner_grade.partner_weight","f":0.85,"c":0.75} +{"s":"odoo:res_partner.city_id","p":"target","o":"res.city","f":0.95,"c":0.9} +{"s":"odoo:res_partner.grade_id","p":"target","o":"res.partner.grade","f":0.95,"c":0.9} +{"s":"odoo:res_partner.implemented_partner_ids","p":"inverse_name","o":"assigned_partner_id","f":0.95,"c":0.9} +{"s":"odoo:res_partner.implemented_partner_ids","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:res_partner.l10n_in_pan_entity_id","p":"target","o":"l10n_in.pan.entity","f":0.95,"c":0.9} +{"s":"odoo:res_partner.l10n_latam_identification_type_id","p":"target","o":"l10n_latam.identification.type","f":0.95,"c":0.9} +{"s":"odoo:res_partner.l10n_pe_district","p":"target","o":"l10n_pe.res.city.district","f":0.95,"c":0.9} {"s":"odoo:res_partner.l10n_tr_nilvera_customer_alias_id","p":"target","o":"l10n_tr.nilvera.alias","f":0.95,"c":0.9} +{"s":"odoo:res_partner.property_product_pricelist","p":"target","o":"product.pricelist","f":0.95,"c":0.9} +{"s":"odoo:res_partner.ref_company_ids","p":"inverse_name","o":"partner_id","f":0.95,"c":0.9} +{"s":"odoo:res_partner.ref_company_ids","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:res_partner_bank._compute_salary_amount","p":"reads_field","o":"odoo:hr_employee.salary_distribution","f":0.85,"c":0.75} {"s":"odoo:res_partner_bank.duplicate_bank_partner_ids","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:res_partner_bank.employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} +{"s":"odoo:res_users._compute_crm_team_ids","p":"reads_field","o":"odoo:crm_team_member.active","f":0.85,"c":0.75} +{"s":"odoo:res_users._compute_im_status","p":"reads_field","o":"odoo:mail_presence.status","f":0.85,"c":0.75} +{"s":"odoo:res_users._compute_karma","p":"reads_field","o":"odoo:gamification_karma_tracking.new_value","f":0.85,"c":0.75} +{"s":"odoo:res_users._compute_livechat_ongoing_session_count","p":"reads_field","o":"odoo:discuss_channel.livechat_end_dt","f":0.85,"c":0.75} +{"s":"odoo:res_users._compute_sale_team_id","p":"reads_field","o":"odoo:crm_team_member.active","f":0.85,"c":0.75} +{"s":"odoo:res_users._compute_sale_team_id","p":"reads_field","o":"odoo:crm_team_member.create_date","f":0.85,"c":0.75} +{"s":"odoo:res_users._compute_sale_team_id","p":"reads_field","o":"odoo:crm_team_member.crm_team_id","f":0.85,"c":0.75} +{"s":"odoo:res_users.crm_team_ids","p":"target","o":"crm.team","f":0.95,"c":0.9} +{"s":"odoo:res_users.crm_team_member_ids","p":"inverse_name","o":"user_id","f":0.95,"c":0.9} +{"s":"odoo:res_users.crm_team_member_ids","p":"target","o":"crm.team.member","f":0.95,"c":0.9} +{"s":"odoo:res_users.employee_id","p":"target","o":"hr.employee","f":0.95,"c":0.9} +{"s":"odoo:res_users.karma_tracking_ids","p":"inverse_name","o":"user_id","f":0.95,"c":0.9} +{"s":"odoo:res_users.karma_tracking_ids","p":"target","o":"gamification.karma.tracking","f":0.95,"c":0.9} +{"s":"odoo:res_users.livechat_channel_ids","p":"target","o":"im_livechat.channel","f":0.95,"c":0.9} +{"s":"odoo:res_users.livechat_expertise_ids","p":"target","o":"im_livechat.expertise","f":0.95,"c":0.9} +{"s":"odoo:res_users.livechat_lang_ids","p":"target","o":"res.lang","f":0.95,"c":0.9} +{"s":"odoo:res_users.outgoing_mail_server_id","p":"target","o":"ir.mail_server","f":0.95,"c":0.9} +{"s":"odoo:res_users.presence_ids","p":"inverse_name","o":"user_id","f":0.95,"c":0.9} +{"s":"odoo:res_users.presence_ids","p":"target","o":"mail.presence","f":0.95,"c":0.9} +{"s":"odoo:res_users.sale_team_id","p":"target","o":"crm.team","f":0.95,"c":0.9} +{"s":"odoo:resource_calendar._compute_full_time_required_hours","p":"reads_field","o":"odoo:resource_calendar.hours_per_week","f":0.85,"c":0.75} {"s":"odoo:resource_calendar._compute_hours_per_day","p":"reads_field","o":"odoo:resource_calendar_attendance.hour_from","f":0.85,"c":0.75} {"s":"odoo:resource_calendar._compute_hours_per_day","p":"reads_field","o":"odoo:resource_calendar_attendance.hour_to","f":0.85,"c":0.75} {"s":"odoo:resource_calendar._compute_hours_per_week","p":"reads_field","o":"odoo:resource_calendar_attendance.hour_from","f":0.85,"c":0.75} @@ -23296,16 +23643,22 @@ {"s":"odoo:sale_order._compute_amounts","p":"reads_field","o":"odoo:sale_order_line.price_subtotal","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_cart_info","p":"reads_field","o":"odoo:sale_order_line.product_id","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_cart_info","p":"reads_field","o":"odoo:sale_order_line.product_uom_qty","f":0.85,"c":0.75} +{"s":"odoo:sale_order._compute_delivery_status","p":"reads_field","o":"odoo:stock_picking.state","f":0.85,"c":0.75} +{"s":"odoo:sale_order._compute_effective_date","p":"reads_field","o":"odoo:stock_picking.date_done","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_expected_date","p":"reads_field","o":"odoo:sale_order_line.customer_lead","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_has_archived_products","p":"reads_field","o":"odoo:sale_order_line.product_id","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_invoice_status","p":"reads_field","o":"odoo:sale_order_line.invoice_status","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_is_pdf_quote_builder_available","p":"reads_field","o":"odoo:sale_order_line.available_product_document_ids","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_l10n_it_edi_doi_id","p":"reads_field","o":"odoo:res_partner.commercial_partner_id","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_l10n_it_edi_doi_not_yet_invoiced","p":"reads_field","o":"odoo:sale_order_line.qty_invoiced_posted","f":0.85,"c":0.75} +{"s":"odoo:sale_order._compute_l10n_it_edi_doi_warning","p":"reads_field","o":"odoo:l10n_it_edi_doi_declaration_of_intent.remaining","f":0.85,"c":0.75} +{"s":"odoo:sale_order._compute_late_availability","p":"reads_field","o":"odoo:stock_picking.products_availability_state","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_margin","p":"reads_field","o":"odoo:sale_order_line.margin","f":0.85,"c":0.75} +{"s":"odoo:sale_order._compute_mrp_production_ids","p":"reads_field","o":"odoo:stock_reference.production_ids","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_partnership","p":"reads_field","o":"odoo:sale_order_line.product_id","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_project_ids","p":"reads_field","o":"odoo:sale_order_line.product_id","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_project_ids","p":"reads_field","o":"odoo:sale_order_line.project_id","f":0.85,"c":0.75} +{"s":"odoo:sale_order._compute_purchase_order_count","p":"reads_field","o":"odoo:purchase_order_line.order_id","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_sale_warning_text","p":"reads_field","o":"odoo:res_partner.name","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_sale_warning_text","p":"reads_field","o":"odoo:res_partner.sale_warn_msg","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_sale_warning_text","p":"reads_field","o":"odoo:sale_order_line.sale_line_warn_msg","f":0.85,"c":0.75} @@ -23318,27 +23671,39 @@ {"s":"odoo:sale_order._compute_timesheet_total_duration","p":"reads_field","o":"odoo:sale_order_line.timesheet_ids","f":0.85,"c":0.75} {"s":"odoo:sale_order._compute_visible_project","p":"reads_field","o":"odoo:product_product.service_tracking","f":0.85,"c":0.75} {"s":"odoo:sale_order._get_invoiced","p":"reads_field","o":"odoo:sale_order_line.invoice_lines","f":0.85,"c":0.75} +{"s":"odoo:sale_order.assigned_grade_id","p":"target","o":"res.partner.grade","f":0.95,"c":0.9} {"s":"odoo:sale_order.authorized_transaction_ids","p":"target","o":"payment.transaction","f":0.95,"c":0.9} +{"s":"odoo:sale_order.available_quotation_document_ids","p":"target","o":"quotation.document","f":0.95,"c":0.9} {"s":"odoo:sale_order.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:sale_order.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} {"s":"odoo:sale_order.duplicated_order_ids","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:sale_order.fiscal_position_id","p":"target","o":"account.fiscal.position","f":0.95,"c":0.9} {"s":"odoo:sale_order.invoice_ids","p":"target","o":"account.move","f":0.95,"c":0.9} {"s":"odoo:sale_order.journal_id","p":"target","o":"account.journal","f":0.95,"c":0.9} +{"s":"odoo:sale_order.l10n_it_edi_doi_id","p":"target","o":"l10n_it_edi_doi.declaration_of_intent","f":0.95,"c":0.9} +{"s":"odoo:sale_order.mrp_production_ids","p":"target","o":"mrp.production","f":0.95,"c":0.9} {"s":"odoo:sale_order.order_line","p":"inverse_name","o":"order_id","f":0.95,"c":0.9} {"s":"odoo:sale_order.order_line","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:sale_order.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:sale_order.partner_invoice_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:sale_order.partner_shipping_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:sale_order.payment_term_id","p":"target","o":"account.payment.term","f":0.95,"c":0.9} +{"s":"odoo:sale_order.picking_ids","p":"inverse_name","o":"sale_id","f":0.95,"c":0.9} +{"s":"odoo:sale_order.picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} {"s":"odoo:sale_order.pos_order_line_ids","p":"inverse_name","o":"sale_order_origin_id","f":0.95,"c":0.9} {"s":"odoo:sale_order.pos_order_line_ids","p":"target","o":"pos.order.line","f":0.95,"c":0.9} {"s":"odoo:sale_order.preferred_payment_method_line_id","p":"target","o":"account.payment.method.line","f":0.95,"c":0.9} {"s":"odoo:sale_order.pricelist_id","p":"target","o":"product.pricelist","f":0.95,"c":0.9} +{"s":"odoo:sale_order.project_ids","p":"target","o":"project.project","f":0.95,"c":0.9} +{"s":"odoo:sale_order.quotation_document_ids","p":"target","o":"quotation.document","f":0.95,"c":0.9} +{"s":"odoo:sale_order.stock_reference_ids","p":"target","o":"stock.reference","f":0.95,"c":0.9} +{"s":"odoo:sale_order.tasks_ids","p":"target","o":"project.task","f":0.95,"c":0.9} {"s":"odoo:sale_order.tax_country_id","p":"target","o":"res.country","f":0.95,"c":0.9} {"s":"odoo:sale_order.team_id","p":"target","o":"crm.team","f":0.95,"c":0.9} {"s":"odoo:sale_order.transaction_ids","p":"target","o":"payment.transaction","f":0.95,"c":0.9} {"s":"odoo:sale_order.user_id","p":"target","o":"res.users","f":0.95,"c":0.9} +{"s":"odoo:sale_order.warehouse_id","p":"target","o":"stock.warehouse","f":0.95,"c":0.9} +{"s":"odoo:sale_order.website_order_line","p":"target","o":"sale.order.line","f":0.95,"c":0.9} {"s":"odoo:sale_order_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_ids","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_amount_invoiced","p":"reads_field","o":"odoo:account_move.state","f":0.85,"c":0.75} @@ -23346,11 +23711,17 @@ {"s":"odoo:sale_order_line._compute_analytic_distribution","p":"reads_field","o":"odoo:sale_order.partner_id","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_analytic_distribution","p":"reads_field","o":"odoo:sale_order.project_id","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_is_mto","p":"reads_field","o":"odoo:product_product.route_ids","f":0.85,"c":0.75} +{"s":"odoo:sale_order_line._compute_is_repair_line","p":"reads_field","o":"odoo:stock_move.repair_id","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_is_service","p":"reads_field","o":"odoo:product_product.type","f":0.85,"c":0.75} +{"s":"odoo:sale_order_line._compute_name_short","p":"reads_field","o":"odoo:event_event_ticket.display_name","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_name_short","p":"reads_field","o":"odoo:product_product.display_name","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_product_updatable","p":"reads_field","o":"odoo:product_product.type","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_purchase_price","p":"reads_field","o":"odoo:account_analytic_line.amount","f":0.85,"c":0.75} +{"s":"odoo:sale_order_line._compute_purchase_price","p":"reads_field","o":"odoo:stock_move.value","f":0.85,"c":0.75} +{"s":"odoo:sale_order_line._compute_purchase_price","p":"reads_field","o":"odoo:stock_picking.state","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_qty_at_date","p":"reads_field","o":"odoo:sale_order.commitment_date","f":0.85,"c":0.75} +{"s":"odoo:sale_order_line._compute_qty_at_date","p":"reads_field","o":"odoo:stock_move.forecast_availability","f":0.85,"c":0.75} +{"s":"odoo:sale_order_line._compute_qty_at_date","p":"reads_field","o":"odoo:stock_move.forecast_expected_date","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_qty_delivered","p":"reads_field","o":"odoo:account_analytic_line.product_uom_id","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_qty_delivered","p":"reads_field","o":"odoo:account_analytic_line.so_line","f":0.85,"c":0.75} {"s":"odoo:sale_order_line._compute_qty_delivered","p":"reads_field","o":"odoo:account_analytic_line.unit_amount","f":0.85,"c":0.75} @@ -23367,16 +23738,28 @@ {"s":"odoo:sale_order_line.allowed_uom_ids","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.analytic_line_ids","p":"inverse_name","o":"so_line","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.analytic_line_ids","p":"target","o":"account.analytic.line","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.available_product_document_ids","p":"target","o":"product.document","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.event_booth_pending_ids","p":"target","o":"event.booth","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.event_id","p":"target","o":"event.event","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.event_slot_id","p":"target","o":"event.slot","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.event_ticket_id","p":"target","o":"event.event.ticket","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.invoice_lines","p":"target","o":"account.move.line","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.move_ids","p":"inverse_name","o":"sale_line_id","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.move_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.order_id","p":"target","o":"sale.order","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.pricelist_item_id","p":"target","o":"product.pricelist.item","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.product_custom_attribute_value_ids","p":"inverse_name","o":"sale_order_line_id","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.product_custom_attribute_value_ids","p":"target","o":"product.attribute.custom.value","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.product_document_ids","p":"target","o":"product.document","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.product_no_variant_attribute_value_ids","p":"target","o":"product.template.attribute.value","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.product_template_id","p":"target","o":"product.template","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.product_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.project_id","p":"target","o":"project.project","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.reached_milestones_ids","p":"inverse_name","o":"sale_line_id","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.reached_milestones_ids","p":"target","o":"project.milestone","f":0.95,"c":0.9} {"s":"odoo:sale_order_line.tax_ids","p":"target","o":"account.tax","f":0.95,"c":0.9} +{"s":"odoo:sale_order_line.warehouse_id","p":"target","o":"stock.warehouse","f":0.95,"c":0.9} {"s":"odoo:sale_order_template_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:sale_order_template_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_ids","f":0.85,"c":0.75} {"s":"odoo:sale_order_template_line.allowed_uom_ids","p":"target","o":"uom.uom","f":0.95,"c":0.9} @@ -23410,6 +23793,11 @@ {"s":"odoo:slide_slide._compute_can_publish","p":"reads_field","o":"odoo:slide_channel.can_publish","f":0.85,"c":0.75} {"s":"odoo:slide_slide._compute_category_completed","p":"reads_field","o":"odoo:slide_slide.slide_ids","f":0.85,"c":0.75} {"s":"odoo:slide_slide._compute_category_completed","p":"reads_field","o":"odoo:slide_slide.user_has_completed","f":0.85,"c":0.75} +{"s":"odoo:slide_slide._compute_category_completion_time","p":"reads_field","o":"odoo:slide_slide.active","f":0.85,"c":0.75} +{"s":"odoo:slide_slide._compute_category_completion_time","p":"reads_field","o":"odoo:slide_slide.completion_time","f":0.85,"c":0.75} +{"s":"odoo:slide_slide._compute_category_completion_time","p":"reads_field","o":"odoo:slide_slide.is_category","f":0.85,"c":0.75} +{"s":"odoo:slide_slide._compute_category_completion_time","p":"reads_field","o":"odoo:slide_slide.is_published","f":0.85,"c":0.75} +{"s":"odoo:slide_slide._compute_category_completion_time","p":"reads_field","o":"odoo:slide_slide.sequence","f":0.85,"c":0.75} {"s":"odoo:slide_slide._compute_category_id","p":"reads_field","o":"odoo:slide_slide.is_category","f":0.85,"c":0.75} {"s":"odoo:slide_slide._compute_category_id","p":"reads_field","o":"odoo:slide_slide.sequence","f":0.85,"c":0.75} {"s":"odoo:slide_slide._compute_category_id","p":"reads_field","o":"odoo:slide_slide.slide_ids","f":0.85,"c":0.75} @@ -23437,6 +23825,7 @@ {"s":"odoo:stock_landed_cost._compute_total_amount","p":"reads_field","o":"odoo:stock_landed_cost_lines.price_unit","f":0.85,"c":0.75} {"s":"odoo:stock_landed_cost.cost_lines","p":"inverse_name","o":"cost_id","f":0.95,"c":0.9} {"s":"odoo:stock_landed_cost.cost_lines","p":"target","o":"stock.landed.cost.lines","f":0.95,"c":0.9} +{"s":"odoo:stock_landed_cost.mrp_production_ids","p":"target","o":"mrp.production","f":0.95,"c":0.9} {"s":"odoo:stock_landed_cost.picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} {"s":"odoo:stock_location._compute_child_internal_location_ids","p":"reads_field","o":"odoo:stock_location.child_internal_location_ids","f":0.85,"c":0.75} {"s":"odoo:stock_location._compute_child_internal_location_ids","p":"reads_field","o":"odoo:stock_location.usage","f":0.85,"c":0.75} @@ -23461,43 +23850,67 @@ {"s":"odoo:stock_lot._compute_single_location","p":"reads_field","o":"odoo:stock_quant.quantity","f":0.85,"c":0.75} {"s":"odoo:stock_lot._compute_value","p":"reads_field","o":"odoo:product_product.lot_valuated","f":0.85,"c":0.75} {"s":"odoo:stock_lot._compute_value","p":"reads_field","o":"odoo:product_template.lot_valuated","f":0.85,"c":0.75} +{"s":"odoo:stock_lot._compute_value","p":"reads_field","o":"odoo:stock_move.value","f":0.85,"c":0.75} {"s":"odoo:stock_lot._product_qty","p":"reads_field","o":"odoo:stock_quant.quantity","f":0.85,"c":0.75} +{"s":"odoo:stock_lot.company_currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} {"s":"odoo:stock_lot.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} {"s":"odoo:stock_lot.location_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_lot.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:stock_lot.quant_ids","p":"inverse_name","o":"lot_id","f":0.95,"c":0.9} {"s":"odoo:stock_lot.quant_ids","p":"target","o":"stock.quant","f":0.95,"c":0.9} +{"s":"odoo:stock_lot.repair_line_ids","p":"target","o":"repair.order","f":0.95,"c":0.9} {"s":"odoo:stock_move._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.bom_ids","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.seller_ids","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_ids","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_delay_alert_date","p":"reads_field","o":"odoo:stock_move.date","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_delay_alert_date","p":"reads_field","o":"odoo:stock_move.state","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_description_picking","p":"reads_field","o":"odoo:purchase_order_line.name","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_display_assign_serial","p":"reads_field","o":"odoo:stock_picking_type.use_create_components_lots","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_display_assign_serial","p":"reads_field","o":"odoo:stock_picking_type.use_create_lots","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_display_assign_serial","p":"reads_field","o":"odoo:stock_picking_type.use_existing_lots","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_has_lines_without_result_package","p":"reads_field","o":"odoo:stock_move_line.result_package_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_is_initial_demand_editable","p":"reads_field","o":"odoo:stock_picking.is_locked","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_is_locked","p":"reads_field","o":"odoo:mrp_production.is_locked","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_is_locked","p":"reads_field","o":"odoo:stock_picking.is_locked","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_location_dest_id","p":"reads_field","o":"odoo:mrp_production.location_dest_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_location_dest_id","p":"reads_field","o":"odoo:repair_order.location_dest_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_location_dest_id","p":"reads_field","o":"odoo:stock_picking.location_dest_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_location_id","p":"reads_field","o":"odoo:mrp_production.location_src_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_location_id","p":"reads_field","o":"odoo:repair_order.location_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_location_id","p":"reads_field","o":"odoo:stock_picking.location_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_lot_ids","p":"reads_field","o":"odoo:stock_move_line.lot_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_lot_ids","p":"reads_field","o":"odoo:stock_move_line.quantity","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_package_ids","p":"reads_field","o":"odoo:stock_move_line.result_package_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_package_ids","p":"reads_field","o":"odoo:stock_package.outermost_package_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_packaging_uom_id","p":"reads_field","o":"odoo:purchase_order_line.product_uom_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_partner_id","p":"reads_field","o":"odoo:stock_picking.partner_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_picked","p":"reads_field","o":"odoo:stock_move_line.picked","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_picking_type_id","p":"reads_field","o":"odoo:mrp_production.picking_type_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_picking_type_id","p":"reads_field","o":"odoo:repair_order.picking_type_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_picking_type_id","p":"reads_field","o":"odoo:stock_picking.picking_type_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_priority","p":"reads_field","o":"odoo:mrp_production.priority","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_priority","p":"reads_field","o":"odoo:stock_picking.priority","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_quantity","p":"reads_field","o":"odoo:stock_move_line.product_uom_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_quantity","p":"reads_field","o":"odoo:stock_move_line.quantity","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_reference","p":"reads_field","o":"odoo:mrp_production.name","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_reference","p":"reads_field","o":"odoo:mrp_unbuild.name","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_reference","p":"reads_field","o":"odoo:repair_order.name","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_reference","p":"reads_field","o":"odoo:stock_picking.name","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_reference","p":"reads_field","o":"odoo:stock_scrap.name","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_remaining_qty","p":"reads_field","o":"odoo:stock_move.value","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_should_consume_qty","p":"reads_field","o":"odoo:mrp_production.qty_producing","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_show_info","p":"reads_field","o":"odoo:product_product.type","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_show_info","p":"reads_field","o":"odoo:stock_picking_type.use_create_lots","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_show_info","p":"reads_field","o":"odoo:stock_picking_type.use_existing_lots","f":0.85,"c":0.75} {"s":"odoo:stock_move._compute_standard_price","p":"reads_field","o":"odoo:product_product.standard_price","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_unit_factor","p":"reads_field","o":"odoo:mrp_production.product_qty","f":0.85,"c":0.75} +{"s":"odoo:stock_move._compute_unit_factor","p":"reads_field","o":"odoo:mrp_production.qty_produced","f":0.85,"c":0.75} {"s":"odoo:stock_move._onchange_product_uom_qty","p":"reads_field","o":"odoo:stock_move_line.product_uom_id","f":0.85,"c":0.75} {"s":"odoo:stock_move._onchange_product_uom_qty","p":"reads_field","o":"odoo:stock_move_line.quantity","f":0.85,"c":0.75} {"s":"odoo:stock_move._onchange_quantity","p":"reads_field","o":"odoo:stock_move_line.picked","f":0.85,"c":0.75} {"s":"odoo:stock_move.allowed_uom_ids","p":"target","o":"uom.uom","f":0.95,"c":0.9} +{"s":"odoo:stock_move.ewaybill_tax_ids","p":"target","o":"account.tax","f":0.95,"c":0.9} {"s":"odoo:stock_move.location_dest_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_move.location_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_move.lot_ids","p":"target","o":"stock.lot","f":0.95,"c":0.9} @@ -23511,12 +23924,21 @@ {"s":"odoo:stock_move.picking_type_id","p":"target","o":"stock.picking.type","f":0.95,"c":0.9} {"s":"odoo:stock_move.product_id","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:stock_move.product_uom","p":"target","o":"uom.uom","f":0.95,"c":0.9} +{"s":"odoo:stock_move.production_id","p":"target","o":"mrp.production","f":0.95,"c":0.9} +{"s":"odoo:stock_move.purchase_line_id","p":"target","o":"purchase.order.line","f":0.95,"c":0.9} +{"s":"odoo:stock_move.raw_material_production_id","p":"target","o":"mrp.production","f":0.95,"c":0.9} +{"s":"odoo:stock_move.repair_id","p":"target","o":"repair.order","f":0.95,"c":0.9} {"s":"odoo:stock_move.scrap_id","p":"target","o":"stock.scrap","f":0.95,"c":0.9} +{"s":"odoo:stock_move.unbuild_id","p":"target","o":"mrp.unbuild","f":0.95,"c":0.9} {"s":"odoo:stock_move_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.seller_ids","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_ids","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_expiration_date","p":"reads_field","o":"odoo:stock_lot.expiration_date","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_expiration_date","p":"reads_field","o":"odoo:stock_picking.scheduled_date","f":0.85,"c":0.75} +{"s":"odoo:stock_move_line._compute_location_id","p":"reads_field","o":"odoo:stock_move.location_dest_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move_line._compute_location_id","p":"reads_field","o":"odoo:stock_move.location_id","f":0.85,"c":0.75} +{"s":"odoo:stock_move_line._compute_lots_visible","p":"reads_field","o":"odoo:product_product.tracking","f":0.85,"c":0.75} +{"s":"odoo:stock_move_line._compute_lots_visible","p":"reads_field","o":"odoo:stock_picking.picking_type_id","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_product_uom_id","p":"reads_field","o":"odoo:product_product.uom_id","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_product_uom_id","p":"reads_field","o":"odoo:stock_move.product_uom","f":0.85,"c":0.75} {"s":"odoo:stock_move_line._compute_removal_date","p":"reads_field","o":"odoo:stock_lot.removal_date","f":0.85,"c":0.75} @@ -23562,6 +23984,10 @@ {"s":"odoo:stock_package.quant_ids","p":"inverse_name","o":"package_id","f":0.95,"c":0.9} {"s":"odoo:stock_package.quant_ids","p":"target","o":"stock.quant","f":0.95,"c":0.9} {"s":"odoo:stock_picking._cal_weight","p":"reads_field","o":"odoo:stock_move.weight","f":0.85,"c":0.75} +{"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:delivery_carrier.excluded_tag_ids","f":0.85,"c":0.75} +{"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:delivery_carrier.max_volume","f":0.85,"c":0.75} +{"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:delivery_carrier.max_weight","f":0.85,"c":0.75} +{"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:delivery_carrier.must_have_tag_ids","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:product_product.product_tag_ids","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:product_product.volume","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_allowed_carrier_ids","p":"reads_field","o":"odoo:product_product.weight","f":0.85,"c":0.75} @@ -23571,8 +23997,10 @@ {"s":"odoo:stock_picking._compute_date_deadline","p":"reads_field","o":"odoo:stock_move.date_deadline","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_delay_alert_date","p":"reads_field","o":"odoo:stock_move.delay_alert_date","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_l10n_ar_delivery_guide_flags","p":"reads_field","o":"odoo:stock_picking_type.l10n_ar_document_type_id","f":0.85,"c":0.75} +{"s":"odoo:stock_picking._compute_l10n_in_ewaybill_details","p":"reads_field","o":"odoo:l10n_in_ewaybill.state","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_l10n_ro_edi_stock_current_document_state","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_l10n_ro_edi_stock_current_document_uit","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} +{"s":"odoo:stock_picking._compute_l10n_ro_edi_stock_default_location_type","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_l10n_ro_edi_stock_enable","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_picking_warning_text","p":"reads_field","o":"odoo:res_partner.name","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_production_ids","p":"reads_field","o":"odoo:stock_reference.production_ids","f":0.85,"c":0.75} @@ -23595,7 +24023,11 @@ {"s":"odoo:stock_picking._compute_state","p":"reads_field","o":"odoo:stock_move.state","f":0.85,"c":0.75} {"s":"odoo:stock_picking._compute_subcontracting_source_purchase_count","p":"reads_field","o":"odoo:stock_move.raw_material_production_id","f":0.85,"c":0.75} {"s":"odoo:stock_picking._l10n_ro_edi_stock_reset_variable_selection_fields","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} +{"s":"odoo:stock_picking.allowed_carrier_ids","p":"target","o":"delivery.carrier","f":0.95,"c":0.9} +{"s":"odoo:stock_picking.carrier_id","p":"target","o":"delivery.carrier","f":0.95,"c":0.9} {"s":"odoo:stock_picking.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:stock_picking.l10n_in_ewaybill_ids","p":"inverse_name","o":"picking_id","f":0.95,"c":0.9} +{"s":"odoo:stock_picking.l10n_in_ewaybill_ids","p":"target","o":"l10n.in.ewaybill","f":0.95,"c":0.9} {"s":"odoo:stock_picking.location_dest_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_picking.location_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_picking.move_ids","p":"inverse_name","o":"picking_id","f":0.95,"c":0.9} @@ -23604,11 +24036,15 @@ {"s":"odoo:stock_picking.move_line_ids","p":"target","o":"stock.move.line","f":0.95,"c":0.9} {"s":"odoo:stock_picking.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:stock_picking.picking_type_id","p":"target","o":"stock.picking.type","f":0.95,"c":0.9} +{"s":"odoo:stock_picking.production_ids","p":"target","o":"mrp.production","f":0.95,"c":0.9} {"s":"odoo:stock_picking.reference_ids","p":"target","o":"stock.reference","f":0.95,"c":0.9} +{"s":"odoo:stock_picking_batch._compute_capacity_percentage","p":"reads_field","o":"odoo:fleet_vehicle_model_category.volume_capacity","f":0.85,"c":0.75} +{"s":"odoo:stock_picking_batch._compute_capacity_percentage","p":"reads_field","o":"odoo:fleet_vehicle_model_category.weight_capacity","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_dock_id","p":"reads_field","o":"odoo:stock_picking.location_dest_id","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_dock_id","p":"reads_field","o":"odoo:stock_picking.location_id","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_l10n_ro_edi_stock_current_document_state","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_l10n_ro_edi_stock_current_document_uit","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} +{"s":"odoo:stock_picking_batch._compute_l10n_ro_edi_stock_default_location_type","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_l10n_ro_edi_stock_enable","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_move_ids","p":"reads_field","o":"odoo:stock_move.state","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch._compute_move_ids","p":"reads_field","o":"odoo:stock_picking.move_ids","f":0.85,"c":0.75} @@ -23619,10 +24055,13 @@ {"s":"odoo:stock_picking_batch._l10n_ro_edi_stock_reset_variable_selection_fields","p":"reads_field","o":"odoo:res_country.code","f":0.85,"c":0.75} {"s":"odoo:stock_picking_batch.allowed_picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} {"s":"odoo:stock_picking_batch.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:stock_picking_batch.dock_id","p":"target","o":"stock.location","f":0.95,"c":0.9} +{"s":"odoo:stock_picking_batch.driver_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:stock_picking_batch.move_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} {"s":"odoo:stock_picking_batch.move_line_ids","p":"target","o":"stock.move.line","f":0.95,"c":0.9} {"s":"odoo:stock_picking_batch.picking_ids","p":"inverse_name","o":"batch_id","f":0.95,"c":0.9} {"s":"odoo:stock_picking_batch.picking_ids","p":"target","o":"stock.picking","f":0.95,"c":0.9} +{"s":"odoo:stock_picking_batch.vehicle_category_id","p":"target","o":"fleet.vehicle.model.category","f":0.95,"c":0.9} {"s":"odoo:stock_quant.location_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_replenish_mixin.allowed_route_ids","p":"target","o":"stock.route","f":0.95,"c":0.9} {"s":"odoo:stock_rule.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} @@ -23634,6 +24073,7 @@ {"s":"odoo:stock_scrap._compute_allowed_uom_ids","p":"reads_field","o":"odoo:product_product.uom_ids","f":0.85,"c":0.75} {"s":"odoo:stock_scrap._compute_scrap_qty","p":"reads_field","o":"odoo:stock_move_line.quantity","f":0.85,"c":0.75} {"s":"odoo:stock_scrap.allowed_uom_ids","p":"target","o":"uom.uom","f":0.95,"c":0.9} +{"s":"odoo:stock_scrap.bom_id","p":"target","o":"mrp.bom","f":0.95,"c":0.9} {"s":"odoo:stock_scrap.location_id","p":"target","o":"stock.location","f":0.95,"c":0.9} {"s":"odoo:stock_scrap.move_ids","p":"inverse_name","o":"scrap_id","f":0.95,"c":0.9} {"s":"odoo:stock_scrap.move_ids","p":"target","o":"stock.move","f":0.95,"c":0.9} @@ -23667,11 +24107,15 @@ {"s":"odoo:survey_survey._compute_scoring_max_obtainable","p":"reads_field","o":"odoo:survey_question_answer.answer_score","f":0.85,"c":0.75} {"s":"odoo:survey_survey._compute_session_question_answer_count","p":"reads_field","o":"odoo:survey_user_input.user_input_line_ids","f":0.85,"c":0.75} {"s":"odoo:survey_survey._compute_session_show_leaderboard","p":"reads_field","o":"odoo:survey_question.save_as_nickname","f":0.85,"c":0.75} +{"s":"odoo:survey_survey._compute_slide_channel_data","p":"reads_field","o":"odoo:slide_slide.channel_id","f":0.85,"c":0.75} {"s":"odoo:survey_survey.page_ids","p":"target","o":"survey.question","f":0.95,"c":0.9} {"s":"odoo:survey_survey.question_and_page_ids","p":"inverse_name","o":"survey_id","f":0.95,"c":0.9} {"s":"odoo:survey_survey.question_and_page_ids","p":"target","o":"survey.question","f":0.95,"c":0.9} {"s":"odoo:survey_survey.question_ids","p":"target","o":"survey.question","f":0.95,"c":0.9} {"s":"odoo:survey_survey.restrict_user_ids","p":"target","o":"res.users","f":0.95,"c":0.9} +{"s":"odoo:survey_survey.slide_channel_ids","p":"target","o":"slide.channel","f":0.95,"c":0.9} +{"s":"odoo:survey_survey.slide_ids","p":"inverse_name","o":"survey_id","f":0.95,"c":0.9} +{"s":"odoo:survey_survey.slide_ids","p":"target","o":"slide.slide","f":0.95,"c":0.9} {"s":"odoo:survey_survey.user_input_ids","p":"inverse_name","o":"survey_id","f":0.95,"c":0.9} {"s":"odoo:survey_survey.user_input_ids","p":"target","o":"survey.user_input","f":0.95,"c":0.9} {"s":"odoo:survey_user_input._compute_attempts_info","p":"reads_field","o":"odoo:survey_survey.is_attempts_limited","f":0.85,"c":0.75} @@ -23691,11 +24135,32 @@ {"s":"odoo:uom_uom.relative_uom_id","p":"target","o":"uom.uom","f":0.95,"c":0.9} {"s":"odoo:website._compute_show_line_subtotals_tax_selection","p":"reads_field","o":"odoo:res_company.account_fiscal_country_id","f":0.85,"c":0.75} {"s":"odoo:website.company_id","p":"target","o":"res.company","f":0.95,"c":0.9} +{"s":"odoo:website.currency_id","p":"target","o":"res.currency","f":0.95,"c":0.9} {"s":"odoo:website.default_lang_id","p":"target","o":"res.lang","f":0.95,"c":0.9} +{"s":"odoo:website_visitor._compute_display_name","p":"reads_field","o":"odoo:event_registration.name","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_email_phone","p":"reads_field","o":"odoo:crm_lead.email_normalized","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_email_phone","p":"reads_field","o":"odoo:crm_lead.phone","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_email_phone","p":"reads_field","o":"odoo:event_registration.email","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_email_phone","p":"reads_field","o":"odoo:event_registration.phone","f":0.85,"c":0.75} {"s":"odoo:website_visitor._compute_email_phone","p":"reads_field","o":"odoo:res_partner.email_normalized","f":0.85,"c":0.75} {"s":"odoo:website_visitor._compute_email_phone","p":"reads_field","o":"odoo:res_partner.phone","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_event_track_wishlisted_ids","p":"reads_field","o":"odoo:event_track_visitor.is_wishlisted","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_event_track_wishlisted_ids","p":"reads_field","o":"odoo:event_track_visitor.track_id","f":0.85,"c":0.75} {"s":"odoo:website_visitor._compute_last_visited_page_id","p":"reads_field","o":"odoo:website_track.page_id","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_livechat_operator_id","p":"reads_field","o":"odoo:discuss_channel.livechat_end_dt","f":0.85,"c":0.75} +{"s":"odoo:website_visitor._compute_livechat_operator_id","p":"reads_field","o":"odoo:discuss_channel.livechat_operator_id","f":0.85,"c":0.75} +{"s":"odoo:website_visitor.discuss_channel_ids","p":"inverse_name","o":"livechat_visitor_id","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.discuss_channel_ids","p":"target","o":"discuss.channel","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.event_registered_ids","p":"target","o":"event.event","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.event_registration_ids","p":"inverse_name","o":"visitor_id","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.event_registration_ids","p":"target","o":"event.registration","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.event_track_visitor_ids","p":"inverse_name","o":"visitor_id","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.event_track_visitor_ids","p":"target","o":"event.track.visitor","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.event_track_wishlisted_ids","p":"target","o":"event.track","f":0.95,"c":0.9} {"s":"odoo:website_visitor.last_visited_page_id","p":"target","o":"website.page","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.lead_ids","p":"target","o":"crm.lead","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.livechat_operator_id","p":"target","o":"res.partner","f":0.95,"c":0.9} {"s":"odoo:website_visitor.partner_id","p":"target","o":"res.partner","f":0.95,"c":0.9} +{"s":"odoo:website_visitor.product_ids","p":"target","o":"product.product","f":0.95,"c":0.9} {"s":"odoo:website_visitor.website_track_ids","p":"inverse_name","o":"visitor_id","f":0.95,"c":0.9} {"s":"odoo:website_visitor.website_track_ids","p":"target","o":"website.track","f":0.95,"c":0.9} diff --git a/tools/odoo-blueprint-extractor/odoo_blueprint_extractor/spo_enrich.py b/tools/odoo-blueprint-extractor/odoo_blueprint_extractor/spo_enrich.py index c45f35e2..3095bbe7 100644 --- a/tools/odoo-blueprint-extractor/odoo_blueprint_extractor/spo_enrich.py +++ b/tools/odoo-blueprint-extractor/odoo_blueprint_extractor/spo_enrich.py @@ -90,12 +90,34 @@ def _const_str(node: Optional[ast.expr]) -> Optional[str]: return None +def _const_str_list(node: Optional[ast.expr]) -> List[str]: + """`'x'` → `['x']`; `['a', 'b']` / `('a', 'b')` → `['a', 'b']`; else `[]`. + + Mirrors the package class parser's `_extract_list_or_string`, extended to + accept tuples as well as lists (both are common `_inherit` forms). + """ + s = _const_str(node) + if s is not None: + return [s] + if isinstance(node, (ast.List, ast.Tuple)): + out: List[str] = [] + for elt in node.elts: + v = _const_str(elt) + if v is not None: + out.append(v) + return out + return [] + + def _scan_file(path: str, relmap: Dict[Tuple[str, str], Tuple[str, Optional[str]]]) -> None: """Parse one .py file; record every relational field on every named model. - A model is keyed by its `_name`. Relational fields capture comodel - (kw `comodel_name` or positional arg 0) and inverse name (One2many's - positional arg 1 / kw `inverse_name`; Many2one has no inverse here). + A model is keyed by its `_name` when present, ELSE by its `_inherit` + target(s) — the common Odoo extension form `_inherit = "some.model"` + (or `_inherit = ["a", "b"]`) with no `_name`. Relational fields capture + comodel (kw `comodel_name` or positional arg 0) and inverse name + (One2many's positional arg 1 / kw `inverse_name`; Many2one has no inverse + here), and are mapped onto EVERY resolved model name. """ try: with open(path, encoding="utf-8") as fh: @@ -109,7 +131,8 @@ def _scan_file(path: str, relmap: Dict[Tuple[str, str], Tuple[str, Optional[str] if not isinstance(node, ast.ClassDef): continue - model_name: Optional[str] = None + name_model: Optional[str] = None + inherit_models: List[str] = [] local_fields: Dict[str, Tuple[str, Optional[str]]] = {} for stmt in node.body: @@ -125,7 +148,14 @@ def _scan_file(path: str, relmap: Dict[Tuple[str, str], Tuple[str, Optional[str] if target_name == "_name": s = _const_str(stmt.value) if s is not None: - model_name = s + name_model = s + continue + + # _inherit = 'sale.order' OR _inherit = ['a', 'b'] + # The extension form (no _name) reopens an existing model to add + # relational fields; those fields belong to the inherited model(s). + if target_name == "_inherit": + inherit_models = _const_str_list(stmt.value) continue # field = fields.X(...) @@ -163,7 +193,23 @@ def _scan_file(path: str, relmap: Dict[Tuple[str, str], Tuple[str, Optional[str] if comodel is not None: local_fields[target_name] = (comodel, inverse) - if model_name is not None: + # Resolve the model name(s) this class contributes fields to: `_name` + # if present, else the single in-place `_inherit` target. A class with + # neither contributes nothing. + # + # No-`_name` extension reopens ONE existing model in place. Odoo binds + # such a class to `_inherit[0]`; a multi-element `_inherit` adds the rest + # as mixins, NOT as additional homes for these local fields. Assigning + # the whole list here would attach the fields to every secondary mixin + # and let build_relation_map() emit bogus `target`/`reads_field` triples + # for them. `parsers/classes.py` collapses the no-name case to + # `inherit[0]` for the same reason; mirror it. + if name_model is not None: + model_names = [name_model] + else: + model_names = inherit_models[:1] + + for model_name in model_names: mu = model_to_underscore(model_name) for field_name, (comodel, inverse) in local_fields.items(): # Last write wins across _inherit reopenings of the same model; @@ -270,10 +316,21 @@ def enrich( if len(parts) >= 3 and parts[0] in object_type_models: candidate_field_iris.add(f"odoo:{parts[0]}.{parts[1]}") - # field IRI → emitting method IRI (for the deep-read lift target) - field_emitter: Dict[str, str] = { - t["s"]: t["o"] for t in triples if t["p"] == "emitted_by" - } + # field IRI → ALL emitting method IRIs (for the deep-read lift target). + # A field can be emitted by more than one method (e.g. `stock_move.quantity` + # is emitted by BOTH `_compute_quantity` AND `_onchange_product_uom_qty`). + # The deep `reads_field` must be lifted onto EVERY emitter, or the + # recompute-ordering edge is lost for all but one of them (typically the + # `_compute_*`). Index is a de-duplicated, sorted list per field for + # determinism. + field_emitters: Dict[str, List[str]] = {} + for t in triples: + if t["p"] == "emitted_by": + field_emitters.setdefault(t["s"], []) + if t["o"] not in field_emitters[t["s"]]: + field_emitters[t["s"]].append(t["o"]) + for methods in field_emitters.values(): + methods.sort() new_lines: List[str] = [] stats = { @@ -322,8 +379,8 @@ def enrich( if t["p"] != "depends_on": continue dep_field = t["s"] - method = field_emitter.get(dep_field) - if method is None: + methods = field_emitters.get(dep_field) + if not methods: stats["deep_skip_no_emitter"] += 1 continue obj = t["o"] @@ -343,17 +400,23 @@ def enrich( continue final_model_us, leaf = resolved deep_obj = f"odoo:{final_model_us}.{leaf}" - if deep_obj == method: - stats["deep_skip_self_loop"] += 1 - continue - spo = (method, "reads_field", deep_obj) - if spo in existing_spo: - continue - new_lines.append( - triple_line(method, "reads_field", deep_obj, *DEEP_READ_TRUTH) - ) - existing_spo.add(spo) - stats["deep_reads_field"] += 1 + # Lift the deep read onto EVERY method that emits the dependent field + # (sorted for determinism). A read equal to its own emitter is dropped + # per-emitter (the self-loop guard), so a multi-emitter field can emit + # the deep read for some emitters and skip it for the one that IS the + # leaf's owning method. + for method in methods: + if deep_obj == method: + stats["deep_skip_self_loop"] += 1 + continue + spo = (method, "reads_field", deep_obj) + if spo in existing_spo: + continue + new_lines.append( + triple_line(method, "reads_field", deep_obj, *DEEP_READ_TRUTH) + ) + existing_spo.add(spo) + stats["deep_reads_field"] += 1 new_lines.sort() return new_lines, stats diff --git a/tools/odoo-blueprint-extractor/tests/test_spo_enrich.py b/tools/odoo-blueprint-extractor/tests/test_spo_enrich.py index b3d22ef6..93833d89 100644 --- a/tools/odoo-blueprint-extractor/tests/test_spo_enrich.py +++ b/tools/odoo-blueprint-extractor/tests/test_spo_enrich.py @@ -13,6 +13,7 @@ import json import os import sys +import tempfile import unittest _HERE = os.path.dirname(os.path.abspath(__file__)) @@ -21,6 +22,7 @@ sys.path.insert(0, _PKG_ROOT) from odoo_blueprint_extractor.spo_enrich import ( # noqa: E402 + build_relation_map, enrich, model_to_underscore, resolve_path, @@ -228,5 +230,144 @@ def test_output_lines_are_valid_json_and_sorted(self): self.assertEqual(lines, sorted(lines), "new triples must be sorted") +class TestMultiEmitterDeepReads(unittest.TestCase): + """Fix 1 — a field with multiple emitters lifts the deep read onto EACH. + + Mirrors the in-repo `stock_move.quantity` case: emitted by both a + `_compute_*` and an `_onchange_*`; the deep cross-model read must land on + both, not just the last `emitted_by` seen. + """ + + def test_deep_read_lifted_onto_all_emitters(self): + triples = [ + t("odoo:account_move", "rdf:type", "ogit:ObjectType"), + t("odoo:account_move.amount_total", "rdf:type", "ogit:Property"), + # amount_total is emitted by TWO methods + t( + "odoo:account_move.amount_total", + "emitted_by", + "odoo:account_move._compute_amount", + ), + t( + "odoo:account_move.amount_total", + "emitted_by", + "odoo:account_move._onchange_lines", + ), + t( + "odoo:account_move.amount_total", + "depends_on", + "odoo:account_move.line_ids.balance", + ), + ] + lines, stats = enrich(triples, RELMAP) + self.assertEqual(stats["deep_reads_field"], 2) + for method in ( + "odoo:account_move._compute_amount", + "odoo:account_move._onchange_lines", + ): + self.assertTrue( + any( + f'"s":"{method}","p":"reads_field",' + '"o":"odoo:account_move_line.balance"' in ln + for ln in lines + ), + f"deep read must be lifted onto {method}", + ) + + def test_self_loop_dropped_per_emitter_others_kept(self): + # Two emitters; the resolved deep object equals ONE of them (self-loop) + # and differs from the other. The self-loop is dropped, the other kept. + relmap = {("m", "rel"): ("m", None)} + triples = [ + t("odoo:m", "rdf:type", "ogit:ObjectType"), + t("odoo:m.f", "emitted_by", "odoo:m._compute_x"), + t("odoo:m.f", "emitted_by", "odoo:m._other"), + # resolves to odoo:m._compute_x (== first emitter → self-loop) + t("odoo:m.f", "depends_on", "odoo:m.rel._compute_x"), + ] + _, stats = enrich(triples, relmap) + self.assertEqual(stats["deep_skip_self_loop"], 1) + self.assertEqual(stats["deep_reads_field"], 1) + + +class TestInheritOnlyRelationMap(unittest.TestCase): + """Fix 2 — `_inherit`-only classes (no `_name`) contribute relational fields. + + The common Odoo extension form reopens an existing model via + `_inherit = "some.model"` (string) or `_inherit = ["a", "b"]` (list) WITHOUT + a `_name`; relational fields on such classes must map onto the single + in-place extension target, or their target/inverse_name (and any deep hop + through them) is lost. Odoo binds the no-`_name` case to `_inherit[0]`; any + further entries are mixins, not additional homes for the local fields, so + they must NOT receive the relational fields (mirrors `parsers/classes.py`). + """ + + def _scan_source(self, src: str): + with tempfile.TemporaryDirectory() as d: + with open(os.path.join(d, "m.py"), "w", encoding="utf-8") as fh: + fh.write(src) + return build_relation_map(d) + + def test_inherit_string_binds_field_to_inherited_model(self): + src = ( + "from odoo import fields, models\n" + "class AccountMove(models.Model):\n" + " _inherit = 'account.move'\n" + " authorized_transaction_ids = fields.Many2many(\n" + " comodel_name='payment.transaction')\n" + ) + relmap = self._scan_source(src) + self.assertEqual( + relmap.get(("account_move", "authorized_transaction_ids")), + ("payment.transaction", None), + ) + + def test_inherit_list_binds_field_to_first_model_only(self): + # No-`_name` multi-element `_inherit` extends `_inherit[0]` in place; + # the rest are mixins and must NOT inherit the local relational fields + # (otherwise build_relation_map() emits bogus target/reads_field triples + # for secondary parents). Matches parsers/classes.py inherit[0] collapse. + src = ( + "from odoo import fields, models\n" + "class Mixin(models.AbstractModel):\n" + " _inherit = ['sale.order', 'purchase.order']\n" + " partner_id = fields.Many2one('res.partner')\n" + ) + relmap = self._scan_source(src) + self.assertEqual( + relmap.get(("sale_order", "partner_id")), ("res.partner", None) + ) + self.assertIsNone(relmap.get(("purchase_order", "partner_id"))) + + def test_inherit_tuple_form_is_accepted(self): + src = ( + "from odoo import fields, models\n" + "class Ext(models.Model):\n" + " _inherit = ('stock.move',)\n" + " line_ids = fields.One2many('stock.move.line', 'move_id')\n" + ) + relmap = self._scan_source(src) + self.assertEqual( + relmap.get(("stock_move", "line_ids")), + ("stock.move.line", "move_id"), + ) + + def test_name_takes_precedence_over_inherit(self): + # When both _name and _inherit are present, fields belong to _name only + # (matches the package class parser: _name wins). + src = ( + "from odoo import fields, models\n" + "class SaleOrder(models.Model):\n" + " _name = 'sale.order'\n" + " _inherit = ['mail.thread']\n" + " partner_id = fields.Many2one('res.partner')\n" + ) + relmap = self._scan_source(src) + self.assertEqual( + relmap.get(("sale_order", "partner_id")), ("res.partner", None) + ) + self.assertIsNone(relmap.get(("mail_thread", "partner_id"))) + + if __name__ == "__main__": unittest.main(verbosity=2)