This commit is contained in:
salam committed 2026-05-11 15:29:32 +02:00
1 parent 883e947399
commit b33513bbce
2 files changed
+37 -9

No files matched your search

@@ -62,6 +62,11 @@ class ProjekteForm
'Als Platzhalter "###INTERNER_NAME###"', 'Als Platzhalter "###INTERNER_NAME###"',
]) ])
->required(), ->required(),
Select::make('status')
->selectablePlaceholder(false)
->options(ProjektStatus::class)
->required(),
])->columns(2), ])->columns(2),
Tab::make('Ort & Datum') Tab::make('Ort & Datum')
->icon('phosphor-calendar-check') ->icon('phosphor-calendar-check')
@@ -3,9 +3,12 @@
namespace App\Filament\Resources\Projektes\Tables; namespace App\Filament\Resources\Projektes\Tables;
use App\Enums\ProjektStatus; use App\Enums\ProjektStatus;
use App\Models\Auftraggeber;
use App\Models\Gutachter;
use App\Models\Projekte;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Tables\Columns\SelectColumn;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Support\HtmlString; use Illuminate\Support\HtmlString;
@@ -29,18 +32,38 @@ class ProjektesTable
TextColumn::make('gutachter.company'), TextColumn::make('gutachter.company'),
TextColumn::make('auftraggeber.company'), TextColumn::make('auftraggeber.company'),
TextColumn::make('ort'), TextColumn::make('ort'),
TextColumn::make('erstellung'), TextColumn::make('erstellung')->sortable(),
SelectColumn::make('status')->options(ProjektStatus::class),
]) ])
->striped()
->defaultSort('erstellung', direction: 'desc')
->persistSortInSession()
->filters([ ->filters([
SelectFilter::make('status') SelectFilter::make('status')
->options(ProjektStatus::class), ->options(ProjektStatus::class),
SelectFilter::make('gutachter') SelectFilter::make('gutachter_id')
->relationship('gutachter', 'company'), ->label('Gutachter')
SelectFilter::make('auftraggeber') ->searchable()
->relationship('auftraggeber', 'company'), ->preload()
]) ->options(function () {
$res = Projekte::where('konto_id', auth()->user()->konto_id)
->groupBy('gutachter_id')
->pluck('gutachter_id')->toArray();
return Gutachter::query()->whereIn('id', $res)->orderBy('company')->pluck('company', 'id');
}),
SelectFilter::make('auftraggeber_id')
->label('Auftraggeber')
->searchable()
->preload()
->options(function () {
$res = Projekte::where('konto_id', auth()->user()->konto_id)
->groupBy('auftraggeber_id')
->pluck('auftraggeber_id')->toArray();
return Auftraggeber::query()->whereIn('id', $res)->orderBy('company')->pluck('company', 'id');
}),
], FiltersLayout::AboveContent)
->deferFilters(false)
->recordActions([ ->recordActions([
EditAction::make()->iconButton(), EditAction::make()->iconButton(),
]); ]);