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
ccedf6e5f0
Worklog, anti geo spoofing and UI Polish
2026-05-05 05:51:19 +08:00
redz1029
48cd3bcd60
Offline Support
2026-04-27 06:20:39 +08:00
redz1029
049ab2c794
Added My Schedule tab in attendance screen
...
Allow 1 Day, Whole Week and Date Range swapping
2026-03-22 11:52:25 +08:00
redz1029
74197c525d
Enhanced material design 3 implementation
2026-03-20 15:15:38 +08:00
redz1029
81853c4367
Added programmer role and fixed snackbar not showing
2026-03-16 07:23:20 +08:00
redz1029
0bd2a94ece
OTA Update attempt
2026-03-11 22:28:38 +08:00
redz1029
ccc1c62262
Background location tracking
2026-03-09 22:33:35 +08:00
redz1029
8bf0dc13d7
Workforce rotation settings and location permission handling
2026-03-08 17:31:39 +08:00
redz1029
b5449f7842
Still some AI integration issues
2026-03-03 23:35:07 +08:00
redz1029
6ccf820438
FCM push Notifications
2026-02-25 23:37:08 +08:00
redz1029
aef88de54b
No notification permission enforcement on web
2026-02-25 18:39:39 +08:00
redz1029
cc6fda0e79
Allow OS notifications
2026-02-23 22:19:23 +08:00
redz1029
1074572905
A better state and alerts
2026-02-23 20:19:07 +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
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
af6cfe76b4
chore: remove Dart-only admin profile service; use Edge Function for lock operations
2026-02-18 18:19:04 +08:00
redz1029
04fd874a48
chore: remove unused profile lock migration and admin_profile_service
2026-02-18 18:13:10 +08:00
redz1029
678a73a696
Implement Asia/Manila Time Zone
...
Handled saving of Relievers
2026-02-11 20:12:48 +08:00