Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

intent: a transitions: button cannot ask for input - Void needs a mandatory reason and date stamped with the move

Open
#7,909 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
java, yaml
Domain
api, backend

Research direction

Start by reading the transition handling for TransitionIntent and compare it with the generates: prompt implementation referenced as issue #6685. Trace how status moves write fields and how immutableWhen and requiredWhen are enforced. Done means a transition can collect and validate its own field values in the same write as the status change, with missing required answers rejected without moving the record.

Written by the indexing model from the issue text.

Description

What happens

transitions: (TransitionIntent: name, forEntity, from, setStatus, when, label, icon, order, notify on v14.88.0 and v14.90.0) is a one-click status move. A move that the law requires to carry data has no way to collect it:

  • BG annulment of an issued invoice (ЗДДС чл. 116, reviewer Q56/Q57): Void must record a reason (mandatory) and the date of the annulment, optionally the replacing invoice. The invoice is immutableWhen-locked from APPROVED, so the clerk cannot type the reason on the record before pressing Void either - the lock (correctly) refuses the edit.
  • generates: has prompt: (#6685) for exactly this kind of "ask, then act", but a prompt writes the TARGET of a create-from, not the record being moved.

BusinessIntents base-sales-invoices#92 parts 2 (reason + date) and 3 (ReplacedBy) wait on this.

Ask

prompt: on a transition, the same grammar as the generates prompt, writing the record's OWN fields in the same targeted write as the status move (so immutableWhen does not refuse it, and a gated requiredWhen on the target status can enforce the reason):

transitions:
  - name: VoidSalesInvoice
    forEntity: SalesInvoice
    from: [3, 4]
    setStatus: 9
    prompt:
      - { field: voidReason, required: true }
      - { field: voidedOn, default: now }
      - { field: ReplacedBy }          # optional to-one

Fields named by prompt: are written only through the transition (readOnly in the form otherwise). A missing required prompt answer is a 400 with the field named, and the move does not happen.

Filed from BusinessIntents base-sales-invoices#92 (pre-train wave 2026-10-17).

Dominant language
Java
Stars
278
Forks
97
Avg merge
18h 53m
Merged PRs (30d)
228

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from eclipse-dirigible/dirigible

All issues in eclipse-dirigible/dirigible

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.