From d225ddf04a0f0a79717af3de87e4edcd3ef92691 Mon Sep 17 00:00:00 2001 From: MonaHartdegen Date: Mon, 13 Jan 2020 16:50:28 +0100 Subject: [PATCH 01/29] added channel and locale to dropdown to product data grid --- .../Admin/src/DataGrids/ProductDataGrid.php | 27 ++++++++++-- .../Admin/src/Resources/lang/en/app.php | 7 ++- .../views/catalog/products/index.blade.php | 43 +++++++++++++++++++ 3 files changed, 71 insertions(+), 6 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index 0e78f1f20..c8b77893e 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -19,16 +19,35 @@ class ProductDataGrid extends DataGrid protected $itemsPerPage = 10; + protected $locale = 'all'; + + protected $channel = 'all'; + + public function __construct() + { + parent::__construct(); + + $this->locale = request()->get('locale') ?? 'all'; + $this->channel = request()->get('channel') ?? 'all'; + } + public function prepareQueryBuilder() { $queryBuilder = DB::table('product_flat') ->leftJoin('products', 'product_flat.product_id', '=', 'products.id') ->leftJoin('attribute_families', 'products.attribute_family_id', '=', 'attribute_families.id') ->leftJoin('product_inventories', 'product_flat.product_id', '=', 'product_inventories.product_id') - ->select('product_flat.product_id as product_id', 'product_flat.sku as product_sku', 'product_flat.name as product_name', 'products.type as product_type', 'product_flat.status', 'product_flat.price', 'attribute_families.name as attribute_family', DB::raw('SUM(' . DB::getTablePrefix() . 'product_inventories.qty) as quantity')) - ->where('channel', core()->getCurrentChannelCode()) - ->where('locale', app()->getLocale()) - ->groupBy('product_flat.product_id'); + ->select('product_flat.product_id as product_id', 'product_flat.sku as product_sku', 'product_flat.name as product_name', 'products.type as product_type', 'product_flat.status', 'product_flat.price', 'attribute_families.name as attribute_family', DB::raw('SUM(' . DB::getTablePrefix() . 'product_inventories.qty) as quantity')); + + if ($this->locale !== 'all') { + $queryBuilder->where('locale', $this->locale); + } + + if ($this->channel !== 'all') { + $queryBuilder->where('channel', $this->channel); + } + + $queryBuilder->groupBy('product_flat.product_id'); $this->addFilter('product_id', 'product_flat.product_id'); $this->addFilter('product_name', 'product_flat.name'); diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 5d0b7d911..a53b531bb 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -776,7 +776,8 @@ return [ 'seo' => 'Home page SEO', 'seo-title' => 'Meta title', 'seo-description' => 'Meta description', - 'seo-keywords' => 'Meta keywords' + 'seo-keywords' => 'Meta keywords', + ], 'sliders' => [ @@ -1257,7 +1258,9 @@ return [ 'order-number-length' => 'Order Number Length', 'order-number-suffix' => 'Order Number Suffix', 'default' => 'Default', - 'sandbox' => 'Sandbox' + 'sandbox' => 'Sandbox', + 'all-channels' => 'All', + 'all-locales' => 'All' ] ] ]; diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php index 60c77b361..87939188d 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/index.blade.php @@ -6,9 +6,45 @@ @section('content')
+ get('locale') ?: null; ?> + get('channel') ?: null; ?>