From f9c02af11b1fec081487eedbe3ef146eb9f5267f Mon Sep 17 00:00:00 2001 From: Corentin Huet Date: Thu, 13 Mar 2025 12:14:30 +0100 Subject: [PATCH] feat: :sparkles: added mep date on tickets --- app/Http/Requests/Bo/StoreTicket.php | 1 + app/Models/Ticket.php | 2 ++ ...5_03_13_094420_add_mep_date_on_tickets.php | 32 +++++++++++++++++++ resources/lang/en/validation.php | 14 ++++---- resources/lang/fr/validation.php | 14 ++++---- .../bo/pages/tickets/form-inputs.blade.php | 5 +++ .../views/bo/pages/tickets/index.blade.php | 12 +++---- 7 files changed, 62 insertions(+), 18 deletions(-) create mode 100644 database/migrations/2025_03_13_094420_add_mep_date_on_tickets.php diff --git a/app/Http/Requests/Bo/StoreTicket.php b/app/Http/Requests/Bo/StoreTicket.php index 41a512c..c85fcc4 100644 --- a/app/Http/Requests/Bo/StoreTicket.php +++ b/app/Http/Requests/Bo/StoreTicket.php @@ -96,6 +96,7 @@ class StoreTicket extends FormRequest } } ], + 'date_mep' => 'required|date', 'text' => 'required|string|min:40', 'title' => 'required|string|between:3,255', 'file_tickets' => 'sometimes|array', diff --git a/app/Models/Ticket.php b/app/Models/Ticket.php index f7e0862..1fa1732 100644 --- a/app/Models/Ticket.php +++ b/app/Models/Ticket.php @@ -33,6 +33,7 @@ class Ticket extends Model 'type', 'status', 'order', + 'date_mep', 'text', 'title', 'is_internal', @@ -48,6 +49,7 @@ class Ticket extends Model 'is_internal' => 'bool', 'type' => TicketTypeEnum::class, 'status' => TicketStatusEnum::class, + 'date_mep' => 'date', 'last_activity' => 'timestamp', ]; diff --git a/database/migrations/2025_03_13_094420_add_mep_date_on_tickets.php b/database/migrations/2025_03_13_094420_add_mep_date_on_tickets.php new file mode 100644 index 0000000..deb9c5b --- /dev/null +++ b/database/migrations/2025_03_13_094420_add_mep_date_on_tickets.php @@ -0,0 +1,32 @@ +date('date_mep')->nullable()->after('gitlab_issue')->comment('Date MEP souhaitée'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::table('tickets', function (Blueprint $table) { + $table->dropColumn('date_mep'); + }); + } +}; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index 170d2ac..35c2795 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -215,11 +215,13 @@ return [ 'year' => 'year', ], 'custom' => [ - 'type' => 'type', - 'tickets' => 'tickets', - 'assigned_to' => 'assigned to', - 'order' => 'order', - 'priority' => 'priority', - 'default' => 'default', + 'type' => 'type', + 'tickets' => 'tickets', + 'assigned_to' => 'assigned to', + 'order' => 'order', + 'priority' => 'priority', + 'default' => 'default', + 'date_mep' => 'desired MEP date', + 'date_mep_empty' => 'no date entered' ] ]; diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php index 39d3513..e50b509 100644 --- a/resources/lang/fr/validation.php +++ b/resources/lang/fr/validation.php @@ -251,11 +251,13 @@ return [ 'id' => 'identifiant' ], 'custom' => [ - 'type' => 'type', - 'tickets' => 'étiquettes', - 'assigned_to' => 'assigné à', - 'order' => 'ordre', - 'priority' => 'priorité', - 'default' => 'défaut', + 'type' => 'type', + 'tickets' => 'étiquettes', + 'assigned_to' => 'assigné à', + 'order' => 'ordre', + 'priority' => 'priorité', + 'default' => 'défaut', + 'date_mep' => 'date de MEP souhaitée', + 'date_mep_empty' => 'aucune date renseignée' ] ]; diff --git a/resources/views/bo/pages/tickets/form-inputs.blade.php b/resources/views/bo/pages/tickets/form-inputs.blade.php index cbdeea1..2128af7 100644 --- a/resources/views/bo/pages/tickets/form-inputs.blade.php +++ b/resources/views/bo/pages/tickets/form-inputs.blade.php @@ -93,6 +93,11 @@ @endcan + +
+ + +
diff --git a/resources/views/bo/pages/tickets/index.blade.php b/resources/views/bo/pages/tickets/index.blade.php index 34ead0b..eb9299e 100644 --- a/resources/views/bo/pages/tickets/index.blade.php +++ b/resources/views/bo/pages/tickets/index.blade.php @@ -198,11 +198,8 @@ if (Auth::user()->isAdmin()) { $cols = array_merge($cols, [ 'tickets' => Str::ucfirst(__('validation.custom.tickets')), - ]); - } - if (Auth::user()->isAdmin()) { - $cols = array_merge($cols, [ 'assigned_to' => Str::ucfirst(__('validation.custom.assigned_to')), + 'date_mep' => Str::ucfirst(__('validation.custom.date_mep')), ]); } $cols = array_merge($cols, [ @@ -211,7 +208,7 @@ @endphp @include('bo.modules.table-col-sorter', [ 'cols' => $cols, - 'ignore' => ['id', 'tickets', 'order'] + 'ignore' => ['id', 'tickets'], ]) @@ -278,9 +275,12 @@ @endcan - {{-- assigned_to --}} + {{-- assigned_to / date_mep --}} @if (Auth::user()->isAdmin()) {{ $ticket->assignedUser ? $ticket->assignedUser->name : __('Personne') }} + + {{ is_null($ticket->date_mep) ? Str::ucfirst(__("validation.custom.date_mep_empty")) : $ticket->date_mep->format('d/m/Y') }} + @endif {{ Carbon\Carbon::parse($ticket->created_at)->format('d/m/Y à H:i') }}