feat(Service & Membership): checkbox and sync
This commit is contained in:
@@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user