From: Vincent Vanwaelscappel Date: Thu, 22 Feb 2024 15:07:41 +0000 (+0100) Subject: wip #6744 @5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=0b98d9a71b7f908b2a337e10921b3277fa9ae9c8;p=fluidbook-toolbox.git wip #6744 @5 --- diff --git a/app/Http/Controllers/Admin/Operations/TeamLeave/ICSOperation.php b/app/Http/Controllers/Admin/Operations/TeamLeave/ICSOperation.php index fc493c276..5cf0e0a30 100644 --- a/app/Http/Controllers/Admin/Operations/TeamLeave/ICSOperation.php +++ b/app/Http/Controllers/Admin/Operations/TeamLeave/ICSOperation.php @@ -19,25 +19,44 @@ trait ICSOperation { protected function setupICSRoutes($segment, $routeName, $controller) { - Route::match(['get'], $segment . '/ics', $controller . '@ics')->middleware([CORSMiddleware::class])->withoutMiddleware([VerifyCsrfToken::class, Authenticate::class, CheckIfAdmin::class]); + Route::match(['get'], $segment . '/ics/{user?}', $controller . '@ics')->middleware([CORSMiddleware::class])->withoutMiddleware([VerifyCsrfToken::class, Authenticate::class, CheckIfAdmin::class]); } - protected function ics() + protected function ics($user = null) { $calendar = new Calendar(); $calendar->setProdId('FluidbookToolbox'); $calendar->setTimezone(new \DateTimeZone('Europe/Paris')); - $calendar->setName('Planning Vacances'); + $users = []; - foreach (TeamLeave::where('public', '1')->get() as $leave) { + $q = TeamLeave::withoutGlobalScopes(); + if (null === $user) { + $q->where('public', '1'); + $calendar->setName(__('Planning Vacances')); + } else { + if (!isset($users[$user])) { + $users[$user] = User::withoutGlobalScopes()->find($user); + } + $q->where('worker', $user); + $calendar->setName(__('Planning Vacances') . ' ' . $users[$user]->firstname); + } + + + foreach ($q->get() as $leave) { if (!isset($users[$leave->worker])) { $users[$leave->worker] = User::withoutGlobalScopes()->find($leave->worker); } /** @var User $user */ $user = $users[$leave->worker]; + if (null === $user) { + $summary = $user->firstname; + } else { + $summary = __('Congés'); + } + /** @var $leave TeamLeave */ $event = new CalendarEvent(); $event @@ -46,7 +65,7 @@ trait ICSOperation ->setColor($user->planning_color) ->setDescription('test') ->setAllDay(true) - ->setSummary($user->firstname) + ->setSummary($summary) ->setUid('cubedesigners-toolbox-holidays-' . $leave->id); $calendar->addEvent($event); diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 7619310ca..310afa9d2 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -174,7 +174,12 @@ class FluidbookPublication extends ToolboxStatusModel 'owner_company_name' => __('Propriétaire'), 'owner_name' => __('Propriétaire'), 'invoicable' => __('Utilisateur facturable'), - 'invoicable_company' => __('Facturation'), + 'invoicable_company' => [ + 'label' => __('Facturation'), + 'filter' => true, + 'filter_type' => 'select2', + 'filter_values' => Permissions::getAllInvoicableCompanies(), + ], 'extranet_project' => __('Project extranet'), ]; diff --git a/app/Widgets.php b/app/Widgets.php index 8028924fe..1a8696218 100644 --- a/app/Widgets.php +++ b/app/Widgets.php @@ -4,6 +4,7 @@ namespace App; +use App\Models\FluidbookPublication; use App\Models\FluidbookQuote; use Backpack\CRUD\app\Library\Widget; @@ -62,9 +63,8 @@ class Widgets { $notifications = backpack_user()->notifications->slice(0, 10); if (count($notifications)) { - Widget::add([ - 'name'=>'notifications', + 'name' => 'notifications', 'type' => 'view', 'view' => 'tasks.list', 'wrapper' => $wrapper, @@ -72,7 +72,20 @@ class Widgets 'heading' => $heading, 'notifications' => $notifications, ]); + } + } + public static function userWidgets($wrapper = null, $class = '', $heading = '') + { + if (can('fluidbook-publication:admin')) { + Widget::add([ + 'name' => 'user_1', + 'type' => 'view', + 'view' => 'list.widget', + 'heading' => 'StudioFrance', + 'model' => FluidbookPublication::class, + 'filters' => ['status' => 2, 'invoicable_company' => 1509], + ]); } } } diff --git a/resources/views/list/widget.blade.php b/resources/views/list/widget.blade.php new file mode 100644 index 000000000..e69de29bb diff --git a/resources/views/vendor/backpack/base/dashboard.blade.php b/resources/views/vendor/backpack/base/dashboard.blade.php index db8e3d162..f18fb7b82 100644 --- a/resources/views/vendor/backpack/base/dashboard.blade.php +++ b/resources/views/vendor/backpack/base/dashboard.blade.php @@ -5,6 +5,6 @@ \App\Widgets::fluidbookQuoteWidgets(); \App\Widgets::notificationsWidget(['class' => 'col-sm-8 dashboard-wrapper'],'dashboard',__('Notifications')); \App\Widgets::teamWidgets(['class' => 'col-sm-4 dashboard-wrapper'],'dashboard',__('Planning de l\'équipe')); - + \App\Widgets::userWidgets([],'dashboard'); @endphp diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/create_us.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/create_us.blade.php index 8545f011b..0906bcf76 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/create_us.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/create_us.blade.php @@ -1,4 +1,4 @@ -@if ($crud->hasAccess('create')) +@if (can('fluidbook-publication:us')) {{__('Créer une publication hébergée aux USA')}} @endif