Skip to content

fix(pl-127): Events enrollment saves without a taught Save; panel never saves an unread shape - #108

Merged
jayanthvee merged 1 commit into
mainfrom
pl-127
Oct 28, 2026
Merged

jayanthvee merged 1 commit into
mainfrom
pl-127

Conversation

@jayanthvee

Copy link
Copy Markdown
Owner

Use case #6 (Odoo Events enrollment).

What broke

The owner taught Events and stopped on the new attendee's form without pressing Odoo's Save, an unlabeled cloud icon. The shape refused it ("didn't see the change saved"). The task the owner then saved, "attenddee task", was built by the panel's old step-list path. That path only runs when the panel holds no shape for the recording. The task:

  • replayed the click on the event's card, which parked the row: "the click landed on a different element";
  • marked New as the save;
  • had no Save step.

Fix

  • packages/compiler/shape.py: a change with no Save click and no leave is taught as a leave, not refused.
    • An update leaves by the list's address and reads the value back, as in PL-126.
    • A create's canonical recording ends at its last fill.
  • packages/compiler/compiler.py: the new save_new_form option presses the form's own Save after the last fill. It reuses PL-123's explicit-save step (Save / Save manually) and checks that the saved page landed and shows the email.
  • services/api/compile.py: sets save_new_form for a create that was never saved or left.
  • apps/web/src/panel/PanelTeach.tsx: a stopped recording is always asked for its shape before saving.
    • If the shape can't be read, the panel says so, with Try again, and hides the old step list.
    • Save reads the shape again and saves nothing while it is still unread.
    • The old path remains only for recordings that open no item, and for sign-ins.

The Events task now compiles to:

  1. open the attendee list;
  2. search for the row's email, skipping the row if it is already there;
  3. New;
  4. fill name, email and phone;
  5. Save, checked by the saved page's address and email.

It contains no event-card click.

Tests

  • tests/api/test_pl127_events_no_save.py: the owner's recording, rebuilt from the saved task. It failed before the fix.
  • apps/web/tests/pl127ShapeUnread.test.tsx: an unread shape. It failed before the fix.
  • test_pl125_shape.py: the never-saved update is now a leave.
  • Full gates: pytest (1501 passed), web (388), extension check (841), and ruff all pass.

Not verified

  • The owner's panel run on Odoo. This needs a new zip after merge, and the existing "attenddee task" must be taught again.
  • Why the shape was unread at the owner's Stop is not known. Possibly a slow or failed request; the panel now handles either case.

… form's own Save; the panel never saves an unread shape through the old step list
@jayanthvee
jayanthvee merged commit f80365b into main Oct 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant