feat(Reminder process): add 4 reminder phases for membership (Retzien)
All checks were successful
Deploy Roxane to Preprod / deploy (push) Successful in 1m21s

This commit is contained in:
2026-09-06 17:03:14 +02:00
parent 98893924ac
commit ba11ee7120
61 changed files with 967 additions and 162 deletions

View File

@@ -5,7 +5,6 @@ namespace App\Filament\Resources\MemberGroups;
use App\Filament\Resources\MemberGroups\Pages\CreateMemberGroup;
use App\Filament\Resources\MemberGroups\Pages\EditMemberGroup;
use App\Filament\Resources\MemberGroups\Pages\ListMemberGroups;
use App\Filament\Resources\MemberGroups\RelationManagers\MemberRelationManager;
use App\Filament\Resources\MemberGroups\RelationManagers\MembersRelationManager;
use App\Filament\Resources\MemberGroups\Schemas\MemberGroupForm;
use App\Filament\Resources\MemberGroups\Tables\MemberGroupsTable;

View File

@@ -17,14 +17,13 @@ class MemberGroupForm
->components([
Section::make(fn (?MemberGroup $record) => $record?->name ?? MemberGroup::getAttributeLabel('name'))
->headerActions([
Action::make('view-members')
Action::make('view-members')
->icon('heroicon-o-users')
->label(MemberGroup::getAttributeLabel('view_members'))
->action(function (MemberGroup $record) {
return redirect()->route('filament.admin.resources.members.index', [ 'filters[group][name][values][0]' => $record->id]);
return redirect()->route('filament.admin.resources.members.index', ['filters[group][name][values][0]' => $record->id]);
})
->visible(fn(?MemberGroup $record) => $record !== null)
->visible(fn (?MemberGroup $record) => $record !== null),
])
->schema([

View File

@@ -6,11 +6,9 @@ use App\Models\Member;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Filters\SelectFilter;
use Illuminate\Database\Eloquent\Builder;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
class MembersTable
@@ -83,7 +81,7 @@ class MembersTable
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
])
]),
]);
}
}

View File

@@ -16,7 +16,7 @@ class MemberCount extends StatsOverviewWidget
->description(Member::getAttributeLabel('widgets.stats.description'))
->descriptionIcon('heroicon-o-user-group', IconPosition::Before)
->chart([7, 2, 10, 3, 15, 4, 17])
->color('primary')
->color('primary'),
];
}
}

View File

@@ -3,6 +3,7 @@
namespace App\Filament\Resources\Memberships\Schemas;
use App\Enums\IspconfigType;
use App\Filament\Actions\SendRenewalReminderAction;
use App\Filament\Actions\ServiceToggleAction;
use App\Models\ListmonkMember;
use App\Models\Membership;
@@ -261,6 +262,12 @@ class MembershipForm
->label(Membership::getAttributeLabel('end_date')),
])
->extraAttributes(['class' => 'sticky top-4 h-fit']),
Section::make('Relances')
->schema([
SendRenewalReminderAction::make(),
])
->extraAttributes(['class' => 'sticky top-4 h-fit']),
])
->columnSpan(1),
])

View File

@@ -23,9 +23,9 @@ class PackageForm
])
->schema([
TextInput::make('name')
->label(Package::getAttributeLabel('name'))
->required()
->default(null),
->label(Package::getAttributeLabel('name'))
->required()
->default(null),
TextInput::make('identifier')
->label(Package::getAttributeLabel('identifier'))
->required()
@@ -34,7 +34,7 @@ class PackageForm
Textarea::make('description')
->label(Package::getAttributeLabel('description'))
->default(null),
])
]),
]);
}

View File

@@ -41,7 +41,7 @@ class PackagesTable
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
//
//
])
->recordActions([
EditAction::make(),

View File

@@ -31,7 +31,7 @@ class ServiceForm
TextInput::make('icon')
->label(Service::getAttributeLabel('icon'))
->default(null),
])
]),
]);
}
}

View File

@@ -19,6 +19,7 @@ class UserResource extends Resource
protected static ?string $model = User::class;
protected static string|null|\UnitEnum $navigationGroup = 'Paramètres';
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
public static function form(Schema $schema): Schema
@@ -51,6 +52,7 @@ class UserResource extends Resource
{
return User::getAttributeLabel('user');
}
public static function getPluralModelLabel(): string
{
return User::getAttributeLabel('users');