reminder for todos

This commit is contained in:
DigitalInfinity committed 2026-07-02 19:34:12 +00:00
1 parent f78740fbb0
commit ec6d7e2a80
9 files changed
+171 -27

No files matched your search

@@ -4,6 +4,7 @@ namespace App\Filament\Resources\Todos\Pages;
use App\Filament\Actions\DoneTodoAction;
use App\Filament\Actions\ReopenTodoAction;
use App\Filament\Actions\SetReminderAction;
use App\Filament\Resources\Todos\TodoResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
@@ -18,6 +19,7 @@ class EditTodo extends EditRecord
return [
DoneTodoAction::make('done'),
ReopenTodoAction::make('reopen'),
SetReminderAction::make([]),
DeleteAction::make()->iconButton()->icon(Heroicon::Trash),
];
}
@@ -39,7 +39,7 @@ class TodoForm
Toggle::make('review')->label('Review')->hint('Todo geht nach Erledigung noch mal zum Ersteller'),
]),
// DatePicker::make('follow_up')->label('Wiedervorlage/Erinnerung'),
DatePicker::make('follow_up')->label('Wiedervorlage/Erinnerung')->hiddenOn(['create']),
DatePicker::make('done_date')->label('Erledigt am')->hiddenOn(['create']),
]);
}
@@ -4,14 +4,13 @@ namespace App\Filament\Resources\Todos\Tables;
use App\Filament\Actions\DoneTodoAction;
use App\Filament\Actions\ReopenTodoAction;
use App\Filament\Actions\SetReminderAction;
use App\Models\Group;
use App\Models\User;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\Filter;
@@ -52,10 +51,10 @@ class TodosTable
->label('Erledigt am')
->date()
->sortable(),
// TextColumn::make('follow_up')
// ->label('Wiedervorlage')
// ->date()
// ->sortable(),
TextColumn::make('follow_up')
->label('Wiedervorlage')
->date()
->sortable(),
IconColumn::make('review')
->label('Review')
->boolean(),
@@ -66,6 +65,7 @@ class TodosTable
->label('nicht erledigt')
->query(function (Builder $query) {
$query->whereNull('done_date');
return $query;
}),
Filter::make('mine')->label('von mir oder für mich')
@@ -76,8 +76,24 @@ class TodosTable
->orWhere('user_id', filament()->auth()->user()->id)
->orWhere('todoable_type', User::class)->where('todoable_id', filament()->auth()->user()->id)
->orwhere('todoable_type', Group::class)->whereIn('todoable_id', User::find(filament()->auth()->user()->id)->groups()->get()->pluck('id'));
return $query;
});
return $query;
}),
Filter::make('keineZukuenftigeWiedervorlage')
->label('ohne zukünftige Wiedervorlage')
->default()
->query(function (Builder $query) {
$query->where(function (Builder $query) {
$query
->whereNull('follow_up')
->orWhereDate('follow_up', '<=', today());
return $query;
});
return $query;
}),
@@ -85,6 +101,7 @@ class TodosTable
->recordActions([
DoneTodoAction::make('done'),
ReopenTodoAction::make('reopen'),
SetReminderAction::make([]),
EditAction::make()->iconButton(),
DeleteAction::make()->iconButton()
->visible(function (Model $record) {