Jump to content

RefractTrack Tasks

From Pixel Refraction Studio
Revision as of 23:18, 27 August 2026 by Nerdofepic (talk | contribs) (Created page with "== Tasks == A task is the core unit of work in RefractTrack, always scoped to a single Project and identified by a task code like <code><nowiki>RPG-12</nowiki></code> (its project's prefix plus a sequential number). === Fields === Every task has: * '''Title''' and '''Description''' (description supports the Markdown Formatting subset) * '''Type''' — <code><nowiki>Normal</nowiki></code> or <code><nowiki>...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Tasks

A task is the core unit of work in RefractTrack, always scoped to a single Project and identified by a task code like RPG-12 (its project's prefix plus a sequential number).

Fields

Every task has:

  • Title and Description (description supports the Markdown Formatting subset)
  • TypeNormal or Bug
  • PriorityLow, Medium, High, or Critical (defaults to Medium)
  • Stage — which Stage (swimlane) the task currently sits in
  • Assignee — optional, but required when moving into a stage flagged requires_assignee
  • Due date — optional
  • Groups — zero or more Groups, a many-to-many tag
  • Review statuspending, approved, or wont_do; see Approvals and Review
  • Archived state — orthogonal to stage and review status; see Archiving

Bug-specific fields

Tasks with Type = Bug get three extra optional fields, shown and hidden automatically based on the Type radio:

  • Expected behavior
  • Actual behavior
  • Steps to reproduce

These appear on the full task form, the bulk create form (as templates using the same placeholder substitution as title/description), and the simplified reporter submission form. They're cleared server-side whenever a task's type isn't Bug, and are shown in their own "Bug Details" panel on the task detail page when present.

Task codes and auto-linking

Every task has a permanent code (PREFIX-123). Anywhere free text is rendered through the markdown renderer, text matching the PREFIX-123 pattern is automatically scanned and, if it resolves to a real task, turned into a link to that task — see Markdown Formatting. The link is only generated for users who can actually view tasks (tasks:view); otherwise the code is left as plain text rather than pointing somewhere the viewer can't reach.

Creating tasks

  • Full task form (task_form.php) — available to users with tasks:create, exposes every field above.
  • Reporter form (report.php) — a simplified "submit a ticket" form for users who only hold tasks:report (typically playtesters/QA). Tickets filed this way always start in the project's first stage, unassigned, at Medium priority, and reporters can only submit to the specific projects they've been granted access to.
  • Bulk create — see Bulk Task Creation and Saved Lists.
  • Clone — any existing task can be duplicated via the Clone action, subject to tasks:clone.

Editing and moving tasks

  • Editing a task's content (title, description, type, priority, groups) requires tasks:edit:content.
  • Moving a task between stages — including setting the assignee and due date at the same time — requires tasks:edit:stage. This can be done from the task detail page, the task edit form, or by dragging the task on the board.
  • Moving a task into a stage flagged requires_assignee (by default: In Progress and In Review) always requires picking an assignee first, regardless of which of the above three paths is used.
  • A task's stage dropdown always includes the task's current stage even if that stage has since been hidden from the board — otherwise saving the form would silently drop it back to a different stage.

Deleting tasks

Permanent deletion (tasks:delete) removes a task outright. A standalone snapshot of every hard-deleted task is preserved in a deleted_task_log table for audit purposes even after the live row is gone. For non-destructive removal from the active board, see Archiving instead.