redz1029
6beb92d3c6
feat(programmer): per-day worked time split with assignee attribution
...
Implement daily time tracking and splitting for programmer tasks across
Manila midnights with proper assignee attribution, including support for
pauses, reassignments, and adjustments.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-09-27 20:53:49 +08:00
redz1029
b307f66f2c
Add PM extension (Projects, Work Logs, Comments) + Quill rich-text UI
...
Projects: Brick-backed model with list/detail screens and nav entry.
Work Logs: per-contributor time ledger, assignee running-clock +
helper logged minutes with Hours/Minutes input; pause-after-save and
helper-deduct prompts.
Comments: threaded comments with file attachments and Quill composer.
Detail screen: tabbed layout (Work Log / Comments / Activity),
editable title + description via edit dialog, Quill-rendered
descriptions with legacy plain-text fallback.
Create dialog: fixed-width (480px max), Quill description editor.
Shared QuillFieldEditor + QuillReadOnly widgets extracted for reuse.
RLS: hardened activity-log actor binding, immutable creator_id/
created_at triggers, SECURITY INVOKER visibility helper,
append-only work-log and scoped comment policies.
Brick migration for project_id FK on programmer_tasks.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-09-27 16:06:26 +08:00
redz1029
627645056b
Add Programmer Tasks module (work-log + time tracking)
...
Separate feature for the `programmer` role to record dev work by category,
distinct from the IT help-desk `tasks` feature. Modeled on the IT Service
Requests pattern (Brick offline-first model -> Riverpod stream/controller ->
list/detail screens); seed of a future Project Management workflow.
- programmer_tasks + programmer_task_activity_logs (category enum, RLS,
realtime) via supabase migration
- single assignee, self-logged or lead-assigned; assign/reassign logged
- pause-on-switch: starting a task while another runs prompts to pause the
running one, keeping one active task per user for accurate time attribution
- worked-duration math shared with help-desk tasks via a generic core in
task_duration.dart (existing callers unchanged)
- list distinguishes running vs paused with a per-task Resume shortcut
- accessible dialog labels; route /programmer-tasks + nav gated to admin/programmer
- unit/widget tests: controller lifecycle, duration math, pause-switch dialog
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-09-27 01:13:33 +08:00
redz1029
3cb980b629
QA hardening: security RLS fixes, Flutter 3.47.5 upgrade, UI/validation fixes
...
Security — enforce write authorization server-side (was UI/RPC-only):
- it_service_requests RLS: block cross-office read/edit + self-approve (QA-015)
- pass_slips RLS: owner can complete but not self-approve (QA-046)
- swap_requests RLS: scope select/update to participants + admin (QA-047)
- storage: tighten it_service_attachments + task_attachments write/delete (QA-027)
- admin_user_management edge function: allow programmers to manage users (QA-016)
Fixes:
- workforce generator "uncovered shifts" false alarms (QA-043/044)
- network-map VLAN + New-location dialog validation, disabled-until-valid (QA-048)
- de-flake time-of-day-dependent dashboard metrics test (QA-045)
Toolchain:
- upgrade to Flutter 3.47.5 / Dart 3.13.4; font_awesome_flutter 11.0.0,
flutter_quill 11.6.0, pdfrx 2.6.5; clear resulting deprecations (QA-002)
analyze clean; 139 tests pass; web build succeeds. Report + evidence in docs/qa/.
Note: also carries the in-progress Brick model cleanup already present in the
working tree. QA-001 (AI keys public in the build) is deferred by owner decision.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-09-26 11:52:16 +08:00
redz1029
e9d1af867a
Notification Screen and tasq_adaptive_list enhancements
2026-05-11 11:34:34 +08:00
redz1029
783c5eb0be
* Task/Ticket desktop dialogs — widened from 520 → 600dp, and tasks now uses SizedBox(width: 600) instead of ConstrainedBox(maxWidth:) which was the root cause of the "still small" issue (max-only never forced expansion)
...
* Pass Slip + Leave — both dialogs gained an isSheet flag; callers now branch on AppBreakpoints.tablet: bottom sheet on mobile, dialog on desktop
2026-04-30 06:45:51 +08:00
redz1029
48cd3bcd60
Offline Support
2026-04-27 06:20:39 +08:00
redz1029
7d8851a94a
Test Cases
2026-04-11 07:40:49 +08:00
redz1029
546c254326
Allow task completion even if signatories are still empty, put an indicator for completed tasks with incomplete details.
2026-02-24 22:08:53 +08:00
redz1029
354b27aad1
Added saving indicator when assigning a task
2026-02-24 21:49:25 +08:00
redz1029
98355c3707
Added validation when task type, category, signatories and action taken are empty upon completing a task
2026-02-23 21:27:55 +08:00
redz1029
1074572905
A better state and alerts
2026-02-23 20:19:07 +08:00
redz1029
46a84b4d95
Added Service
2026-02-21 21:57:31 +08:00
redz1029
1478667bbf
Added Action Taken on Task
2026-02-21 15:44:12 +08:00
redz1029
8d31a629ac
Added Type, Category and Signatories on task
2026-02-21 14:33:22 +08:00
redz1029
d32449d096
Common Date and Time fomatters
2026-02-21 08:32:07 +08:00
redz1029
4811621dc5
Swap Accept, Reject and Escalate
2026-02-21 08:31:20 +08:00
redz1029
ca195e6326
Removed unused faker
2026-02-19 06:50:22 +08:00
redz1029
9eb508acf7
Test geofence widget
2026-02-19 06:49:59 +08:00
redz1029
5488238051
Geofence test screen
2026-02-19 06:49:21 +08:00
redz1029
f9f3509188
Fixed Dashboard full page refresh
2026-02-18 23:37:21 +08:00
redz1029
5ec57a1cec
Auto Task Assignment
2026-02-18 23:14:50 +08:00
redz1029
372928d8e7
Added User Profile Screen
2026-02-18 21:42:48 +08:00
redz1029
35eae623d8
Fixed unable to edit Team
2026-02-18 21:21:45 +08:00
redz1029
15ce7b7a10
A more accurate geofencing
2026-02-18 20:43:33 +08:00
redz1029
8c1bb7646e
Fixed user management
2026-02-18 20:43:11 +08:00
redz1029
676d1425fd
test: remove admin_profile_service_test after removing service
2026-02-18 18:13:54 +08:00
redz1029
04fd874a48
chore: remove unused profile lock migration and admin_profile_service
2026-02-18 18:13:10 +08:00
redz1029
7fb465f6c9
Created App Surfaces for Theming
2026-02-17 07:27:42 +08:00
redz1029
5f666ed6ea
Pagination
2026-02-17 06:46:52 +08:00
redz1029
01c6b3537c
Major UI overhaul
2026-02-10 23:11:45 +08:00