From 05efc803f845d0fb7f07681a60a32ad4c2d50361 Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Tue, 5 Apr 2022 11:08:38 +0200 Subject: [PATCH 1/3] Ticket 775 : fix tickets count on sites/Projects/User pages --- app/Http/Controllers/Controller.php | 84 +++++++++++----------- app/Http/Controllers/ProjectController.php | 9 +++ app/Http/Controllers/SiteController.php | 8 +++ app/Http/Controllers/UserController.php | 11 ++- 4 files changed, 71 insertions(+), 41 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 91b282c..16e674f 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -19,45 +19,49 @@ class Controller extends BaseController public function __construct() { - $ignore = [ - 9, -// Support Web - 15, -// Gen-Game- Web - 19, -// Store LDC - 27, -// CRM - 55, -// LDC - WEB - ]; - - $ticketsNew = Ticket::where('status', TicketStatus::new()); - $ticketsWaiting = Ticket::where('status', TicketStatus::waiting()); - $ticketsInProgress = Ticket::whereNotIn( - 'status', - [ - TicketStatus::new(), - TicketStatus::estimateTodo(), - TicketStatus::estimateValidated(), - TicketStatus::toPlan(), - TicketStatus::planned(), - TicketStatus::waiting(), - TicketStatus::production(), - TicketStatus::archived() - ] - ); - - - $user = Auth::user(); - if (!is_null($user) && !$user->isAdmin()) { - $ticketsNew = $ticketsNew->where('is_internal', 0)->whereNotIn('site_id', $ignore); - $ticketsWaiting = $ticketsWaiting->where('is_internal', 0)->whereNotIn('site_id', $ignore); - $ticketsInProgress = $ticketsInProgress->where('is_internal', 0)->whereNotIn('site_id', $ignore); - } - - View::share('ticketsNew', $ticketsNew->count()); - View::share('ticketsWaiting', $ticketsWaiting->count()); - View::share('ticketsInProgress', $ticketsInProgress->count()); + $this->middleware(function($request, $next) { + $ignore = [ + // Support Web + 9, + // Gen-Game- Web + 15, + // Store LDC + 19, + // CRM + 27, + // LDC - WEB + 55, + ]; + + $ticketsNew = Ticket::where('status', TicketStatus::new()); + $ticketsWaiting = Ticket::where('status', TicketStatus::waiting()); + $ticketsInProgress = Ticket::whereNotIn( + 'status', + [ + TicketStatus::new(), + TicketStatus::estimateTodo(), + TicketStatus::estimateValidated(), + TicketStatus::toPlan(), + TicketStatus::planned(), + TicketStatus::waiting(), + TicketStatus::production(), + TicketStatus::archived() + ] + ); + + /** @var \App\Models\User|null $user */ + $user = Auth::user(); + if (!is_null($user) and !$user->isAdmin()) { + $ticketsNew = $ticketsNew->where('is_internal', 0)->whereNotIn('site_id', $ignore); + $ticketsWaiting = $ticketsWaiting->where('is_internal', 0)->whereNotIn('site_id', $ignore); + $ticketsInProgress = $ticketsInProgress->where('is_internal', 0)->whereNotIn('site_id', $ignore); + } + + View::share('ticketsNew', $ticketsNew->count()); + View::share('ticketsWaiting', $ticketsWaiting->count()); + View::share('ticketsInProgress', $ticketsInProgress->count()); + + return $next($request); + }); } } diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 483a579..f6dfb6b 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -10,11 +10,20 @@ use Kwaadpepper\CrudPolicies\Traits\CrudController; class ProjectController extends Controller { + use CrudController { + __construct as __CrudConstructor; index as crudIndex; show as crudShow; } + public function __construct() + { + parent::__construct(); + $this->__CrudConstructor(); + $this->authorizeResource(Project::class, 'project'); + } + /** @var Project */ public static $modelClass = Project::class; diff --git a/app/Http/Controllers/SiteController.php b/app/Http/Controllers/SiteController.php index 43d5d80..112dd17 100644 --- a/app/Http/Controllers/SiteController.php +++ b/app/Http/Controllers/SiteController.php @@ -9,9 +9,17 @@ use Kwaadpepper\CrudPolicies\Traits\CrudController; class SiteController extends Controller { use CrudController { + __construct as __CrudConstructor; index as crudIndex; } + public function __construct() + { + parent::__construct(); + $this->__CrudConstructor(); + $this->authorizeResource(Site::class, 'site'); + } + /** @var Site */ public static $modelClass = Site::class; diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 4e14d20..426ee51 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -11,7 +11,16 @@ use Kwaadpepper\CrudPolicies\Traits\CrudController; class UserController extends Controller { - use CrudController; + use CrudController { + __construct as __CrudConstructor; + } + + public function __construct() + { + parent::__construct(); + $this->__CrudConstructor(); + $this->authorizeResource(User::class, 'user'); + } /** @var User */ public static $modelClass = User::class; From 22efb2848a34494cc0c3c22635818eeccb3005f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Thu, 7 Apr 2022 15:06:28 +0200 Subject: [PATCH 2/3] Fix ticket reopen --- app/Http/Controllers/TicketController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/TicketController.php b/app/Http/Controllers/TicketController.php index 6ca5fdc..6f4c17f 100644 --- a/app/Http/Controllers/TicketController.php +++ b/app/Http/Controllers/TicketController.php @@ -384,7 +384,7 @@ class TicketController extends Controller $ticket->status = TicketStatus::inprogress(); $ticket->saveQuietly(); event(new TicketStatusChanged($ticket, $oldStatus, null, $message)); - event(new NotifySubscriptions($ticket, $message, collect($ticket->user))); + event(new NotifySubscriptions($ticket, $message, collect([$ticket->user]))); User::find(Auth::user()->id)->subscriptions()->toggle($ticket->id); return back()->with('warning', trans('Votre ticket à été réouvert.')); } From 71752f847e335bb9d560910b671ad16f5f6a3527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Thu, 7 Apr 2022 15:11:37 +0200 Subject: [PATCH 3/3] add .vscode to gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f9f5287..eddb713 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /public/* /storage/*.key /vendor +.vscode .env .env.backup .env.dev @@ -16,4 +17,4 @@ npm-debug.log yarn-error.log package-lock.json composer.lock -.idea/ \ No newline at end of file +.idea/