Added additional projects related filters to part table views

This commit is contained in:
Jan Böhmer 2024-03-02 19:18:55 +01:00
parent 04d1e84596
commit fad8f26eaa
3 changed files with 34 additions and 6 deletions

View file

@ -91,7 +91,14 @@ class PartFilter implements FilterInterface
public readonly ArrayCollection $parameters;
public readonly IntConstraint $parametersCount;
/*************************************************
* Project tab
*************************************************/
public readonly EntityConstraint $project;
public readonly NumberConstraint $bomQuantity;
public readonly TextConstraint $bomName;
public readonly TextConstraint $bomComment;
public function __construct(NodesListBuilder $nodesListBuilder)
{
@ -145,6 +152,10 @@ class PartFilter implements FilterInterface
$this->parametersCount = new IntConstraint('COUNT(_parameters)');
$this->project = new EntityConstraint($nodesListBuilder, Project::class, '_projectBomEntries.project');
$this->bomQuantity = new NumberConstraint('_projectBomEntries.quantity');
$this->bomName = new TextConstraint('_projectBomEntries.name');
$this->bomComment = new TextConstraint('_projectBomEntries.comment');
}
public function apply(QueryBuilder $queryBuilder): void

View file

@ -184,8 +184,8 @@ class PartFilterType extends AbstractType
$builder->add('orderdetailsCount', NumberConstraintType::class, [
'label' => 'part.filter.orderdetails_count',
'step' => 1,
'min' => 0,
'step' => 1,
'min' => 0,
]);
$builder->add('obsolete', BooleanConstraintType::class, [
@ -281,10 +281,24 @@ class PartFilterType extends AbstractType
* Project tab
**************************************************************************/
if ($this->security->isGranted('read', Project::class)) {
$builder->add('project', StructuralEntityConstraintType::class, [
'label' => 'project.label',
'entity_class' => Project::class
]);
$builder
->add('project', StructuralEntityConstraintType::class, [
'label' => 'project.label',
'entity_class' => Project::class
])
->add('bomQuantity', NumberConstraintType::class, [
'label' => 'project.bom.quantity',
'min' => 0,
'step' => "any",
])
->add('bomName', TextConstraintType::class, [
'label' => 'project.bom.name',
])
->add('bomComment', TextConstraintType::class, [
'label' => 'project.bom.comment',
])
;
}

View file

@ -121,6 +121,9 @@
{% if filterForm.project is defined %}
<div class="tab-pane pt-3" id="filter-projects" role="tabpanel" aria-labelledby="filter-projects-tab" tabindex="0">
{{ form_row(filterForm.project) }}
{{ form_row(filterForm.bomQuantity) }}
{{ form_row(filterForm.bomName) }}
{{ form_row(filterForm.bomComment) }}
</div>
{% endif %}