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\Pages\ListMembers;
|
||||||
use App\Filament\Resources\Members\Schemas\MemberForm;
|
use App\Filament\Resources\Members\Schemas\MemberForm;
|
||||||
use App\Filament\Resources\Members\Tables\MembersTable;
|
use App\Filament\Resources\Members\Tables\MembersTable;
|
||||||
|
use App\Filament\Resources\Members\Widgets\MemberCount;
|
||||||
use App\Models\Member;
|
use App\Models\Member;
|
||||||
use BackedEnum;
|
use BackedEnum;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
@@ -58,4 +59,11 @@ class MemberResource extends Resource
|
|||||||
return Member::getAttributeLabel('members');
|
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\Pages\ListMemberships;
|
||||||
use App\Filament\Resources\Memberships\Schemas\MembershipForm;
|
use App\Filament\Resources\Memberships\Schemas\MembershipForm;
|
||||||
use App\Filament\Resources\Memberships\Tables\MembershipsTable;
|
use App\Filament\Resources\Memberships\Tables\MembershipsTable;
|
||||||
|
use App\Filament\Resources\Memberships\Widgets\MembershipsChart;
|
||||||
use App\Models\Membership;
|
use App\Models\Membership;
|
||||||
use BackedEnum;
|
use BackedEnum;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
@@ -57,4 +58,11 @@ class MembershipResource extends Resource
|
|||||||
{
|
{
|
||||||
return Membership::getAttributeLabel('memberships');
|
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\Membership;
|
||||||
use App\Models\Service;
|
use App\Models\Service;
|
||||||
use App\Models\User;
|
|
||||||
use Filament\Actions\Action;
|
use Filament\Actions\Action;
|
||||||
use Filament\Support\Facades\FilamentView;
|
use Filament\Forms\Components\CheckboxList;
|
||||||
use Filament\Forms\Components\DatePicker;
|
use Filament\Forms\Components\DatePicker;
|
||||||
use Filament\Forms\Components\Placeholder;
|
|
||||||
use Filament\Forms\Components\Select;
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Forms\Components\TextInput;
|
use Filament\Forms\Components\TextInput;
|
||||||
use Filament\Forms\Components\Toggle;
|
use Filament\Forms\Components\Toggle;
|
||||||
@@ -67,14 +65,22 @@ class MembershipForm
|
|||||||
->columns(2),
|
->columns(2),
|
||||||
|
|
||||||
Section::make('Services')
|
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 Service::all()->map(function ($service) {
|
||||||
return Toggle::make("services_sync.{$service->id}")
|
return Toggle::make("services_sync.{$service->id}")
|
||||||
->label($service->name)
|
->label($service->name)
|
||||||
->default(false)
|
->default(false)
|
||||||
->helperText("Active ou désactive le service {$service->name}");
|
->helperText("Active ou désactive le service {$service->name}");
|
||||||
})->toArray();
|
})->toArray();
|
||||||
})
|
})*/
|
||||||
|
|
||||||
])
|
])
|
||||||
->columnSpan(3),
|
->columnSpan(3),
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
|
|
||||||
class Service extends Model
|
class Service extends Model
|
||||||
{
|
{
|
||||||
@@ -18,4 +19,9 @@ class Service extends Model
|
|||||||
{
|
{
|
||||||
return __('services.fields.' . $attribute);
|
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