From 9db51c2b27f0041900403751e0116fdcc2d772bc Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Mon, 6 Sep 2021 14:42:19 +0900 Subject: [PATCH] =?UTF-8?q?Revert=20"Revert=20"=E7=AE=A1=E7=90=86=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=20=E5=95=86=E5=93=81=E3=81=AE=E3=82=BF=E3=82=B0?= =?UTF-8?q?=E3=81=A7=E3=81=AE=E7=B5=9E=E3=82=8A=E8=BE=BC=E3=81=BF""?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 7233312d6c960bae66a873d3df38917b79a30a00. --- .../Form/Type/Admin/SearchProductType.php | 26 +++++++++- src/Eccube/Repository/ProductRepository.php | 8 +++ .../template/admin/Product/index.twig | 7 +++ .../AbstractProductRepositoryTestCase.php | 31 +++++++++++- ...ryGetQueryBuilderBySearchDataAdminTest.php | 49 +++++++++++++++++++ 5 files changed, 118 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Form/Type/Admin/SearchProductType.php b/src/Eccube/Form/Type/Admin/SearchProductType.php index 72313c1656c..785542252b1 100644 --- a/src/Eccube/Form/Type/Admin/SearchProductType.php +++ b/src/Eccube/Form/Type/Admin/SearchProductType.php @@ -16,10 +16,13 @@ use Eccube\Entity\Category; use Eccube\Entity\Master\ProductStatus; use Eccube\Entity\ProductStock; +use Eccube\Entity\Tag; use Eccube\Form\Type\Master\CategoryType as MasterCategoryType; use Eccube\Form\Type\Master\ProductStatusType; use Eccube\Repository\CategoryRepository; use Eccube\Repository\Master\ProductStatusRepository; +use Eccube\Repository\TagRepository; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\DateTimeType; @@ -39,16 +42,26 @@ class SearchProductType extends AbstractType */ protected $categoryRepository; + /** + * @var TagRepository + */ + protected $tagRepository; + /** * SearchProductType constructor. * * @param ProductStatusRepository $productStatusRepository * @param CategoryRepository $categoryRepository + * @param TagRepository $tagRepository */ - public function __construct(ProductStatusRepository $productStatusRepository, CategoryRepository $categoryRepository) - { + public function __construct( + ProductStatusRepository $productStatusRepository, + CategoryRepository $categoryRepository, + TagRepository $tagRepository + ) { $this->productStatusRepository = $productStatusRepository; $this->categoryRepository = $categoryRepository; + $this->tagRepository = $tagRepository; } /** @@ -92,6 +105,15 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'expanded' => true, 'multiple' => true, ]) + ->add('tag_id', EntityType::class, [ + 'class' => Tag::class, + 'label' => 'admin.product.tag', + 'placeholder' => 'common.select__all_products', + 'choice_label' => 'name', + 'required' => false, + 'multiple' => false, + 'expanded' => false, + ]) ->add('create_date_start', DateType::class, [ 'label' => 'admin.common.create_date__start', 'required' => false, diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index 66056d35883..f4bde076a9a 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -303,6 +303,14 @@ public function getQueryBuilderBySearchDataForAdmin($searchData) } } + // tag + if (!empty($searchData['tag_id']) && $searchData['tag_id']) { + $qb + ->innerJoin('p.ProductTag', 'pt') + ->andWhere('pt.Tag = :tag_id') + ->setParameter('tag_id', $searchData['tag_id']); + } + // crate_date if (!empty($searchData['create_datetime_start']) && $searchData['create_datetime_start']) { $date = $searchData['create_datetime_start']; diff --git a/src/Eccube/Resource/template/admin/Product/index.twig b/src/Eccube/Resource/template/admin/Product/index.twig index 9128bb83200..48d8bdbdedd 100644 --- a/src/Eccube/Resource/template/admin/Product/index.twig +++ b/src/Eccube/Resource/template/admin/Product/index.twig @@ -229,6 +229,13 @@ file that was distributed with this source code.
+
+
+ + {{ form_widget(searchForm.tag_id) }} + {{ form_errors(searchForm.tag_id) }} +
+