This commit is contained in:
web-devinition.de 2026-03-01 18:11:52 +01:00 committed by GitHub
commit 7aad08a74c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
158 changed files with 25953 additions and 307 deletions

View file

@ -0,0 +1,31 @@
{% import "components/attachments.macro.html.twig" as attachments %}
{% import "helper.twig" as helper %}
<table class="table table-striped table-sm table-hover table-responsive-sm">
<thead>
<tr>
<th></th>
<th>{% trans %}entity.info.name{% endtrans %}</th>
<th>{% trans %}description.label{% endtrans %}</th>
<th>{% trans %}assembly.bom.quantity{% endtrans %}</th>
</tr>
</thead>
<tbody>
{% for bom_entry in part.assemblyBomEntries %}
{# @var bom_entry App\Entity\Assembly\AssemblyBOMEntry #}
<tr>
<td>{% if bom_entry.assembly.masterPictureAttachment is not null %}{{ attachments.attachment_icon(bom_entry.assembly.masterPictureAttachment, attachment_manager) }}{% endif %}</td>
<td><a href="{{ path('assembly_info', {'id': bom_entry.assembly.iD}) }}">{{ bom_entry.assembly.name }}</a></td> {# Name #}
<td>{{ bom_entry.assembly.description|format_markdown }}</td> {# Description #}
<td>{{ bom_entry.quantity | format_amount(part.partUnit) }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<a class="btn btn-success" {% if not is_granted('@assemblies.edit') %}disabled{% endif %}
href="{{ path('assembly_add_parts_no_id', {"parts": part.id, "_redirect": uri_without_host(app.request)}) }}">
<i class="fa-solid fa-magnifying-glass-plus fa-fw"></i>
{% trans %}part.info.add_part_to_assembly{% endtrans %}
</a>

View file

@ -109,15 +109,20 @@
{% trans %}vendor.partinfo.history{% endtrans %}
</a>
</li>
{% if part.projectBomEntries is not empty %}
<li class="nav-item">
<a class="nav-link" id="projects-tab" data-bs-toggle="tab" href="#projects" role="tab">
<i class="fas fa-archive fa-fw"></i>
{% trans %}project.labelp{% endtrans %}
<span class="badge bg-secondary">{{ part.projectBomEntries | length }}</span>
</a>
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link" id="projects-tab" data-bs-toggle="tab" href="#projects" role="tab">
<i class="fas fa-archive fa-fw"></i>
{% trans %}project.labelp{% endtrans %}
<span class="badge bg-secondary">{{ part.projectBomEntries | length }}</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="assemblies-tab" data-bs-toggle="tab" href="#assemblies" role="tab">
<i class="fas fa-archive fa-fw"></i>
{% trans %}assembly.labelp{% endtrans %}
<span class="badge bg-secondary">{{ part.assemblyBomEntries | length }}</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="tools-tab" data-bs-toggle="tab" href="#tools" role="tab">
<i class="fas fa-tools"></i>
@ -167,6 +172,10 @@
{% include "parts/info/_projects.html.twig" %}
</div>
<div class="tab-pane fade" id="assemblies" role="tabpanel" aria-labelledby="assemblies-tab">
{% include "parts/info/_assemblies.html.twig" %}
</div>
<div class="tab-pane fade" id="history" role="tabpanel" aria-labelledby="history-tab">
{% include "parts/info/_history.html.twig" %}
</div>

View file

@ -31,6 +31,11 @@
<button class="nav-link" id="filter-projects-tab" data-bs-toggle="tab" data-bs-target="#filter-projects"><i class="fas fa-archive fa-fw"></i> {% trans %}project.labelp{% endtrans %}</button>
</li>
{% endif %}
{% if filterForm.assembly is defined %}
<li class="nav-item" role="presentation">
<button class="nav-link" id="filter-assemblies-tab" data-bs-toggle="tab" data-bs-target="#filter-assemblies"><i class="fas fa-archive fa-fw"></i> {% trans %}assembly.labelp{% endtrans %}</button>
</li>
{% endif %}
{% if filterForm.inBulkImportJob is defined %}
<li class="nav-item" role="presentation">
<button class="nav-link" id="filter-bulk-import-tab" data-bs-toggle="tab" data-bs-target="#filter-bulk-import"><i class="fas fa-download fa-fw"></i> {% trans %}part.edit.tab.bulk_import{% endtrans %}</button>
@ -133,6 +138,13 @@
{{ form_row(filterForm.bomComment) }}
</div>
{% endif %}
{% if filterForm.assembly is defined %}
<div class="tab-pane pt-3" id="filter-assemblies" role="tabpanel" aria-labelledby="filter-assemblies-tab" tabindex="0">
{{ form_row(filterForm.assembly) }}
{{ form_row(filterForm.assemblyBomQuantity) }}
{{ form_row(filterForm.assemblyBomName) }}
</div>
{% endif %}
{% if filterForm.inBulkImportJob is defined %}
<div class="tab-pane pt-3" id="filter-bulk-import" role="tabpanel" aria-labelledby="filter-bulk-import-tab" tabindex="0">
{{ form_row(filterForm.inBulkImportJob) }}