feat: add Projects settings with sub-locations and cascading dropdowns in purchase request modal

- Migration: add project_id FK to settings_locations
- Models: ProjectSetting hasMany Location, Location belongsTo ProjectSetting
- Settings: /settings/projects page — manage projects and their sub-locations (two-panel UI)
- Sidebar: Projects nav item under Settings group
- Routes: 7 new settings/projects routes (Admin only)
- Modal: project_name and location fields now cascading dropdowns populated from settings_projects/settings_locations

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
ghassanandClaude Sonnet 4.6 committed 2026-05-25 11:31:12 +03:00
1 parent 75e4890a08
commit 7f8ae898d5
9 files changed
+696 -4

No files matched your search

+6 -1
View File
@@ -8,7 +8,7 @@ class Location extends Model
{
protected $table = 'settings_locations';
protected $fillable = ['name', 'is_active'];
protected $fillable = ['name', 'project_id', 'is_active'];
protected $casts = ['is_active' => 'boolean'];
@@ -16,4 +16,9 @@ class Location extends Model
{
return $query->where('is_active', true);
}
public function project(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(\App\Models\Settings\ProjectSetting::class, 'project_id');
}
}
+5
View File
@@ -16,4 +16,9 @@ class ProjectSetting extends Model
{
return $query->where('is_active', true);
}
public function locations(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(\App\Models\Settings\Location::class, 'project_id');
}
}