';
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 {