diff --git a/app/Filament/Admin/Widgets/StatsOverviewWidget.php b/app/Filament/Admin/Widgets/StatsOverviewWidget.php index 5cb72e1..6d004af 100644 --- a/app/Filament/Admin/Widgets/StatsOverviewWidget.php +++ b/app/Filament/Admin/Widgets/StatsOverviewWidget.php @@ -4,9 +4,9 @@ namespace App\Filament\Admin\Widgets; -use App\Models\Beneficiary; use App\Models\Organization; use App\Models\Shelter; +use App\Models\Stay; use Filament\Widgets\StatsOverviewWidget as BaseWidget; use Filament\Widgets\StatsOverviewWidget\Stat; use Illuminate\Support\Number; @@ -32,7 +32,22 @@ protected function getStats(): array Stat::make( __('app.stats.overview.beneficiaries'), - Number::format(Beneficiary::count()) + Number::format(Stay::count()) + ), + + Stat::make( + __('app.stats.overview.average_capacity'), + Number::format((float) Shelter::avg('capacity'), 0) + ), + + Stat::make( + __('app.stats.overview.total_capacity'), + Number::format((float) Shelter::sum('capacity')) + ), + + Stat::make( + __('app.stats.overview.total_occupancy'), + Number::format(Stay::whereCurrent()->count()) ), ]; } diff --git a/app/Http/Middleware/SetLocale.php b/app/Http/Middleware/SetLocale.php index 04c3d8b..44e41a1 100644 --- a/app/Http/Middleware/SetLocale.php +++ b/app/Http/Middleware/SetLocale.php @@ -8,6 +8,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Number; use Symfony\Component\HttpFoundation\Response; class SetLocale @@ -25,6 +26,8 @@ public function handle(Request $request, Closure $next): Response $this->setLocaleForUser($request); } + Number::useLocale(App::getLocale()); + return $next($request); } diff --git a/bootstrap/app.php b/bootstrap/app.php index 15ca9bc..aa77617 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -3,6 +3,7 @@ declare(strict_types=1); use App\Http\Middleware\SetCloudfrontHeaders; +use App\Http\Middleware\SetLocale; use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Exceptions; use Illuminate\Foundation\Configuration\Middleware; @@ -16,6 +17,7 @@ ) ->withMiddleware(function (Middleware $middleware) { $middleware->trustProxies('*') + ->appendToGroup('web', SetLocale::class) ->append(SetCloudfrontHeaders::class); }) ->withExceptions(function (Exceptions $exceptions) { diff --git a/lang/en/app.php b/lang/en/app.php index f33ea46..0b81504 100644 --- a/lang/en/app.php +++ b/lang/en/app.php @@ -377,6 +377,9 @@ 'beneficiaries' => 'Total hosted beneficiaries', 'organizations' => 'Total organizations', 'shelters' => 'Total shelters', + 'average_capacity' => 'Average shelter capacity', + 'total_capacity' => 'Total shelter capacity', + 'total_occupancy' => 'Total current occupancy', ], 'beneficiaries' => [ 'nationalities' => 'Total beneficiaries per nationality', diff --git a/resources/views/components/locale-switcher/panel.blade.php b/resources/views/components/locale-switcher/panel.blade.php index ee76dcb..d966ab0 100644 --- a/resources/views/components/locale-switcher/panel.blade.php +++ b/resources/views/components/locale-switcher/panel.blade.php @@ -12,7 +12,6 @@ @foreach ($locales as $locale)