mirror of https://github.com/Devoalda/LaDo.git
fix(Todo list count): Fixed data query date logic
This commit is contained in:
parent
7a9d9cd4a5
commit
fccb731b12
|
@ -12,6 +12,7 @@ use Illuminate\Http\RedirectResponse;
|
||||||
|
|
||||||
class TodoController extends Controller
|
class TodoController extends Controller
|
||||||
{
|
{
|
||||||
|
private string $timezone = "Asia/Singapore";
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*/
|
*/
|
||||||
|
@ -22,8 +23,8 @@ class TodoController extends Controller
|
||||||
// Show ALL not completed (Null or empty)
|
// Show ALL not completed (Null or empty)
|
||||||
->whereNull('completed_at')
|
->whereNull('completed_at')
|
||||||
->orWhere('completed_at', '')
|
->orWhere('completed_at', '')
|
||||||
// And all completed today
|
// And all completed today (Range of today)
|
||||||
->orWhereDate('completed_at', today())
|
->orWhereBetween('completed_at', [now($this->timezone)->startOfDay(), now($this->timezone)->endOfDay()])
|
||||||
->orderByDesc('created_at')
|
->orderByDesc('created_at')
|
||||||
->get([
|
->get([
|
||||||
'id',
|
'id',
|
||||||
|
@ -104,10 +105,12 @@ class TodoController extends Controller
|
||||||
|
|
||||||
if ($emptyPost) {
|
if ($emptyPost) {
|
||||||
// If empty post, toggle completed_at
|
// If empty post, toggle completed_at
|
||||||
$todo->completed_at = $todo->completed_at ? null : now();
|
$todo->completed_at = $todo->completed_at ? null : now($this->timezone);
|
||||||
|
$todo->save();
|
||||||
} elseif ((isset($data['completed_at']) && $data['completed_at'] === 'on')) {
|
} elseif ((isset($data['completed_at']) && $data['completed_at'] === 'on')) {
|
||||||
// If completed_at=on, set completed_at to now()
|
// If completed_at=on, set completed_at to now()
|
||||||
$todo->completed_at = now();
|
$todo->completed_at = now($this->timezone);
|
||||||
|
$todo->save();
|
||||||
} else {
|
} else {
|
||||||
// Validate Data
|
// Validate Data
|
||||||
$data = $request->validate([
|
$data = $request->validate([
|
||||||
|
@ -116,10 +119,10 @@ class TodoController extends Controller
|
||||||
'due_start' => 'nullable|date',
|
'due_start' => 'nullable|date',
|
||||||
'due_end' => 'nullable|after:due_start',
|
'due_end' => 'nullable|after:due_start',
|
||||||
]);
|
]);
|
||||||
|
// Update todo
|
||||||
|
$todo->update($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update todo
|
|
||||||
$todo->update($data);
|
|
||||||
|
|
||||||
return redirect()->route('todo.index');
|
return redirect()->route('todo.index');
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,8 +116,7 @@
|
||||||
<div class="bg-white dark:bg-gray-800 shadow-sm rounded-lg p-6">
|
<div class="bg-white dark:bg-gray-800 shadow-sm rounded-lg p-6">
|
||||||
<h2 class="text-2xl font-semibold mb-4 text-green-500 dark:text-green-400">
|
<h2 class="text-2xl font-semibold mb-4 text-green-500 dark:text-green-400">
|
||||||
Completed Today
|
Completed Today
|
||||||
({{ $todos->where('completed_at', '>=', \Carbon\Carbon::today())->where('completed_at', '<',
|
({{ $todos->where('completed_at', '>=', \Carbon\Carbon::today())->count() }})
|
||||||
\Carbon\Carbon::tomorrow())->count() }})
|
|
||||||
</h2>
|
</h2>
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
@foreach ($todos as $todo)
|
@foreach ($todos as $todo)
|
||||||
|
|
Loading…
Reference in New Issue