Added a filter to filter for parts which are used in a specific project

Related to issue #516
This commit is contained in:
Jan Böhmer 2024-03-02 19:00:09 +01:00
parent 934acca934
commit 04d1e84596
4 changed files with 35 additions and 0 deletions

View file

@ -31,6 +31,7 @@ use App\Entity\Parts\Manufacturer;
use App\Entity\Parts\MeasurementUnit;
use App\Entity\Parts\StorageLocation;
use App\Entity\Parts\Supplier;
use App\Entity\ProjectSystem\Project;
use App\Form\Filters\Constraints\BooleanConstraintType;
use App\Form\Filters\Constraints\ChoiceConstraintType;
use App\Form\Filters\Constraints\DateTimeConstraintType;
@ -41,6 +42,7 @@ use App\Form\Filters\Constraints\TagsConstraintType;
use App\Form\Filters\Constraints\TextConstraintType;
use App\Form\Filters\Constraints\UserEntityConstraintType;
use Svg\Tag\Text;
use Symfony\Bundle\SecurityBundle\Security;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
@ -53,6 +55,10 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class PartFilterType extends AbstractType
{
public function __construct(private readonly Security $security)
{
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
@ -271,6 +277,17 @@ class PartFilterType extends AbstractType
'min' => 0,
]);
/**************************************************************************
* Project tab
**************************************************************************/
if ($this->security->isGranted('read', Project::class)) {
$builder->add('project', StructuralEntityConstraintType::class, [
'label' => 'project.label',
'entity_class' => Project::class
]);
}
$builder->add('submit', SubmitType::class, [
'label' => 'filter.submit',
]);