From ddbf171881099df0f311b68a60267757e0d41340 Mon Sep 17 00:00:00 2001 From: salam Date: Fri, 28 Nov 2025 13:49:54 +0100 Subject: [PATCH] Beistrich bei Eingabe statt Punkt --- CHANGES.md | 4 +- SNIPPETS.md | 26 ++ app/Actions/Generate/Pdf/Deckblatt.php | 2 +- .../Gutachters/Schemas/GutachterForm.php | 15 +- ...ojektAllgemeinflaechensRelationManager.php | 19 +- .../ProjektMethodesRelationManager.php | 102 ++-- .../ProjektObjekteImDetailRelationManager.php | 40 +- .../ProjektObjekteRelationManager.php | 1 + app/Models/ProjektMethode.php | 1 + bootstrap/cache/routes-v7.php | 42 +- composer.lock | 437 +++++++++--------- ...5_09_05_131323_create_gutachter_tables.php | 6 +- ...25_09_24_131440_create_projektes_table.php | 6 +- ...reate_projekt_objekte_im_details_table.php | 2 +- resources/css/pdf-download.css | 9 +- 15 files changed, 407 insertions(+), 305 deletions(-) create mode 100644 SNIPPETS.md diff --git a/CHANGES.md b/CHANGES.md index c994f31..6a120eb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -13,12 +13,12 @@ https://www.markdownguide.org/basic-syntax/ > 3.30 Tabellenformatierung wie im alten > bei Stellplätze 3.30 Typ im Header, Top Nummer und Geschoss links bündig > §6 Tabelle linke Linie fehlt +> Beistrich bei Eingabe statt Punkt -- Beistrich bei Eingabe statt Punkt +- Überschrift nur im Inhaltsverzeichnis anzeigen - Inhaltsverzeichnis Textblock - Gutachten Pxxx WEG 2002 - generieren wirklich? -- Überschrift nur im Inhaltsverzeichnis anzeigen - Schriftgröße Hanno Logo - Räume Methoden Aufstellungen Evaluieren - Farbe excel Aufstellung heller \ No newline at end of file diff --git a/SNIPPETS.md b/SNIPPETS.md new file mode 100644 index 0000000..297f3a9 --- /dev/null +++ b/SNIPPETS.md @@ -0,0 +1,26 @@ +TextColumn::make('flaeche') + ->numeric( + decimalPlaces: 2, + decimalSeparator: ',', + thousandsSeparator: '.' + ) + // ->updateStateUsing(function ($record, $state) { + // return $record->update(['flaeche' => str_replace(',', '.', $state)]); + // }) + // ->extraInputAttributes(['onClick' => 'this.select()']) + ->summarize(Sum::make()->label('Gesammt')->numeric( + decimalPlaces: 2, + )->suffix(new HtmlString(' m²'))) + ->suffix(new HtmlString(' m²')) + ->width('2rem') + // ->rules(['required']) + ->alignment('right') + ->label('Fläche') + ->searchable(), +// ->validationMessages([ +// 'required' => 'Die Eingabe einer Fläche ist erforderlich.', +// 'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.', +// ]) +// ->afterStateUpdated(function (Component $livewire) { +// $livewire->dispatch('refreshProjektAllgemeinflaechen'); +// }), \ No newline at end of file diff --git a/app/Actions/Generate/Pdf/Deckblatt.php b/app/Actions/Generate/Pdf/Deckblatt.php index ad107d5..4f869bc 100644 --- a/app/Actions/Generate/Pdf/Deckblatt.php +++ b/app/Actions/Generate/Pdf/Deckblatt.php @@ -14,7 +14,7 @@ class Deckblatt $html = '
'; $html .= '
'; if (PdfGenerator::$gutachter->logo && PdfGenerator::$gutachter->logo_anzeigen) { - $html .= '
'; + $html .= '
'; } if (PdfGenerator::$gutachter->referenz_formatting && PdfGenerator::$gutachter->text_anzeigen) { $str = RichContentRenderer::make(PdfGenerator::$gutachter->referenz_formatting)->toHtml(); diff --git a/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php b/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php index c1d6312..b30648f 100644 --- a/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php +++ b/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php @@ -4,6 +4,7 @@ namespace App\Filament\Resources\Gutachters\Schemas; use App\Actions\Helper\ShowHelp; use Filament\Forms\Components\Checkbox; +use Filament\Forms\Components\ColorPicker; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Radio; use Filament\Forms\Components\RichEditor; @@ -83,10 +84,12 @@ class GutachterForm ]), TextInput::make('logo_height') ->hidden(fn (Get $get): bool => ! $get('logo_anzeigen')) + ->belowLabel('190mm ist die halbe Breite der Seite') ->numeric() + ->default(70) ->minValue(20) ->maxValue(100) - ->label('Logo Höhe') + ->label('Logo Breite') ->required() ->suffix('mm'), ])->columns(2), @@ -142,6 +145,16 @@ class GutachterForm ->acceptedFileTypes(['image/jpeg', 'image/png', 'image/webp']) ->visibility('public'), ])->columns(2), + Tab::make('Farben') + ->icon('phosphor-palette') + ->schema([ + ColorPicker::make('deckblatt_bg')->label('Deckblatt') + ->belowContent('Farbe des Hintergrundes'), + ColorPicker::make('schmuckfarbe_header')->label('Überschriften') + ->belowContent('Farbe des Hintergrundes'), + ColorPicker::make('farbe_borders')->label('Rahmen') + ->belowContent('Farbe von Rahmen und Begrenzungen'), + ])->columns(2), ])->columnSpanFull(), ]); } diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php index ef1e7c8..42ef6d7 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php @@ -12,7 +12,6 @@ use Filament\Resources\RelationManagers\RelationManager; use Filament\Schemas\Schema; use Filament\Tables\Columns\Summarizers\Sum; use Filament\Tables\Columns\TextColumn; -use Filament\Tables\Columns\TextInputColumn; use Filament\Tables\Table; use Illuminate\Support\HtmlString; use Livewire\Component; @@ -60,24 +59,20 @@ class ProjektAllgemeinflaechensRelationManager extends RelationManager ->columns([ TextColumn::make('geschoss')->searchable(), TextColumn::make('raumart')->searchable(), - TextInputColumn::make('flaeche') - ->extraInputAttributes(['onClick' => 'this.select()']) + TextColumn::make('flaeche') + ->numeric( + decimalPlaces: 2, + decimalSeparator: ',', + thousandsSeparator: '.' + ) ->summarize(Sum::make()->label('Gesammt')->numeric( decimalPlaces: 2, )->suffix(new HtmlString(' m²'))) ->suffix(new HtmlString(' m²')) ->width('2rem') - ->rules(['required', 'flaeche' => 'decimal:2']) ->alignment('right') ->label('Fläche') - ->searchable() - ->validationMessages([ - 'required' => 'Die Eingabe einer Fläche ist erforderlich.', - 'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.', - ]) - ->afterStateUpdated(function (Component $livewire) { - $livewire->dispatch('refreshProjektAllgemeinflaechen'); - }), + ->searchable(), ]) ->headerActions([ CreateAction::make() diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php index 1991098..a9cc2aa 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php @@ -10,10 +10,12 @@ use App\Models\ProjektObjekteImDetail; use Filament\Actions\Action; use Filament\Actions\BulkAction; use Filament\Actions\BulkActionGroup; +use Filament\Actions\EditAction; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Notifications\Notification; use Filament\Resources\RelationManagers\RelationManager; +use Filament\Schemas\Schema; use Filament\Tables\Columns\SelectColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextInputColumn; @@ -37,51 +39,93 @@ class ProjektMethodesRelationManager extends RelationManager protected static ?string $pluralModelLabel = 'Raum Methoden'; - public function table(Table $table): Table + public function form(Schema $schema): Schema { - return $table - ->striped() - ->recordTitleAttribute('raumart') - ->columns([ - SelectColumn::make('methode_id') + return $schema + ->components([ + Select::make('methode_id') ->label('Methoden') - ->optionsRelationship('methode', 'name') - ->preloadOptions() + ->options(Methode::pluck('name', 'id')) ->rules(['required']) ->afterStateUpdated(function (Component $livewire) { $livewire->dispatch('refreshMethods'); })->validationMessages([ 'required' => 'Die Eingabe einer Methode ist erforderlich.', ]), - SelectColumn::make('aufstellung_id') + Select::make('aufstellung_id') ->label('Aufstellung') - ->optionsRelationship('aufstellung', 'name') - ->preloadOptions() - ->rules(['required']) + ->options(Aufstellung::pluck('name', 'id')) ->afterStateUpdated(function (Component $livewire) { $livewire->dispatch('refreshMethods'); - })->validationMessages([ - 'required' => 'Die Eingabe einer Aufstellung ist erforderlich.', + }), + TextInput::make('faktor') + ->suffixIcon('phosphor-function') + ->numeric() + ->label('Fläche') + ->rules(['required']) + ->validationMessages([ + 'required' => 'Die Eingabe einer Fläche ist erforderlich.', ]), + ])->columns(3); + } + + public function table(Table $table): Table + { + return $table + ->striped() + ->recordTitleAttribute('raumart') + ->columns([ + TextColumn::make('methode.name') + ->searchable(), + TextColumn::make('aufstellung.name') + ->searchable(), + // SelectColumn::make('methode_id') + // ->label('Methoden') + // ->optionsRelationship('methode', 'name') + // ->preloadOptions() + // ->rules(['required']) + // ->afterStateUpdated(function (Component $livewire) { + // $livewire->dispatch('refreshMethods'); + // })->validationMessages([ + // 'required' => 'Die Eingabe einer Methode ist erforderlich.', + // ]), + // SelectColumn::make('aufstellung_id') + // ->label('Aufstellung') + // ->optionsRelationship('aufstellung', 'name') + // ->preloadOptions() + // ->rules(['required']) + // ->afterStateUpdated(function (Component $livewire) { + // $livewire->dispatch('refreshMethods'); + // })->validationMessages([ + // 'required' => 'Die Eingabe einer Aufstellung ist erforderlich.', + // ]), TextColumn::make('raumart') ->searchable(), - TextInputColumn::make('faktor') - ->extraInputAttributes(['onClick' => 'this.select()']) - ->suffixIcon('phosphor-function') - ->width('1rem') - ->rules(['required', 'faktor' => 'decimal:0,2']) + TextColumn::make('faktor') + ->numeric(2, ',') + ->icon('phosphor-function') ->searchable() - ->afterStateUpdated(function ($record) { - $objects = ProjektObjekteImDetail::where('projekte_id', $record['projekte_id'])->where('raumart', $record['raumart'])->get(); - foreach ($objects as $value) { - $nutzwert = round($record['faktor'] * $value->flaeche, 2); - ProjektObjekteImDetail::where('id', $value->id)->update(['nutzwert' => $nutzwert]); - } - })->validationMessages([ - 'required' => 'Die Eingabe eines Faktors ist erforderlich.', - 'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.', - ]), + ->label('Faktor'), + // TextInputColumn::make('faktor') + // ->extraInputAttributes(['onClick' => 'this.select()']) + // ->suffixIcon('phosphor-function') + // ->width('1rem') + // ->rules(['required', 'faktor' => 'decimal:0,2']) + // ->searchable() + // ->afterStateUpdated(function ($record) { + // $objects = ProjektObjekteImDetail::where('projekte_id', $record['projekte_id'])->where('raumart', $record['raumart'])->get(); + // foreach ($objects as $value) { + // $nutzwert = round($record['faktor'] * $value->flaeche, 2); + // ProjektObjekteImDetail::where('id', $value->id)->update(['nutzwert' => $nutzwert]); + // } + // })->validationMessages([ + // 'required' => 'Die Eingabe eines Faktors ist erforderlich.', + // 'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.', + // ]), + ]) + ->recordActions([ + EditAction::make()->iconButton(), ]) ->filters([ SelectFilter::make('methodes') diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php index 5d64363..fd0d191 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php @@ -52,8 +52,9 @@ class ProjektObjekteImDetailRelationManager extends RelationManager ->suffixIcon('phosphor-building'), TextInput::make('flaeche') ->suffix(new HtmlString(' m²')) - ->rules(['required']) + ->numeric() ->label('Fläche') + ->rules(['required', 'flaeche' => 'decimal:2']) ->validationMessages([ 'required' => 'Die Eingabe einer Fläche ist erforderlich.', 'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.', @@ -79,31 +80,42 @@ class ProjektObjekteImDetailRelationManager extends RelationManager TextColumn::make('geschoss')->searchable(), TextColumn::make('raumart')->searchable()->sortable(), TextColumn::make('methode.faktor') + ->numeric(2, ',') ->icon('phosphor-function') ->searchable() ->label('Faktor'), - TextInputColumn::make('flaeche') - ->extraInputAttributes(['onClick' => 'this.select()']) + TextColumn::make('flaeche') + ->numeric(2, ',', '.') ->summarize(Sum::make()->label('Gesammt')->numeric( decimalPlaces: 2, )->suffix(new HtmlString(' m²'))) ->suffix(new HtmlString(' m²')) ->width('2rem') ->alignment('right') - ->rules(['required']) ->label('Fläche') - ->searchable() - ->afterStateUpdated(function ($record, Component $livewire) { - $object = ProjektObjekteImDetail::find($record['id']); - $object->nutzwert = round($record->methode->faktor * $object->flaeche, 2); - $object->save(); + ->searchable(), + // TextInputColumn::make('flaeche') + // ->extraInputAttributes(['onClick' => 'this.select()']) + // ->summarize(Sum::make()->label('Gesammt')->numeric( + // decimalPlaces: 2, + // )->suffix(new HtmlString(' m²'))) + // ->suffix(new HtmlString(' m²')) + // ->width('2rem') + // ->alignment('right') + // ->rules(['required']) + // ->label('Fläche') + // ->searchable() + // ->afterStateUpdated(function ($record, Component $livewire) { + // $object = ProjektObjekteImDetail::find($record['id']); + // $object->nutzwert = round($record->methode->faktor * $object->flaeche, 2); + // $object->save(); - $livewire->dispatch('refreshProjektObjekteImDetail'); + // $livewire->dispatch('refreshProjektObjekteImDetail'); - })->validationMessages([ - 'required' => 'Die Eingabe einer Fläche ist erforderlich.', - 'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.', - ]), + // })->validationMessages([ + // 'required' => 'Die Eingabe einer Fläche ist erforderlich.', + // 'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.', + // ]), TextColumn::make('nutzwert') ->alignCenter() ->summarize(Sum::make()->label('Gesammt')) diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php index 7e55a5f..8ea23b6 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php @@ -216,6 +216,7 @@ class ProjektObjekteRelationManager extends RelationManager $livewire->dispatch('refreshOrientierung'); }), TextColumn::make('nutzwert') + ->numeric(2, ',', '.') ->extraHeaderAttributes([ 'style' => 'position: sticky; right: 0; z-index: 1;', 'class' => 'bg-gray-50 dark:bg-gray-900 border-x border-gray-200 dark:border-gray-800', diff --git a/app/Models/ProjektMethode.php b/app/Models/ProjektMethode.php index 876164d..32bd42f 100644 --- a/app/Models/ProjektMethode.php +++ b/app/Models/ProjektMethode.php @@ -9,6 +9,7 @@ class ProjektMethode extends Model protected $fillable = [ 'projekte_id', 'methode_id', + 'aufstellung_id', 'geschoss', 'raumart', 'flaeche', diff --git a/bootstrap/cache/routes-v7.php b/bootstrap/cache/routes-v7.php index 7c9f54f..c3fe0dd 100644 --- a/bootstrap/cache/routes-v7.php +++ b/bootstrap/cache/routes-v7.php @@ -531,7 +531,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::3o8r6SFhHYJXudVU', + '_route' => 'generated::3HnSsjNO6SUYgkAU', ), 1 => NULL, 2 => @@ -551,7 +551,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::OmrEE69cygLxgFKH', + '_route' => 'generated::FxflLIZnLNah23E5', ), 1 => NULL, 2 => @@ -609,7 +609,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::scp8kliSZRCopV7D', + '_route' => 'generated::xophVDUDP3Ckd8II', ), 1 => NULL, 2 => @@ -629,7 +629,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::38LWocxhMLlc4pNK', + '_route' => 'generated::dbTuyU4My6WKl7DA', ), 1 => NULL, 2 => @@ -649,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::PVoorV8JM5zFb8Be', + '_route' => 'generated::pJrXrL1Kw7qoAQE4', ), 1 => NULL, 2 => @@ -669,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::CLZkTmw90AqCSfdu', + '_route' => 'generated::Zl5xWOyHVgHC4jup', ), 1 => NULL, 2 => @@ -689,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::jdlWZ8tNhTDVD3kW', + '_route' => 'generated::GuwNLdeLMZ0usPlV', ), 1 => NULL, 2 => @@ -2738,7 +2738,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::3o8r6SFhHYJXudVU' => + 'generated::3HnSsjNO6SUYgkAU' => array ( 'methods' => array ( @@ -2750,7 +2750,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::3o8r6SFhHYJXudVU', + 'as' => 'generated::3HnSsjNO6SUYgkAU', ), 'fallback' => false, 'defaults' => @@ -2766,7 +2766,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::OmrEE69cygLxgFKH' => + 'generated::FxflLIZnLNah23E5' => array ( 'methods' => array ( @@ -2778,7 +2778,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::OmrEE69cygLxgFKH', + 'as' => 'generated::FxflLIZnLNah23E5', ), 'fallback' => false, 'defaults' => @@ -2880,7 +2880,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::scp8kliSZRCopV7D' => + 'generated::xophVDUDP3Ckd8II' => array ( 'methods' => array ( @@ -2909,7 +2909,7 @@ app('router')->setCompiledRoutes( \'exception\' => $exception, ]), status: $exception ? 500 : 200); }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f6a0000000000000000";}}', - 'as' => 'generated::scp8kliSZRCopV7D', + 'as' => 'generated::xophVDUDP3Ckd8II', ), 'fallback' => false, 'defaults' => @@ -2925,7 +2925,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::38LWocxhMLlc4pNK' => + 'generated::dbTuyU4My6WKl7DA' => array ( 'methods' => array ( @@ -2947,7 +2947,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::38LWocxhMLlc4pNK', + 'as' => 'generated::dbTuyU4My6WKl7DA', ), 'fallback' => false, 'defaults' => @@ -2963,7 +2963,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::PVoorV8JM5zFb8Be' => + 'generated::pJrXrL1Kw7qoAQE4' => array ( 'methods' => array ( @@ -2985,7 +2985,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::PVoorV8JM5zFb8Be', + 'as' => 'generated::pJrXrL1Kw7qoAQE4', ), 'fallback' => false, 'defaults' => @@ -3001,7 +3001,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::CLZkTmw90AqCSfdu' => + 'generated::Zl5xWOyHVgHC4jup' => array ( 'methods' => array ( @@ -3023,7 +3023,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::CLZkTmw90AqCSfdu', + 'as' => 'generated::Zl5xWOyHVgHC4jup', ), 'fallback' => false, 'defaults' => @@ -3039,7 +3039,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::jdlWZ8tNhTDVD3kW' => + 'generated::GuwNLdeLMZ0usPlV' => array ( 'methods' => array ( @@ -3061,7 +3061,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::jdlWZ8tNhTDVD3kW', + 'as' => 'generated::GuwNLdeLMZ0usPlV', ), 'fallback' => false, 'defaults' => diff --git a/composer.lock b/composer.lock index 52bfa3f..1175ad1 100644 --- a/composer.lock +++ b/composer.lock @@ -6123,16 +6123,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.14", + "version": "v0.12.15", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "95c29b3756a23855a30566b745d218bee690bef2" + "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/95c29b3756a23855a30566b745d218bee690bef2", - "reference": "95c29b3756a23855a30566b745d218bee690bef2", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38953bc71491c838fcb6ebcbdc41ab7483cd549c", + "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c", "shasum": "" }, "require": { @@ -6196,9 +6196,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.14" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.15" }, - "time": "2025-10-27T17:15:31+00:00" + "time": "2025-11-28T00:00:14+00:00" }, { "name": "ralouphie/getallheaders", @@ -7037,16 +7037,16 @@ }, { "name": "symfony/clock", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", - "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110", + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110", "shasum": "" }, "require": { @@ -7091,7 +7091,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.3.0" + "source": "https://github.com/symfony/clock/tree/v7.4.0" }, "funding": [ { @@ -7102,25 +7102,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/console", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a" + "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", - "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", + "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", "shasum": "" }, "require": { @@ -7128,7 +7132,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2" + "symfony/string": "^7.2|^8.0" }, "conflict": { "symfony/dependency-injection": "<6.4", @@ -7142,16 +7146,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7185,7 +7189,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.6" + "source": "https://github.com/symfony/console/tree/v7.4.0" }, "funding": [ { @@ -7205,20 +7209,20 @@ "type": "tidelift" } ], - "time": "2025-11-04T01:21:42+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/css-selector", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "84321188c4754e64273b46b406081ad9b18e8614" + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/84321188c4754e64273b46b406081ad9b18e8614", - "reference": "84321188c4754e64273b46b406081ad9b18e8614", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "shasum": "" }, "require": { @@ -7254,7 +7258,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.3.6" + "source": "https://github.com/symfony/css-selector/tree/v7.4.0" }, "funding": [ { @@ -7274,7 +7278,7 @@ "type": "tidelift" } ], - "time": "2025-10-29T17:24:25+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/deprecation-contracts", @@ -7345,32 +7349,33 @@ }, { "name": "symfony/error-handler", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "bbe40bfab84323d99dab491b716ff142410a92a8" + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8", - "reference": "bbe40bfab84323d99dab491b716ff142410a92a8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/48be2b0653594eea32dcef130cca1c811dcf25c2", + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/polyfill-php85": "^1.32", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ @@ -7402,7 +7407,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.3.6" + "source": "https://github.com/symfony/error-handler/tree/v7.4.0" }, "funding": [ { @@ -7422,20 +7427,20 @@ "type": "tidelift" } ], - "time": "2025-10-31T19:12:50+00:00" + "time": "2025-11-05T14:29:59+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.3", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9dddcddff1ef974ad87b3708e4b442dc38b2261d", + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d", "shasum": "" }, "require": { @@ -7452,13 +7457,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7486,7 +7492,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.0" }, "funding": [ { @@ -7506,7 +7512,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T11:49:31+00:00" + "time": "2025-10-28T09:38:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -7586,23 +7592,23 @@ }, { "name": "symfony/finder", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f" + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f", + "url": "https://api.github.com/repos/symfony/finder/zipball/340b9ed7320570f319028a2cbec46d40535e94bd", + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7630,7 +7636,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.3.5" + "source": "https://github.com/symfony/finder/tree/v7.4.0" }, "funding": [ { @@ -7650,27 +7656,28 @@ "type": "tidelift" } ], - "time": "2025-10-15T18:45:57+00:00" + "time": "2025-11-05T05:42:40+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "3855e827adb1b675adcb98ad7f92681e293f2d77" + "reference": "5b0bbcc3600030b535dd0b17a0e8c56243f96d7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/3855e827adb1b675adcb98ad7f92681e293f2d77", - "reference": "3855e827adb1b675adcb98ad7f92681e293f2d77", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/5b0bbcc3600030b535dd0b17a0e8c56243f96d7f", + "reference": "5b0bbcc3600030b535dd0b17a0e8c56243f96d7f", "shasum": "" }, "require": { "ext-dom": "*", "league/uri": "^6.5|^7.0", "masterminds/html5": "^2.7.2", - "php": ">=8.2" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", "autoload": { @@ -7703,7 +7710,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v7.3.6" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.0" }, "funding": [ { @@ -7723,27 +7730,26 @@ "type": "tidelift" } ], - "time": "2025-10-30T13:22:58+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.3.7", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4" + "reference": "769c1720b68e964b13b58529c17d4a385c62167b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4", - "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/769c1720b68e964b13b58529c17d4a385c62167b", + "reference": "769c1720b68e964b13b58529c17d4a385c62167b", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "^1.1" }, "conflict": { "doctrine/dbal": "<3.6", @@ -7752,13 +7758,13 @@ "require-dev": { "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5", - "symfony/clock": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/rate-limiter": "^6.4|^7.0" + "symfony/cache": "^6.4.12|^7.1.5|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/rate-limiter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7786,7 +7792,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.7" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.0" }, "funding": [ { @@ -7806,29 +7812,29 @@ "type": "tidelift" } ], - "time": "2025-11-08T16:41:12+00:00" + "time": "2025-11-13T08:49:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.7", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce" + "reference": "7348193cd384495a755554382e4526f27c456085" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/10b8e9b748ea95fa4539c208e2487c435d3c87ce", - "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7348193cd384495a755554382e4526f27c456085", + "reference": "7348193cd384495a755554382e4526f27c456085", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^7.3", - "symfony/http-foundation": "^7.3", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -7838,6 +7844,7 @@ "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", "symfony/doctrine-bridge": "<6.4", + "symfony/flex": "<2.10", "symfony/form": "<6.4", "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", @@ -7855,27 +7862,27 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^6.4|^7.0", - "symfony/clock": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/css-selector": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/dom-crawler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^7.1", - "symfony/routing": "^6.4|^7.0", - "symfony/serializer": "^7.1", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^7.1|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/serializer": "^7.1|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^6.4|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0", - "symfony/var-exporter": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0", "twig/twig": "^3.12" }, "type": "library", @@ -7904,7 +7911,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.7" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.0" }, "funding": [ { @@ -7924,20 +7931,20 @@ "type": "tidelift" } ], - "time": "2025-11-12T11:38:40+00:00" + "time": "2025-11-27T13:38:24+00:00" }, { "name": "symfony/mailer", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba" + "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", + "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", "shasum": "" }, "require": { @@ -7945,8 +7952,8 @@ "php": ">=8.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/mime": "^7.2", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/mime": "^7.2|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -7957,10 +7964,10 @@ "symfony/twig-bridge": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/twig-bridge": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/twig-bridge": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7988,7 +7995,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.3.5" + "source": "https://github.com/symfony/mailer/tree/v7.4.0" }, "funding": [ { @@ -8008,24 +8015,25 @@ "type": "tidelift" } ], - "time": "2025-10-24T14:27:20+00:00" + "time": "2025-11-21T15:26:00+00:00" }, { "name": "symfony/mime", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" + "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", + "url": "https://api.github.com/repos/symfony/mime/zipball/bdb02729471be5d047a3ac4a69068748f1a6be7a", + "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -8040,11 +8048,11 @@ "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0", - "symfony/serializer": "^6.4.3|^7.0.3" + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4.3|^7.0.3|^8.0" }, "type": "library", "autoload": { @@ -8076,7 +8084,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.3.4" + "source": "https://github.com/symfony/mime/tree/v7.4.0" }, "funding": [ { @@ -8096,7 +8104,7 @@ "type": "tidelift" } ], - "time": "2025-09-16T08:38:17+00:00" + "time": "2025-11-16T10:14:42+00:00" }, { "name": "symfony/polyfill-ctype", @@ -8929,16 +8937,16 @@ }, { "name": "symfony/process", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "url": "https://api.github.com/repos/symfony/process/zipball/7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", "shasum": "" }, "require": { @@ -8970,7 +8978,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.4" + "source": "https://github.com/symfony/process/tree/v7.4.0" }, "funding": [ { @@ -8990,20 +8998,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-10-16T11:21:06+00:00" }, { "name": "symfony/routing", - "version": "v7.3.6", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091" + "reference": "4720254cb2644a0b876233d258a32bf017330db7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/c97abe725f2a1a858deca629a6488c8fc20c3091", - "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091", + "url": "https://api.github.com/repos/symfony/routing/zipball/4720254cb2644a0b876233d258a32bf017330db7", + "reference": "4720254cb2644a0b876233d258a32bf017330db7", "shasum": "" }, "require": { @@ -9017,11 +9025,11 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -9055,7 +9063,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.3.6" + "source": "https://github.com/symfony/routing/tree/v7.4.0" }, "funding": [ { @@ -9075,7 +9083,7 @@ "type": "tidelift" } ], - "time": "2025-11-05T07:57:47+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/service-contracts", @@ -9166,22 +9174,23 @@ }, { "name": "symfony/string", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f96476035142921000338bad71e5247fbc138872" + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", - "reference": "f96476035142921000338bad71e5247fbc138872", + "url": "https://api.github.com/repos/symfony/string/zipball/d50e862cb0a0e0886f73ca1f31b865efbb795003", + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-grapheme": "~1.33", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -9189,11 +9198,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -9232,7 +9241,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.4" + "source": "https://github.com/symfony/string/tree/v7.4.0" }, "funding": [ { @@ -9252,27 +9261,27 @@ "type": "tidelift" } ], - "time": "2025-09-11T14:36:48+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/translation", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174" + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174", + "url": "https://api.github.com/repos/symfony/translation/zipball/2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "symfony/translation-contracts": "^2.5.3|^3.3" }, "conflict": { "nikic/php-parser": "<5.0", @@ -9291,17 +9300,17 @@ "require-dev": { "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -9332,7 +9341,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.3.4" + "source": "https://github.com/symfony/translation/tree/v7.4.0" }, "funding": [ { @@ -9352,7 +9361,7 @@ "type": "tidelift" } ], - "time": "2025-09-07T11:39:36+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/translation-contracts", @@ -9438,16 +9447,16 @@ }, { "name": "symfony/uid", - "version": "v7.3.1", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb" + "reference": "2498e9f81b7baa206f44de583f2f48350b90142c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb", + "url": "https://api.github.com/repos/symfony/uid/zipball/2498e9f81b7baa206f44de583f2f48350b90142c", + "reference": "2498e9f81b7baa206f44de583f2f48350b90142c", "shasum": "" }, "require": { @@ -9455,7 +9464,7 @@ "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -9492,7 +9501,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.3.1" + "source": "https://github.com/symfony/uid/tree/v7.4.0" }, "funding": [ { @@ -9503,25 +9512,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-27T19:55:54+00:00" + "time": "2025-09-25T11:02:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d" + "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/41fd6c4ae28c38b294b42af6db61446594a0dece", + "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece", "shasum": "" }, "require": { @@ -9533,10 +9546,10 @@ "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/uid": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", "twig/twig": "^3.12" }, "bin": [ @@ -9575,7 +9588,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.3.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.0" }, "funding": [ { @@ -9595,7 +9608,7 @@ "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-10-27T20:36:44+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -11418,16 +11431,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.4", + "version": "5.6.5", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2" + "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90a04bcbf03784066f16038e87e23a0a83cee3c2", - "reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90614c73d3800e187615e2dd236ad0e2a01bf761", + "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761", "shasum": "" }, "require": { @@ -11476,9 +11489,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.4" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.5" }, - "time": "2025-11-17T21:13:10+00:00" + "time": "2025-11-27T19:50:05+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -12975,28 +12988,28 @@ }, { "name": "symfony/yaml", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc" + "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/90208e2fc6f68f613eae7ca25a2458a931b1bacc", - "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc", + "url": "https://api.github.com/repos/symfony/yaml/zipball/6c84a4b55aee4cd02034d1c528e83f69ddf63810", + "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -13027,7 +13040,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.3.5" + "source": "https://github.com/symfony/yaml/tree/v7.4.0" }, "funding": [ { @@ -13047,7 +13060,7 @@ "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-11-16T10:14:42+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", diff --git a/database/migrations/2025_09_05_131323_create_gutachter_tables.php b/database/migrations/2025_09_05_131323_create_gutachter_tables.php index 4fdf7a7..5321996 100644 --- a/database/migrations/2025_09_05_131323_create_gutachter_tables.php +++ b/database/migrations/2025_09_05_131323_create_gutachter_tables.php @@ -19,15 +19,17 @@ return new class extends Migration $table->string('name')->nullable(); $table->string('company')->nullable(); $table->string('logo')->nullable(); + $table->integer('logo_height')->default(0)->nullable(); $table->string('digitale_signatur_stempel')->nullable(); $table->string('email')->nullable(); $table->string('phone')->nullable(); $table->string('logo_align')->default('right'); - $table->integer('logo_height')->default(0)->nullable(); $table->text('referenz_formatting')->nullable(); $table->boolean('logo_anzeigen')->default(0); $table->boolean('text_anzeigen')->default(0); - + $table->string('deckblatt_bg')->default('#efefef'); + $table->string('schmuckfarbe_header')->default('#bedbff'); + $table->string('farbe_borders')->default('#99a1af'); $table->timestamps(); }); } diff --git a/database/migrations/2025_09_24_131440_create_projektes_table.php b/database/migrations/2025_09_24_131440_create_projektes_table.php index 7ea2f1d..98dfd9e 100644 --- a/database/migrations/2025_09_24_131440_create_projektes_table.php +++ b/database/migrations/2025_09_24_131440_create_projektes_table.php @@ -22,9 +22,9 @@ return new class extends Migration $table->text('beschreibung')->nullable(); $table->string('erstellung')->nullable(); $table->string('status')->default('entwurf'); - $table->string('deckblatt_bg')->default('#efefef'); - $table->string('schmuckfarbe_header')->default('#bedbff'); - $table->string('farbe_borders')->default('#99a1af'); + $table->string('deckblatt_bg')->nullable(); + $table->string('schmuckfarbe_header')->nullable(); + $table->string('farbe_borders')->nullable(); $table->boolean('evaluation_gutachten')->default(0); $table->timestamp('bezahlt_am')->nullable(); $table->timestamps(); diff --git a/database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php b/database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php index 692eace..25eabe7 100644 --- a/database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php +++ b/database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php @@ -17,7 +17,7 @@ return new class extends Migration $table->foreignId('projekt_objekte_id')->constrained()->cascadeOnDelete(); $table->string('geschoss')->nullable(); $table->string('raumart')->nullable(); - $table->double('flaeche')->nullable(); + $table->decimal('flaeche', 7, 2)->default(0); $table->integer('nutzwert')->default(0)->nullable(); $table->timestamps(); }); diff --git a/resources/css/pdf-download.css b/resources/css/pdf-download.css index edcab22..5ff1a3a 100644 --- a/resources/css/pdf-download.css +++ b/resources/css/pdf-download.css @@ -19,16 +19,11 @@ body { /** POSITION FIXED */ #deckblatt-gutachter { - margin: 12mm 10mm; - height: 100mm; + margin: 12mm 10mm 0; + height: 90mm; overflow: hidden; -} - -#deckblatt-logo-gutachter { background-size: contain; background-repeat: no-repeat; - margin-bottom: 1mm; - overflow: hidden; } #deckblatt-projekt {