Compare commits

...

2 Commits

Author SHA1 Message Date
Matthieu
adc44b99d3 fix(machines) : fix skeleton creation — pagination, duplication, custom fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 10:40:09 +01:00
Matthieu
60afeb4cfd chore(frontend) : update submodule — Playwright e2e setup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:07:37 +01:00
3 changed files with 15 additions and 7 deletions

View File

@@ -1 +1 @@
1.6.1 1.6.2

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Controller; namespace App\Controller;
use App\Entity\Composant; use App\Entity\Composant;
use App\Entity\CustomField;
use App\Entity\Machine; use App\Entity\Machine;
use App\Entity\MachineComponentLink; use App\Entity\MachineComponentLink;
use App\Entity\MachinePieceLink; use App\Entity\MachinePieceLink;
@@ -341,21 +342,28 @@ class MachineSkeletonController extends AbstractController
$componentIndex = $this->indexNormalizedLinks($normalizedComponentLinks); $componentIndex = $this->indexNormalizedLinks($normalizedComponentLinks);
$normalizedPieceLinks = $this->normalizePieceLinks($pieceLinks); $normalizedPieceLinks = $this->normalizePieceLinks($pieceLinks);
// Build component hierarchy // Build component hierarchy track which IDs are children
foreach ($normalizedComponentLinks as &$link) { $childIds = [];
foreach ($normalizedComponentLinks as $link) {
$parentId = $link['parentComponentLinkId'] ?? null; $parentId = $link['parentComponentLinkId'] ?? null;
if ($parentId && isset($componentIndex[$parentId])) { if ($parentId && isset($componentIndex[$parentId])) {
$componentIndex[$parentId]['childLinks'][] = &$link; $componentIndex[$parentId]['childLinks'][] = $link;
$childIds[$link['id']] = true;
} }
} }
unset($link);
// Add pieces to components recursively // Add pieces to components recursively
$this->attachPiecesToComponents($componentIndex, $normalizedPieceLinks); $this->attachPiecesToComponents($componentIndex, $normalizedPieceLinks);
// Only return root-level components (exclude children already nested)
$rootComponents = array_filter(
$componentIndex,
static fn (array $link) => !isset($childIds[$link['id']]),
);
return [ return [
'machine' => $this->normalizeMachine($machine), 'machine' => $this->normalizeMachine($machine),
'componentLinks' => array_values($componentIndex), 'componentLinks' => array_values($rootComponents),
'pieceLinks' => $normalizedPieceLinks, 'pieceLinks' => $normalizedPieceLinks,
'productLinks' => $this->normalizeProductLinks($productLinks), 'productLinks' => $this->normalizeProductLinks($productLinks),
]; ];