mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-01-11 04:39:33 +00:00
Part-Übersicht sowie -Detailansicht um Assembly Information erweitern
This commit is contained in:
parent
ecbc8b4e80
commit
bba619797e
16 changed files with 156 additions and 9 deletions
|
|
@ -39,6 +39,7 @@ use App\DataTables\Filters\PartSearchFilter;
|
|||
use App\DataTables\Helpers\ColumnSortHelper;
|
||||
use App\DataTables\Helpers\PartDataTableHelper;
|
||||
use App\Doctrine\Helpers\FieldHelper;
|
||||
use App\Entity\AssemblySystem\Assembly;
|
||||
use App\Entity\Parts\ManufacturingStatus;
|
||||
use App\Entity\Parts\Part;
|
||||
use App\Entity\Parts\PartLot;
|
||||
|
|
@ -240,6 +241,34 @@ final class PartsDataTable implements DataTableTypeInterface
|
|||
]);
|
||||
}
|
||||
|
||||
//Add a assembly column to list where the part is used, when the user has the permission to see the assemblies
|
||||
if ($this->security->isGranted('read', Assembly::class)) {
|
||||
$this->csh->add('assemblies', TextColumn::class, [
|
||||
'label' => $this->translator->trans('assembly.labelp'),
|
||||
'render' => function ($value, Part $context): string {
|
||||
//Only show the first 5 assembly names
|
||||
$assemblies = $context->getAssemblies();
|
||||
$tmp = "";
|
||||
|
||||
$max = 5;
|
||||
|
||||
for ($i = 0; $i < min($max, count($assemblies)); $i++) {
|
||||
$url = $this->urlGenerator->infoURL($assemblies[$i]);
|
||||
$tmp .= sprintf('<a href="%s">%s</a>', $url, htmlspecialchars($assemblies[$i]->getName()));
|
||||
if ($i < count($assemblies) - 1) {
|
||||
$tmp .= ", ";
|
||||
}
|
||||
}
|
||||
|
||||
if (count($assemblies) > $max) {
|
||||
$tmp .= ", + ".(count($assemblies) - $max);
|
||||
}
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
$this->csh
|
||||
->add('edit', IconLinkColumn::class, [
|
||||
'label' => $this->translator->trans('part.table.edit'),
|
||||
|
|
|
|||
31
templates/parts/info/_assemblies.html.twig
Normal file
31
templates/parts/info/_assemblies.html.twig
Normal 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>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -14092,6 +14092,12 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
|
|||
<target>Přidat součásti do sestavy</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Přidat tuto součástku do sestavy</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -12809,6 +12809,12 @@ Bemærk venligst, at du ikke kan kopiere fra deaktiveret bruger. Hvis du prøver
|
|||
<target>Tilføj dele til samlingen</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Tilføj denne del til en samling</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -13542,6 +13542,12 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
|
|||
<target>Bauteile zur Baugruppe hinzufügen</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Dieses Bauteil zu einer Baugruppe hinzufügen</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -1823,6 +1823,12 @@
|
|||
<target>Προσθήκη εξαρτημάτων στη συναρμολόγηση</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Προσθέστε αυτό το εξάρτημα σε μια συναρμολόγηση</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -13543,6 +13543,12 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<target>Add parts to assembly</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Add this part to an assembly</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -12981,6 +12981,12 @@ Por favor ten en cuenta que no puedes personificar a un usuario deshabilitado. S
|
|||
<target>Añadir piezas al ensamblaje</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Agregar esta parte a un ensamblaje</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -9385,6 +9385,12 @@ exemple de ville</target>
|
|||
<target>Ajouter des pièces à l'assemblage</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Ajouter cette pièce à un assemblage</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -12959,6 +12959,12 @@ Notare che non è possibile impersonare un utente disattivato. Quando si prova a
|
|||
<target>Aggiungi componenti al gruppo</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Aggiungi questa parte a un assemblaggio</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -9122,6 +9122,12 @@ Exampletown</target>
|
|||
<target>アセンブリに部品を追加</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>このパーツをアセンブリに追加</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -1012,6 +1012,12 @@
|
|||
<target>Onderdelen toevoegen aan assemblage</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Dit onderdeel aan een assemblage toevoegen</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -12836,6 +12836,12 @@ Należy pamiętać, że nie możesz udawać nieaktywnych użytkowników. Jeśli
|
|||
<target>Dodaj części do zespołu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Dodaj tę część do zespołu</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -12936,6 +12936,12 @@
|
|||
<target>Добавить детали в сборку</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>Добавить эту часть в сборку</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
|
|
@ -12821,6 +12821,12 @@ Element 3</target>
|
|||
<target>添加零件到组件</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="u7iO1dE" name="part.info.add_part_to_assembly">
|
||||
<segment state="translated">
|
||||
<source>part.info.add_part_to_assembly</source>
|
||||
<target>将此零件添加到装配体中</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1zsGacg3" name="assembly.bom.project">
|
||||
<segment>
|
||||
<source>assembly.bom.project</source>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue