From 94f1a06b440c5b2bdb8869962844b6d7fdbece1d Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 29 Jan 2026 21:38:08 +0700 Subject: [PATCH] feat: Filter location and sub-location selections in issue management forms to only display active records. --- .agent/workflows/commit.md | 4 ---- .../IssueManagements/Schemas/IssueManagementForm.php | 4 ++-- app/Models/Location.php | 8 ++++++++ app/Models/SubLocation.php | 8 ++++++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.agent/workflows/commit.md b/.agent/workflows/commit.md index 3386851..f5d2a41 100644 --- a/.agent/workflows/commit.md +++ b/.agent/workflows/commit.md @@ -19,8 +19,4 @@ ### Steps: 3. **Generate & Commit**: Generate a professional message following [Conventional Commits](https://www.conventionalcommits.org/) and execute the commit. ```bash git commit -m "" - ``` -4. **Push**: Optionally push the changes. - ```bash - git push ``` \ No newline at end of file diff --git a/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php b/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php index 844b619..efcd924 100644 --- a/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php +++ b/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php @@ -35,7 +35,7 @@ public static function configure(Schema $schema): Schema ->schema([ Select::make('location_id') ->label('Lokus') - ->relationship('location', 'name') + ->relationship('location', 'name', fn (Builder $query): Builder => $query->active()) ->searchable() ->preload() ->live() @@ -46,7 +46,7 @@ public static function configure(Schema $schema): Schema Select::make('sub_location_id') ->label('Sub Lokus') - ->relationship('subLocation', 'name', fn (Builder $query, Get $get): Builder => $query->where('location_id', $get('location_id'))) + ->relationship('subLocation', 'name', fn (Builder $query, Get $get): Builder => $query->active()->where('location_id', $get('location_id'))) ->searchable() ->preload() ->required(), diff --git a/app/Models/Location.php b/app/Models/Location.php index d6d328c..7803ed2 100644 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -3,6 +3,8 @@ namespace App\Models; use App\Enums\IsActive; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -23,6 +25,12 @@ protected function casts(): array ]; } + #[Scope] + protected function active(Builder $query): void + { + $query->where('is_active', IsActive::ACTIVE); + } + public function issueManagements(): HasMany { return $this->hasMany(IssueManagement::class); diff --git a/app/Models/SubLocation.php b/app/Models/SubLocation.php index dd0b117..49a3b85 100644 --- a/app/Models/SubLocation.php +++ b/app/Models/SubLocation.php @@ -3,6 +3,8 @@ namespace App\Models; use App\Enums\IsActive; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -24,6 +26,12 @@ protected function casts(): array ]; } + #[Scope] + protected function active(Builder $query): void + { + $query->where('is_active', IsActive::ACTIVE); + } + public function issueManagements(): HasMany { return $this->hasMany(IssueManagement::class);