From 838134c62d4b759c98730ff41863c8e9edca34e6 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Thu, 23 Jan 2020 15:00:31 +0300 Subject: [PATCH] #244 Admin - Listing expired and not published ads (passive) --- .../advs-module/resources/lang/en/field.php | 6 +++++- .../Adv/Table/Filter/StatusFilterQuery.php | 20 +++++++++++++++++++ .../Http/Controller/Admin/AdvsController.php | 9 +++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 addons/default/visiosoft/advs-module/src/Adv/Table/Filter/StatusFilterQuery.php diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php index 63a720d02..44f71632b 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -83,7 +83,11 @@ return [ 'name' => 'Currency' ], 'status' => [ - 'name' => 'Status' + 'name' => 'Status', + 'option' => [ + 'expired' => 'Expired', + 'unpublished' => 'Unpublished' + ] ], 'pending_adv' => [ 'name' => 'Pending Ads' diff --git a/addons/default/visiosoft/advs-module/src/Adv/Table/Filter/StatusFilterQuery.php b/addons/default/visiosoft/advs-module/src/Adv/Table/Filter/StatusFilterQuery.php new file mode 100644 index 000000000..b6e7d11f7 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Adv/Table/Filter/StatusFilterQuery.php @@ -0,0 +1,20 @@ +getValue() == 'expired') { + $query->where('advs_advs.finish_at', '<=', Carbon::now()); + } + + if ($filter->getValue() == 'unpublished') { + $query->where('advs_advs.status', '!=', 'approved'); + } + } +} diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php index 59cbc1b52..80f1f08ca 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php @@ -11,6 +11,7 @@ use Illuminate\Filesystem\Filesystem; use Illuminate\Http\Request; use Visiosoft\AdvsModule\Adv\Table\Filter\CategoryFilterQuery; use Visiosoft\AdvsModule\Adv\Table\Filter\CityFilterQuery; +use Visiosoft\AdvsModule\Adv\Table\Filter\StatusFilterQuery; use Visiosoft\AdvsModule\Adv\Table\Filter\UserFilterQuery; use Visiosoft\AdvsModule\Adv\AdvModel; use Visiosoft\AdvsModule\Adv\Event\ChangeStatusAd; @@ -151,6 +152,14 @@ class AdvsController extends AdminController 'filter' => 'select', 'query' => UserFilterQuery::class, 'options' => $users, + ], + 'status' => [ + 'filter' => 'select', + 'query' => StatusFilterQuery::class, + 'options' => [ + 'expired' => 'visiosoft.module.advs::field.status.option.expired', + 'unpublished' => 'visiosoft.module.advs::field.status.option.unpublished', + ], ] ]) );