Adds a pull-based human-node family mirroring the inbox user task family, for human decisions that should not become tracked inbox work items. Where a user task is pushed to the inbox and returns the actor to the inbox, an operation is pulled from the actor's pending-actions list and returns them to where they came from.

What it adds

  • UserOperation (core): parks like a user task, staffed through the node assignments, with configured outcomes, an optional completer variable and an optional comment, but creates no work item. Acted on from a "My pending actions" list, inline or through an operation form.
  • InteractionOperation (new module orchestra_interaction_operation): UserOperation plus an attached interaction plugin rendered on the operation form, the pull-based sibling of the interaction task. Only this variant needs orchestra_interaction.
  • Core primitives shared with the inbox: AssignmentMatcher (the candidate/viewer matching, which WorkItemManager now delegates to), AssignableInterface, HumanNodeConfigTrait, OutcomeResult, OperationInterface. The assignments node feature moves to core so any assignable node can use it.
  • orchestra_ui: PendingActionsFinder, the pending-actions list, the operation form and inline signal, and OperationAccessCheck (assignment-gated, work-item-free).
  • orchestra_interaction: the interaction picker is extracted into a shared InteractionPluginConfigTrait, which the interaction task now consumes.

Behavior

  • Each outcome is either signalled inline from the list or chosen on the operation form. An outcome that needs input (an attached interaction, or a required comment) is form-only and refused inline server-side.
  • List actions are qualified by the node label, so outcomes sharing a name across nodes stay unambiguous.
  • Acting returns the user to the destination they came from.

Compatibility

Additive. The WorkItemManager delegation, the assignments node feature move (its plugin id and stored config key are unchanged) and the interaction picker extraction are behavior-preserving; the existing inbox and interaction-task test suites pass unchanged.

Relation

Prerequisite for the yoyaku booking operator-cancel, and it puts the built-in operation form and the outcome/completer contract in core, so it sets up the handler_url unification in #3610065.

Issue fork orchestra-3610077

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed 30ff424c on 1.x
    task: #3610077 Add a UserOperation task-type family: pull-based, work-...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.