From 522f6c935068e42b2bfef7582e1aca44df259d0a Mon Sep 17 00:00:00 2001 From: Diatrex Date: Tue, 29 Dec 2020 17:41:40 +0300 Subject: [PATCH] =?UTF-8?q?#2917=20emlak24=20program=20dahilinde=20yap?= =?UTF-8?q?=C4=B1lacaklar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/config/permissions.php | 5 +++++ .../advs-module/resources/lang/en/button.php | 1 + .../resources/lang/en/permission.php | 8 +++++++ .../advs-module/resources/lang/en/section.php | 3 +++ .../advs-module/resources/lang/en/stream.php | 3 +++ .../advs-module/src/Adv/AdvCollection.php | 21 +++++++++++++++++++ .../advs-module/src/Adv/AdvRepository.php | 21 +++++++++++++++---- .../Adv/Contract/AdvRepositoryInterface.php | 2 +- 8 files changed, 59 insertions(+), 5 deletions(-) diff --git a/addons/default/visiosoft/advs-module/resources/config/permissions.php b/addons/default/visiosoft/advs-module/resources/config/permissions.php index cead467e5..282f8d0ba 100644 --- a/addons/default/visiosoft/advs-module/resources/config/permissions.php +++ b/addons/default/visiosoft/advs-module/resources/config/permissions.php @@ -46,4 +46,9 @@ return [ 'write', 'delete', ], + 'status' => [ + 'read', + 'write', + 'delete', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/button.php b/addons/default/visiosoft/advs-module/resources/lang/en/button.php index 777bc94d0..88b42946a 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php @@ -43,4 +43,5 @@ return [ 'fast_create' => 'Fast create', 'publish' => 'Publish', 'import' => 'Import', + 'new_status' => 'New Status', ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php index 0a094c9f1..1c540e8b2 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php @@ -97,4 +97,12 @@ return [ 'delete' => 'Can delete option configuration?', ], ], + 'status' => [ + 'name' => 'Status', + 'option' => [ + 'read' => 'Can read status?', + 'write' => 'Can create/edit status?', + 'delete' => 'Can delete status?', + ], + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/section.php b/addons/default/visiosoft/advs-module/resources/lang/en/section.php index 6e1310527..d7f9f96a1 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/section.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/section.php @@ -56,4 +56,7 @@ return [ 'title' => 'Configuration', ], 'translations' => 'Translations', + 'status' => [ + 'title' => 'Status', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php index 761fa569d..d94ccdc24 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php @@ -31,4 +31,7 @@ return [ 'option_configuration' => [ 'name' => 'Configuration', ], + 'status' => [ + 'name' => 'Status', + ], ]; diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvCollection.php b/addons/default/visiosoft/advs-module/src/Adv/AdvCollection.php index 7d4729887..855fa19c0 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvCollection.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvCollection.php @@ -1,8 +1,29 @@ count(); + + return self::paginator($this->forPage($page, $pageSize), $total, $pageSize, $page, [ + 'path' => Paginator::resolveCurrentPath(), + 'pageName' => 'page', + ]); + } + + protected static function paginator($items, $total, $perPage, $currentPage, $options) + { + return Container::getInstance()->makeWith(LengthAwarePaginator::class, compact( + 'items', 'total', 'perPage', 'currentPage', 'options' + )); + } } diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index 72f9efe81..b39827ea4 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -11,6 +11,7 @@ use Anomaly\Streams\Platform\Entry\EntryRepository; use Visiosoft\CatsModule\Category\CategoryModel; use Visiosoft\LocationModule\City\CityModel; use Visiosoft\LocationModule\Country\CountryModel; +use Visiosoft\LocationModule\District\DistrictModel; class AdvRepository extends EntryRepository implements AdvRepositoryInterface { @@ -215,12 +216,16 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface { $country = CountryModel::query()->where('location_countries.id', $adv->country_id)->first(); $city = CityModel::query()->where('location_cities.id', $adv->city)->first(); + $district = DistrictModel::query()->where('location_districts.id', $adv->district)->first(); if ($country != null) { $adv->setAttribute('country_name', $country->name); } if ($city != null) { $adv->setAttribute('city_name', $city->name); } + if ($district != null) { + $adv->setAttribute('district_name', $district->name); + } return $adv; } @@ -460,14 +465,22 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface return $advs->update(['finish_at' => $newDate]); } - public function getByUsersIDs($usersIDs) + public function getByUsersIDs($usersIDs, $status = 'approved', $withDraft = false) { - return $this + $ads = $this ->newQuery() ->whereIn('advs_advs.created_by_id', $usersIDs) - ->where('advs_advs.slug', '!=', "") - ->where('advs_advs.status', 'approved') ->where('advs_advs.finish_at', '>', date('Y-m-d H:i:s')); + + if ($status) { + $ads = $ads->where('advs_advs.status', 'approved'); + } + + if (!$withDraft) { + $ads = $ads->where('advs_advs.slug', '!=', ""); + } + + return $ads; } public function getPopular() diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php index 16984415e..1eaac9dac 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php @@ -45,7 +45,7 @@ interface AdvRepositoryInterface extends EntryRepositoryInterface public function extendAds($allAds, $isAdmin = false); - public function getByUsersIDs($usersIDs); + public function getByUsersIDs($usersIDs, $status = 'approved', $withDraft = false); public function getPopular();