Filament moderne (groupes nav, 4 charts, filtres/badges) + Filament Shield (rôles/permissions) + noms exos localisés dans routines
Build & Deploy / build (push) Successful in 19s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-19 05:09:29 +02:00
co-authored by Claude Opus 4.8
parent 3ec14f219b
commit 52fab9fbe5
47 changed files with 1644 additions and 292 deletions
@@ -1,26 +0,0 @@
<?php
namespace App\Filament\Resources\Achievements\Schemas;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class AchievementForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
Select::make('user_id')
->relationship('user', 'name')
->required(),
TextInput::make('key')
->required(),
DateTimePicker::make('earned_at')
->required(),
TextInput::make('meta'),
]);
}
}
@@ -0,0 +1,32 @@
<?php
namespace App\Filament\Resources\Achievements\Schemas;
use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Schema;
/**
* Fiche de consultation d'un badge débloqué (modal "Voir") : posé par StreakService
* aux paliers de streak, jamais créé ni modifié à la main depuis le back-office.
*/
class AchievementInfolist
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextEntry::make('user.name')
->label('Utilisateur'),
TextEntry::make('key')
->label('Badge')
->badge(),
TextEntry::make('earned_at')
->label('Obtenu le')
->dateTime(),
TextEntry::make('meta')
->label('Métadonnées')
->columnSpanFull()
->placeholder('—'),
]);
}
}