feat(report): accomplishment report dialog + entry points

Add AccomplishmentReportDialog with programmer/admin modes, date-range
filter (default this month), and include-unapproved toggle. Wire into
DaySheetsTab app-bar action, ApprovalsTab app-bar action, and
ProgrammerDrillDownScreen app-bar button.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-09-28 19:09:09 +08:00
parent 167e208ffa
commit 1101fb0a97
5 changed files with 489 additions and 1 deletions
@@ -12,6 +12,7 @@ import '../../widgets/app_section_header.dart';
import '../../widgets/app_state_view.dart';
import '../../widgets/status_pill.dart';
import 'dashboard/programmer_dashboard.dart';
import 'report/accomplishment_report_dialog.dart';
/// Admin-only drill-down screen that shows [ProgrammerDashboard] for a
/// specific user in read-only mode, plus their recent day sheets history.
@@ -52,7 +53,20 @@ class ProgrammerDrillDownScreen extends ConsumerWidget {
final name = profile?.fullName ?? 'Programmer';
return Scaffold(
appBar: AppBar(title: Text(name)),
appBar: AppBar(
title: Text(name),
actions: [
OutlinedButton(
onPressed: () => showAccomplishmentReportDialog(
context,
ref,
programmerId: userId,
),
child: const Text('Generate Accomplishment Report'),
),
const SizedBox(width: 8),
],
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [