Module Research Notes
Evidence gathered from the current module files before writing the user guide pages.
Research Sources Inspected
Source path
modules/Projects
Feature flags marked true
- Controllers
- Models
- Views
- Language
- Permissions
- Left Menu
- Default Menu
- Routes
- Cron Jobs
- Dashboard Widgets
Evidence Summary
Manifest
module.json defines slug projects, version 1.0.0, category Planning, and the module capability flags used in this guide.
Runtime surface
6 controller file(s), 86 view file(s), and 71 route mapping(s) were found.
Data surface
11 model file(s), 11 declared table(s), and 0 migration file(s) were found.
Operations surface
19 permission key(s), 2 job(s), 1 seeder(s), and 0 test file(s) were found.
Detailed File Evidence
Controllers and methods
Project_ganttProject_settingsProject_tasksProject_timesheetsProjectsTask_status
Jobs and schedules
- Generate recurring tasks (10 * * * *) - Creates new tasks from recurring templates whose next_recurring_date has arrived.
- Send task reminder notifications (15 * * * *) - Notifies assignees of upcoming task deadlines based on configured reminder offsets.
Routes sampled
| Route | Target |
|---|---|
pms/all_projects | projects/all_projects |
pms/projects/view/(:any) | projects/view/$1 |
pms/projects/view/(:any)/(:any) | projects/view/$1/$2 |
pms/my_tasks | project_tasks/all_tasks |
projects/tasks | project_tasks/tasks |
projects/tasks/(:any) | project_tasks/tasks/$1 |
projects/tasks_kanban | project_tasks/tasks_kanban |
projects/tasks_kanban/(:any) | project_tasks/tasks_kanban/$1 |
projects/tasks_calendar/(:any) | project_tasks/tasks_calendar/$1 |
projects/tasks_calendar_data/(:any)/(:any)/(:any) | project_tasks/tasks_calendar_data/$1/$2/$3 |
projects/tasks_calendar_data/(:any)/(:any) | project_tasks/tasks_calendar_data/$1/$2 |
projects/tasks_calendar_data/(:any) | project_tasks/tasks_calendar_data/$1 |
projects/get_milestones_for_filter | project_tasks/get_milestones_for_filter |
projects/all_tasks | project_tasks/all_tasks |
projects/all_tasks_kanban | project_tasks/all_tasks_kanban |
projects/can_edit_task_of_the_project/(:any) | project_tasks/can_edit_task_of_the_project/$1 |
projects/all_tasks_kanban_data | project_tasks/all_tasks_kanban_data |
projects/project_tasks_kanban_data/(:any) | project_tasks/project_tasks_kanban_data/$1 |
projects/task_view | project_tasks/task_view |
projects/task_view/(:any) | project_tasks/task_view/$1 |
| 51 additional route(s) omitted for readability. | |
README topics
- Overview
- Purpose
- Who This Module Is For
- Problems This Module Solves
- Key Features
- How It Works in ERPat
- Common Use Cases
- Demo Seeder
- User Roles and Access
- Permissions
- Related Modules
- Important Notes
Operating Implications
- Permission coverage is part of the module contract, so every workflow should be tested with a role-limited user and an administrator.
- Scheduled jobs can change statuses, notifications, or summaries after users leave the screen; support should check cron status during troubleshooting.
- Dashboard widgets summarize module state and should be verified against the source list before management reporting.
- Seeders exist for sample or starter data; operators should know whether seeded records are demo-only or operational defaults.
Known Risks from the Manifest
- Multi-tenant: the module is gated by a new module_projects setting seeded to enabled by a core migration (settings is a shared table). Validate the setting exists per tenant before relying on Projects visibility.
- Sub-feature toggles module_mytask, module_gantt and module_project_timesheet still control the My Tasks, Gantt and Timesheets entries beneath the master module_projects toggle.
- Project detail tabs for Invoices/Payments/Expenses/Estimates/Notes are container views that render data owned by the Sales, Expenses and Notes features; those features remain in core.