From 3b261738e6aadaf160938c96df5dd5624b3ff803 Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 19 Feb 2026 07:04:15 +0000 Subject: [PATCH 1/4] Show Part status in BOM Fixes Part-DB/Part-DB-server#1256 --- src/DataTables/ProjectBomEntriesDataTable.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/DataTables/ProjectBomEntriesDataTable.php b/src/DataTables/ProjectBomEntriesDataTable.php index 433f6f78..3e5ef6d0 100644 --- a/src/DataTables/ProjectBomEntriesDataTable.php +++ b/src/DataTables/ProjectBomEntriesDataTable.php @@ -28,6 +28,7 @@ use App\DataTables\Column\MarkdownColumn; use App\DataTables\Helpers\PartDataTableHelper; use App\Entity\Attachments\Attachment; use App\Entity\Parts\Part; +use App\Entity\Parts\ManufacturingStatus; use App\Entity\ProjectSystem\ProjectBOMEntry; use App\Services\ElementTypeNameGenerator; use App\Services\EntityURLGenerator; @@ -145,6 +146,12 @@ class ProjectBomEntriesDataTable implements DataTableTypeInterface 'orderField' => 'NATSORT(manufacturer.name)', ]) + ->add('manufacturingStatus', EntityColumn::class, [ + 'property' => 'part.manufacturingStatus', + 'label' => $this->translator->trans('part.table.manufacturingStatus'), + 'orderField' => 'NATSORT(manufacturingStatus.name)', + ]) + ->add('mountnames', TextColumn::class, [ 'label' => 'project.bom.mountnames', 'render' => function ($value, ProjectBOMEntry $context) { From 04ca6e5f248e616d55066092122ca519fec372ad Mon Sep 17 00:00:00 2001 From: Marc Kreidler Date: Tue, 24 Feb 2026 20:07:50 +0100 Subject: [PATCH 2/4] fix 'manufacturingStatus': Error: Class App\Entity\Parts\Part has no association named manufacturingStatus --- src/DataTables/ProjectBomEntriesDataTable.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/DataTables/ProjectBomEntriesDataTable.php b/src/DataTables/ProjectBomEntriesDataTable.php index 3e5ef6d0..e605697d 100644 --- a/src/DataTables/ProjectBomEntriesDataTable.php +++ b/src/DataTables/ProjectBomEntriesDataTable.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace App\DataTables; use App\DataTables\Column\EntityColumn; +use App\DataTables\Column\EnumColumn; use App\DataTables\Column\LocaleDateTimeColumn; use App\DataTables\Column\MarkdownColumn; use App\DataTables\Helpers\PartDataTableHelper; @@ -146,10 +147,17 @@ class ProjectBomEntriesDataTable implements DataTableTypeInterface 'orderField' => 'NATSORT(manufacturer.name)', ]) - ->add('manufacturingStatus', EntityColumn::class, [ - 'property' => 'part.manufacturingStatus', + ->add('manufacturing_status', EnumColumn::class, [ 'label' => $this->translator->trans('part.table.manufacturingStatus'), - 'orderField' => 'NATSORT(manufacturingStatus.name)', + 'class' => ManufacturingStatus::class, + 'data' => fn (ProjectBOMEntry $context): ?ManufacturingStatus => $context->getPart()?->getManufacturingStatus(), + 'render' => function (?ManufacturingStatus $status): string { + if ($status === null) { + return ''; + } + + return $this->translator->trans($status->toTranslationKey()); + }, ]) ->add('mountnames', TextColumn::class, [ From dcfeb1b252328af7136a07a809f0dd5bc0ce6285 Mon Sep 17 00:00:00 2001 From: Marc Kreidler Date: Tue, 24 Feb 2026 20:48:57 +0100 Subject: [PATCH 3/4] Added a custom render function for the 'manufacturing_status' column to handle null values and translate the status using the translator service. --- src/DataTables/ProjectBomEntriesDataTable.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/DataTables/ProjectBomEntriesDataTable.php b/src/DataTables/ProjectBomEntriesDataTable.php index e605697d..38d89fcc 100644 --- a/src/DataTables/ProjectBomEntriesDataTable.php +++ b/src/DataTables/ProjectBomEntriesDataTable.php @@ -150,8 +150,7 @@ class ProjectBomEntriesDataTable implements DataTableTypeInterface ->add('manufacturing_status', EnumColumn::class, [ 'label' => $this->translator->trans('part.table.manufacturingStatus'), 'class' => ManufacturingStatus::class, - 'data' => fn (ProjectBOMEntry $context): ?ManufacturingStatus => $context->getPart()?->getManufacturingStatus(), - 'render' => function (?ManufacturingStatus $status): string { + 'render' => function (?ManufacturingStatus $status, Part $context): string { if ($status === null) { return ''; } From d141e70765ce0eba1d3eace31b473b87d66d5e65 Mon Sep 17 00:00:00 2001 From: Marc Kreidler Date: Tue, 24 Feb 2026 21:37:08 +0100 Subject: [PATCH 4/4] auto-generated commit message --- src/DataTables/ProjectBomEntriesDataTable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataTables/ProjectBomEntriesDataTable.php b/src/DataTables/ProjectBomEntriesDataTable.php index 38d89fcc..654232bb 100644 --- a/src/DataTables/ProjectBomEntriesDataTable.php +++ b/src/DataTables/ProjectBomEntriesDataTable.php @@ -150,7 +150,7 @@ class ProjectBomEntriesDataTable implements DataTableTypeInterface ->add('manufacturing_status', EnumColumn::class, [ 'label' => $this->translator->trans('part.table.manufacturingStatus'), 'class' => ManufacturingStatus::class, - 'render' => function (?ManufacturingStatus $status, Part $context): string { + 'render' => function (?ManufacturingStatus $status, ProjectBOMEntry $context): string { if ($status === null) { return ''; }