Skip to content

Roadmap: visual & no-code tier definition authoring + dry-run simulation #1

Description

@bosd

Tracking issue for the larger items in the "make tier definitions easier
to author & verify" effort. The cheap first batch (plain-language
summary, inline help, group-by-model overview, save-time domain lint)
shipped in OCA#48.

Problem

  1. Authoring is technical. Raw Odoo domains, technical model/field
    names, opaque sequence/approve_sequence/approve_sequence_bypass
    interactions, no view of how rules combine into an ordered chain.
  2. Verifying a rule eats time. The only way to confirm behaviour is
    the live loop: create a matching record -> request_validation() ->
    log in as each reviewer -> approve -> repeat. No preview/dry-run.

Clean, side-effect-free reusable seams already exist:
TierValidation.evaluate_tier() (pure domain match),
the definition-search + sequence loop in request_validation(),
TierReview._get_reviewers(), _can_review_value(),
_compute_need_validation(). comment.wizard is a clean
TransientModel + modal template. base_tier_validation_formula already
adds expression authoring (more technical, not less);
base_tier_validation_board visualises reviews, not definitions.

R1 — Simulation / dry-run engine + preview (recommended: core)

New non-persisting TierValidation._simulate_validation() mirroring the
request_validation() definition-search + evaluate_tier() + sequence
loop, returning a structured chain (per tier: definition, sequence,
review_type, resolved reviewers, would-be pending/waiting status) with
zero writes / message_post / _update_counter / notify*. Surfaced
as a record-level "Preview validation" button and a definition-level
"Test this rule" wizard (pick an existing record or enter field
values). Highest value / lowest risk; good fast follow-up PR.

R2 — Guided rule-creation wizard (recommended: new opt-in module)

New module e.g. base_tier_validation_wizard: plain-language steps
(document -> when -> who -> order) generating the tier.definition
rows. Opinionated, so kept separate; technical admins keep the raw form.

R3 — Visual / no-code flow view (recommended: spike first)

Feasibility:

  • Reuse the "product routes" view? No. Odoo's old arrow-flow
    diagram view type was removed years ago; stock's route picture is
    bespoke, not a reusable generic view.
  • Reuse an org-chart? Partially yes. Odoo's native hierarchy
    view (web_hierarchy, the HR org-chart, present in 19) renders cards
    with connectors and is the realistic free building block to show an
    ordered tier chain (Tier 1 -> Tier 2 -> ..., branching by
    review_type). Best applied to the simulation result / per-model
    chain.
  • n8n-style drag-and-drop editor: large custom OWL component
    (canvas, nodes, edges, persistence). Roadmap/stretch only; needs a
    dedicated spike + design before any estimate.

Next action: small spike prototyping the hierarchy view over a
simulation/definition chain, then decide placement
(base_tier_validation_board 19.0, or a new module).

R4 — Self-check extensions (recommended: core + formula module)

Overlap/no-op detection across a model's definitions (which rules fire
together, ordering conflicts) and formula-compile validation in
base_tier_validation_formula.

Placement matrix (recommended, open to discussion)

Item Placement
summary / help / overview / domain lint (OCA#48) core base_tier_validation
R1 engine + preview core
R2 guided wizard new opt-in module
R3 visual flow spike -> board module or new module
R4 overlap lint / formula compile core + base_tier_validation_formula

Status

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions