diff --git a/app/Filament/Resources/Members/MemberResource.php b/app/Filament/Resources/Members/MemberResource.php index e7d97b1..8bbdb11 100644 --- a/app/Filament/Resources/Members/MemberResource.php +++ b/app/Filament/Resources/Members/MemberResource.php @@ -7,6 +7,7 @@ use App\Filament\Resources\Members\Pages\EditMember; use App\Filament\Resources\Members\Pages\ListMembers; use App\Filament\Resources\Members\Schemas\MemberForm; use App\Filament\Resources\Members\Tables\MembersTable; +use App\Filament\Resources\Members\Widgets\MemberCount; use App\Models\Member; use BackedEnum; use Filament\Resources\Resource; @@ -58,4 +59,11 @@ class MemberResource extends Resource return Member::getAttributeLabel('members'); } + public static function getWidgets(): array + { + return [ + MemberCount::class, + ]; + } + } diff --git a/app/Filament/Resources/Memberships/MembershipResource.php b/app/Filament/Resources/Memberships/MembershipResource.php index 4535ff4..dd5d60a 100644 --- a/app/Filament/Resources/Memberships/MembershipResource.php +++ b/app/Filament/Resources/Memberships/MembershipResource.php @@ -7,6 +7,7 @@ use App\Filament\Resources\Memberships\Pages\EditMembership; use App\Filament\Resources\Memberships\Pages\ListMemberships; use App\Filament\Resources\Memberships\Schemas\MembershipForm; use App\Filament\Resources\Memberships\Tables\MembershipsTable; +use App\Filament\Resources\Memberships\Widgets\MembershipsChart; use App\Models\Membership; use BackedEnum; use Filament\Resources\Resource; @@ -57,4 +58,11 @@ class MembershipResource extends Resource { return Membership::getAttributeLabel('memberships'); } + + public static function getWidgets(): array + { + return [ + MembershipsChart::class, + ]; + } } diff --git a/app/Filament/Resources/Memberships/Schemas/MembershipForm.php b/app/Filament/Resources/Memberships/Schemas/MembershipForm.php index 9491ed1..bc589b5 100644 --- a/app/Filament/Resources/Memberships/Schemas/MembershipForm.php +++ b/app/Filament/Resources/Memberships/Schemas/MembershipForm.php @@ -4,11 +4,9 @@ namespace App\Filament\Resources\Memberships\Schemas; use App\Models\Membership; use App\Models\Service; -use App\Models\User; use Filament\Actions\Action; -use Filament\Support\Facades\FilamentView; +use Filament\Forms\Components\CheckboxList; use Filament\Forms\Components\DatePicker; -use Filament\Forms\Components\Placeholder; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; @@ -67,14 +65,22 @@ class MembershipForm ->columns(2), Section::make('Services') - ->schema(function () { + ->schema([ + CheckboxList::make('services') + ->label('Services activés') + ->helperText('Sélectionne les services que ce membre peut utiliser.') + ->options(Service::all()->pluck('name', 'id')) + ->relationship('services', 'name') + ->columns(2) + ]) + /*->schema(function () { return Service::all()->map(function ($service) { return Toggle::make("services_sync.{$service->id}") ->label($service->name) ->default(false) ->helperText("Active ou désactive le service {$service->name}"); })->toArray(); - }) + })*/ ]) ->columnSpan(3), diff --git a/app/Models/Service.php b/app/Models/Service.php index 10487f5..4d84655 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -3,6 +3,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; class Service extends Model { @@ -18,4 +19,9 @@ class Service extends Model { return __('services.fields.' . $attribute); } + + public function memberships() : BelongsToMany + { + return $this->belongsToMany(Membership::class, 'services_memberships', 'service_id', 'membership_id'); + } }