From 5ab2cf505e107ddb188bbb4d9ee7b646bcd9edde Mon Sep 17 00:00:00 2001 From: Marcel Diegelmann Date: Wed, 1 Oct 2025 13:56:44 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cberarbeitungen:=20Subassemblies=20darstel?= =?UTF-8?q?len=20sowie=20Parameters=20losgel=C3=B6st=20von=20Entit=C3=A4t?= =?UTF-8?q?=20zur=20Anzeige=20bringen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/parameters.yaml | 2 -- .../AdminPages/BaseAdminController.php | 16 ---------- .../ImportExportSystem/BOMImporter.php | 2 +- templates/admin/base_admin.html.twig | 4 +-- templates/assemblies/import_bom.html.twig | 2 ++ .../assemblies/info/_subassemblies.html.twig | 28 ++++++++++++++++ templates/assemblies/info/info.html.twig | 32 ++++++++++++++++++- 7 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 templates/assemblies/info/_subassemblies.html.twig diff --git a/config/parameters.yaml b/config/parameters.yaml index 3931729d..ec80e052 100644 --- a/config/parameters.yaml +++ b/config/parameters.yaml @@ -14,8 +14,6 @@ parameters: partdb.db.emulate_natural_sort: '%env(bool:DATABASE_EMULATE_NATURAL_SORT)%' # If this is set to true, natural sorting is emulated on platforms that do not support it natively. This can be slow on large datasets. - partdb.create_assembly_use_ipn_placeholder_in_name: '%env(bool:CREATE_ASSEMBLY_USE_IPN_PLACEHOLDER_IN_NAME)%' # Use an %%ipn%% placeholder in the name of an assembly. Placeholder is replaced with the ipn input while saving. - ###################################################################################################################### # Users and Privacy ###################################################################################################################### diff --git a/src/Controller/AdminPages/BaseAdminController.php b/src/Controller/AdminPages/BaseAdminController.php index bae817de..d928deb4 100644 --- a/src/Controller/AdminPages/BaseAdminController.php +++ b/src/Controller/AdminPages/BaseAdminController.php @@ -234,13 +234,6 @@ abstract class BaseAdminController extends AbstractController $repo = $this->entityManager->getRepository($this->entity_class); - $showParameters = true; - if ($this instanceof AssemblyAdminController) { - //currently not needed for assemblies - - $showParameters = false; - } - return $this->render($this->twig_template, [ 'entity' => $entity, 'form' => $form, @@ -250,7 +243,6 @@ abstract class BaseAdminController extends AbstractController 'timeTravel' => $timeTravel_timestamp, 'repo' => $repo, 'partsContainingElement' => $repo instanceof PartsContainingRepositoryInterface, - 'showParameters' => $showParameters, ]); } @@ -404,20 +396,12 @@ abstract class BaseAdminController extends AbstractController } } - $showParameters = true; - if ($this instanceof AssemblyAdminController) { - //currently not needed for assemblies - - $showParameters = false; - } - return $this->render($this->twig_template, [ 'entity' => $new_entity, 'form' => $form, 'import_form' => $import_form, 'mass_creation_form' => $mass_creation_form, 'route_base' => $this->route_base, - 'showParameters' => $showParameters, ]); } diff --git a/src/Services/ImportExportSystem/BOMImporter.php b/src/Services/ImportExportSystem/BOMImporter.php index 5ed8c388..cf495a89 100644 --- a/src/Services/ImportExportSystem/BOMImporter.php +++ b/src/Services/ImportExportSystem/BOMImporter.php @@ -857,7 +857,7 @@ class BOMImporter if (isset($entry['name'])) { $givenName = trim($entry['name']) === '' ? null : trim ($entry['name']); - if ($givenName !== null && $bomEntry->getPart() !== null && $bomEntry->getPart()->getName() !== $givenName) { + if ($givenName !== null && $part !== null && $part->getName() !== $givenName) { //Apply different names for parts list entry $bomEntry->setName(trim($entry['name']) === '' ? null : trim ($entry['name'])); } diff --git a/templates/admin/base_admin.html.twig b/templates/admin/base_admin.html.twig index e9fc0fb9..b3d5af5f 100644 --- a/templates/admin/base_admin.html.twig +++ b/templates/admin/base_admin.html.twig @@ -86,7 +86,7 @@ - {% if entity.parameters is defined and showParameters == true %} + {% if entity.parameters is defined %} @@ -201,4 +201,4 @@ - {% endblock %} \ No newline at end of file + {% endblock %} diff --git a/templates/assemblies/import_bom.html.twig b/templates/assemblies/import_bom.html.twig index 89f504c2..bfbecf8d 100644 --- a/templates/assemblies/import_bom.html.twig +++ b/templates/assemblies/import_bom.html.twig @@ -105,6 +105,8 @@ {{ 'assembly.bom_import.template.kicad_pcbnew.exptected_columns.note'|trans|raw }} {{ 'assembly.bom_import.template.kicad_pcbnew.table'|trans|raw }} + + {{ 'assembly.bom_import.template.json.table'|trans|raw }} diff --git a/templates/assemblies/info/_subassemblies.html.twig b/templates/assemblies/info/_subassemblies.html.twig new file mode 100644 index 00000000..243e7d33 --- /dev/null +++ b/templates/assemblies/info/_subassemblies.html.twig @@ -0,0 +1,28 @@ + + + + + + + + + + + {% for assembly in assembly.children %} + + + + + + + {% endfor %} + +
{% trans %}name.label{% endtrans %}{% trans %}description.label{% endtrans %}# {% trans %}assembly.info.bom_entries_count{% endtrans %}# {% trans %}assembly.info.sub_assemblies_count{% endtrans %}
{# Name #} + {{ assembly.name }} + {# Description #} + {{ assembly.description | format_markdown }} + + {{ assembly.bomEntries | length }} + + {{ assembly.children | length }} +
diff --git a/templates/assemblies/info/info.html.twig b/templates/assemblies/info/info.html.twig index 667da909..2cb3636f 100644 --- a/templates/assemblies/info/info.html.twig +++ b/templates/assemblies/info/info.html.twig @@ -70,6 +70,16 @@ {% trans %}assembly.info.info.label{% endtrans %} + {% if assembly.children is not empty %} + + {% endif %} {% endif %} + {% if assembly.parameters is not empty %} + + {% endif %} -
{% include "assemblies/info/_info.html.twig" %}
+ {% if assembly.children is not empty %} +
+ {% include "assemblies/info/_subassemblies.html.twig" %} +
+ {% endif %}
{% include "assemblies/info/_part.html.twig" %}
{% include "assemblies/info/_attachments_info.html.twig" with {"assembly": assembly} %}
+
+ {% for name, parameters in assembly.groupedParameters %} + {% if name is not empty %}
{{ name }}
{% endif %} + {{ helper.parameters_table(assembly.parameters) }} + {% endfor %} +
{% endblock %}