627645056b
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>
14 lines
627 B
Dart
14 lines
627 B
Dart
import '../../models/programmer_task.model.dart';
|
|
import '../../theme/app_status_colors.dart';
|
|
|
|
/// Maps a programmer-task status to a semantic [StatusKind] so its color carries
|
|
/// consistent meaning across the list and detail screens
|
|
/// (grey=queued, blue=in progress, green=completed, grey=cancelled).
|
|
StatusKind programmerTaskStatusKind(String status) => switch (status) {
|
|
ProgrammerTaskStatus.queued => StatusKind.neutral,
|
|
ProgrammerTaskStatus.inProgress => StatusKind.info,
|
|
ProgrammerTaskStatus.completed => StatusKind.success,
|
|
ProgrammerTaskStatus.cancelled => StatusKind.neutral,
|
|
_ => StatusKind.neutral,
|
|
};
|