RefractTrack Projects
Projects
RefractTrack tracks tasks across one or more independent projects. Every project has:
- A name and a short prefix (e.g.
RPG,SFRPG) — every task inside the project is numbered off its prefix (RPG-1,RPG-2, ...), giving Jira-style task codes with matching clean URLs (/task/RPG-12). - Its own independent set of Stages, Groups, and Saved Lists — every new project is seeded with a standard starter set of each at creation time, and changes to one project's stages/groups/lists never affect another project's.
- Its own task numbering sequence.
Creating and managing projects
Projects are managed from Manage → Projects (projects.php / project_form.php), gated by the projects:* permissions (view, create, edit, activate — see Permissions and Roles).
Soft delete only
Projects support deactivation (is_active flag), not hard deletion — this is deliberately the only kind of project removal offered; there is no hard-delete path in the application. A deactivated project's data (tasks, stages, groups, history) is preserved but the project stops appearing in normal use.
Access control
Which users can see or work in a given project is controlled independently of a user's global permissions, via user_project_access. A user can hold a permission like tasks:edit:content globally but still be denied for a specific project they haven't been granted access to — see "Project-scoped permissions" in Permissions and Roles.
Switching projects
The nav bar includes a project switcher. Choosing a different project there:
- Immediately remembers the new project as the user's last-used project (see Per User Preferences).
- Returns the user to the same kind of page they were on rather than always bouncing to the board — Export stays on Export, List stays on List, and so on, for the top-level project-scoped list pages (board, list, groups, stages, bulk create, bulk lists, approvals, export, import, archived). Sub-forms (new/edit forms) and single-resource pages (a specific task, a specific stage's edit form) fall back to the new project's board instead, since there's no equivalent page to stay on.
- Deliberately drops any active view filters (search/sort/group/assignee/stage) rather than carrying them over, since a filter like a specific stage could point at a stage that doesn't exist in the newly-selected project.