ilbronza / tasks
Laravel task management with conversations, attachments and client participation
Requires
- php: ^8.2
- ilbronza/accountmanager: ^2.5
- ilbronza/buttons: *
- ilbronza/crud: ^2.5
- ilbronza/datatables: *
- ilbronza/form: *
- ilbronza/formfield: *
- ilbronza/menu: *
- ilbronza/notes: ^3.0
- ilbronza/uikittemplate: *
- ilbronza/ukn: *
- laravel/framework: >=10.48
- ramsey/uuid: ^4.0
- spatie/laravel-activitylog: >=4.0
- spatie/laravel-medialibrary: >=10.13
- spatie/laravel-permission: >=5.11
Requires (Dev)
- fakerphp/faker: ^1.23
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Laravel task management for the IlBronza packages: workflow states, assignees, deadlines, conversations, private attachments and client participation.
Installation
composer require ilbronza/tasks:^1.0 php artisan migrate
The package uses Laravel auto-discovery and depends on ilbronza/notes:^3.0.
It is designed for an existing IlBronza Laravel application (CRUD, AccountManager,
Menu and UikitTemplate), including the application's base controller and User model.
Enable the menu with tasks.models.task.enabled = true (or the existing
notes.models.task.enabled setting). The workspace remains at /tasks-management.
Staff can manage tasks and invite existing user accounts as participants. Clients
see only invited tasks and shared messages. Internal messages and their files remain
private. Removing a participant revokes conversation and attachment access.
Upgrading from Notes
See UPGRADING.md before updating Notes 2.x. Applications using tasks must install both Notes 3 and Tasks 1 in the same deployment. Existing application classes, configuration, URLs and data continue to work after that dependency change.
Configuration
Publishing configuration is optional:
php artisan vendor:publish --tag=tasks.config
tasks.models.task.class: application-specific Task subclass.tasks.models.task.enabled: show task menu entries (defaults to false, as in Notes).tasks.models.task.table: defaults to the existingnotes__taskstable.tasks.routePrefix: defaults tonotesmanagertasks.; URL paths remain unchanged.tasks.defaultRoles/tasks.routeRoles: staff route access.tasks.conversation.staffRoles: optional staff-role override.tasks.conversation.disk: private attachment disk; defaults tolocal.tasks.conversation.participantsTable: defaults tonotes__task_participants.
Unspecified settings fall back to the old Notes settings, then package defaults. Explicit Tasks settings take precedence. Role lists are replaced, not combined. Keep client roles out of the staff-role lists.
Use IlBronza\Tasks\Models\Task for new code. Existing subclasses of
IlBronza\Notes\Models\Task remain valid. userCanSee, userCanUpdate,
userCanDelete and userCanComment retain their existing extension points.
Add tasks to menu.serviceProviders for task-only menu integration. Existing
notes registration still includes tasks; registering both does not duplicate them.
Testing
From the parent package workspace:
python3 .ibtest/bin/ibtest.py Tasks python3 .ibtest/bin/ibtest.py Notes
The suites cover workspace behavior, staff/client permissions, attachment access, legacy aliases, native and legacy configuration, model URLs, menu integration, existing databases and Notes without Tasks. The shared test environment is Laravel 11 / Testbench 9 / SQLite. It emits two upstream PDO deprecations on PHP 8.5.
License
MIT. Extracted from ilBronza/Notes, retaining its original copyright and license.