feat(11-01): remove checkbox-disable restrictions for future tasks

- Remove isFuture guard in calendar_day_list.dart, pass canComplete: true always
- Remove isFuture check in task_row.dart, always enable Checkbox.onChanged
- calendar_task_row.dart unchanged (canComplete param already defaults to true)
This commit is contained in:
2026-03-24 09:44:58 +01:00
parent 7881754fda
commit b00806a597
2 changed files with 5 additions and 11 deletions

View File

@@ -240,9 +240,6 @@ class _CalendarDayListState extends ConsumerState<CalendarDayList> {
AppLocalizations l10n, AppLocalizations l10n,
ThemeData theme, ThemeData theme,
) { ) {
final now = DateTime.now();
final today = DateTime(now.year, now.month, now.day);
final isFuture = state.selectedDate.isAfter(today);
final showRoomTag = widget.roomId == null; final showRoomTag = widget.roomId == null;
final items = <Widget>[]; final items = <Widget>[];
@@ -268,7 +265,7 @@ class _CalendarDayListState extends ConsumerState<CalendarDayList> {
tw, tw,
isOverdue: false, isOverdue: false,
showRoomTag: showRoomTag, showRoomTag: showRoomTag,
canComplete: !isFuture, canComplete: true,
)); ));
} }

View File

@@ -42,7 +42,6 @@ class TaskRow extends ConsumerWidget {
task.nextDueDate.day, task.nextDueDate.day,
); );
final isOverdue = dueDate.isBefore(today); final isOverdue = dueDate.isBefore(today);
final isFuture = dueDate.isAfter(today);
// Format relative due date in German // Format relative due date in German
final relativeDateText = formatRelativeDate(task.nextDueDate, now); final relativeDateText = formatRelativeDate(task.nextDueDate, now);
@@ -57,9 +56,7 @@ class TaskRow extends ConsumerWidget {
return ListTile( return ListTile(
leading: Checkbox( leading: Checkbox(
value: false, // Always unchecked -- completion is immediate + reschedule value: false, // Always unchecked -- completion is immediate + reschedule
onChanged: isFuture onChanged: (_) {
? null // Future tasks cannot be completed yet
: (_) {
// Mark done immediately (optimistic UI, no undo per user decision) // Mark done immediately (optimistic UI, no undo per user decision)
ref.read(taskActionsProvider.notifier).completeTask(task.id); ref.read(taskActionsProvider.notifier).completeTask(task.id);
}, },