From db298b39c2fab985a2d9169fcb3f4b49235fdcee Mon Sep 17 00:00:00 2001 From: Lupu Gheorghe Date: Mon, 23 Oct 2023 12:56:30 +0300 Subject: [PATCH] fix --- app/Enums/BadgeType.php | 23 +++++++++++++++++++ .../Resources/BadgeCategoryResource.php | 2 +- app/Filament/Resources/BadgeResource.php | 14 +++++++++++ app/Models/Badge.php | 8 +++++++ database/factories/UserFactory.php | 2 +- .../2023_07_04_005236_create_badges_table.php | 2 ++ lang/ro/badge.php | 5 ++++ 7 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 app/Enums/BadgeType.php diff --git a/app/Enums/BadgeType.php b/app/Enums/BadgeType.php new file mode 100644 index 00000000..1877ec89 --- /dev/null +++ b/app/Enums/BadgeType.php @@ -0,0 +1,23 @@ +filters([ TernaryFilter::make('has_badges') - ->label(__('badges.filters.has_badges')) + ->label(__('badge.filters.has_badges')) ->queries( true: fn (Builder $query) => $query->whereHas('badges'), false: fn (Builder $query) => $query->whereDoesntHave('badges') diff --git a/app/Filament/Resources/BadgeResource.php b/app/Filament/Resources/BadgeResource.php index ef4e347e..787b1260 100644 --- a/app/Filament/Resources/BadgeResource.php +++ b/app/Filament/Resources/BadgeResource.php @@ -4,6 +4,7 @@ namespace App\Filament\Resources; +use App\Enums\BadgeType; use App\Filament\Resources\BadgeResource\Pages; use App\Filament\Resources\BadgeResource\RelationManagers\UsersRelationManager; use App\Models\Badge; @@ -67,6 +68,15 @@ public static function form(Form $form): Form ->relationship('badgeCategory', 'title') ->required(), + Select::make('type') + ->label(__('badge.type')) + ->inlineLabel() + ->columnSpanFull() + ->options(BadgeType::options()) + ->default(BadgeType::MANUAL) + ->disabled() + ->required(), + Textarea::make('description') ->label(__('badge.description')) ->inlineLabel() @@ -95,6 +105,10 @@ public static function table(Table $table): Table ->label(__('badge.title')) ->searchable() ->sortable(), + TextColumn::make('type') + ->formatStateUsing(fn (Badge $record) => $record->type->label()) + ->label(__('badge.type')) + ->sortable(), TextColumn::make('users_count') ->label(__('badge.users_count')) diff --git a/app/Models/Badge.php b/app/Models/Badge.php index 627791cc..75e234d7 100644 --- a/app/Models/Badge.php +++ b/app/Models/Badge.php @@ -4,6 +4,7 @@ namespace App\Models; +use App\Enums\BadgeType; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -22,6 +23,11 @@ class Badge extends Model implements HasMedia protected $fillable = [ 'title', 'description', + 'type' + ]; + + protected $casts =[ + 'type' => BadgeType::class ]; protected $appends = [ @@ -51,8 +57,10 @@ public function getImageAttribute(): string { return $this->getFirstMediaUrl(conversionName: 'thumb'); } + public function badgeCategory(): BelongsTo { return $this->belongsTo(BadgeCategory::class); } + } diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 3568e6c2..8896a35f 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -65,7 +65,7 @@ public function organizationAdmin(): static public function ngoManager(): static { return $this->state(fn (array $attributes) => [ - // 'role' => UserRole::ngo_manager, + 'role' => UserRole::MANAGER, ]); } diff --git a/database/migrations/2023_07_04_005236_create_badges_table.php b/database/migrations/2023_07_04_005236_create_badges_table.php index b10aaf82..1c5afc34 100644 --- a/database/migrations/2023_07_04_005236_create_badges_table.php +++ b/database/migrations/2023_07_04_005236_create_badges_table.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use App\Enums\BadgeType; use App\Models\Badge; use App\Models\BadgeCategory; use App\Models\User; @@ -21,6 +22,7 @@ public function up(): void $table->timestamps(); $table->foreignIdFor(BadgeCategory::class)->constrained()->cascadeOnDelete(); $table->string('title'); + $table->string('type')->default(BadgeType::MANUAL->value); $table->text('description')->nullable(); }); diff --git a/lang/ro/badge.php b/lang/ro/badge.php index 7a04f998..841cf324 100644 --- a/lang/ro/badge.php +++ b/lang/ro/badge.php @@ -8,6 +8,7 @@ 'description' => 'Descriere badge', 'image' => 'Imagine badge', 'users_count' => 'Număr de utilizatori cu accest badge', + 'type' => 'Tip de badge', 'donor_count' => ':count donatori cu accest badge', @@ -34,4 +35,8 @@ 'singular' => 'Badge', 'plural' => 'Badge-uri', ], + 'types' => [ + 'automated' => 'Automat', + 'manual' => 'Manual', + ], ];