Allow task completion even if signatories are still empty, put an indicator for completed tasks with incomplete details.

This commit is contained in:
2026-02-24 22:08:53 +08:00
parent 892fbee456
commit 546c254326
6 changed files with 212 additions and 23 deletions
+22
View File
@@ -426,6 +426,28 @@ class _TaskDetailScreenState extends ConsumerState<TaskDetailScreen>
const SizedBox(height: 12),
Text(description),
],
// warning banner for completed tasks with missing metadata
if (task.status == 'completed' && task.hasIncompleteDetails) ...[
const SizedBox(height: 12),
Row(
children: [
const Icon(
Icons.warning_amber_rounded,
color: Colors.orange,
),
const SizedBox(width: 6),
Expanded(
child: Text(
'Task completed but some details are still empty.',
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
color: Theme.of(context).colorScheme.onSurfaceVariant,
),
),
),
],
),
],
const SizedBox(height: 16),
// Collapsible tabbed details: Assignees / Type & Category / Signatories
ExpansionTile(
+23 -1
View File
@@ -297,8 +297,21 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
),
TasQColumn<Task>(
header: 'Status',
cellBuilder: (context, task) =>
cellBuilder: (context, task) => Row(
mainAxisSize: MainAxisSize.min,
children: [
_StatusBadge(status: task.status),
if (task.status == 'completed' &&
task.hasIncompleteDetails) ...[
const SizedBox(width: 4),
const Icon(
Icons.warning_amber_rounded,
size: 16,
color: Colors.orange,
),
],
],
),
),
TasQColumn<Task>(
header: 'Timestamp',
@@ -352,6 +365,15 @@ class _TasksListScreenState extends ConsumerState<TasksListScreen> {
mainAxisSize: MainAxisSize.min,
children: [
_StatusBadge(status: task.status),
if (task.status == 'completed' &&
task.hasIncompleteDetails) ...[
const SizedBox(width: 4),
const Icon(
Icons.warning_amber_rounded,
size: 16,
color: Colors.orange,
),
],
if (showTyping) ...[
const SizedBox(width: 6),
TypingDots(