feat(tickets): suivi bidirectionnel des tickets utilisateur via Gitea
CI - Intégration continue / quality-and-tests (pull_request) Successful in 3m27s

Le formulaire 'fire-and-forget' devient un vrai systeme de suivi :
- table locale tickets (user <-> numero d'issue Gitea)
- liste 'Mes tickets' avec etat (En cours / Resolu) et jalon
- page de suivi : etat, labels, jalon, fil de discussion (commentaires)
- reponse depuis le web (ajoute un commentaire sur l'issue Gitea)
- controle d'acces : un utilisateur ne voit que ses propres tickets
- GiteaIssueService etendu (getIssue, getComments, addComment)
- remplace l'ancien SuggestionController ; 5 tests de bout en bout

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-08 23:38:42 +02:00
parent 69da55b292
commit 7d52c1e440
14 changed files with 568 additions and 194 deletions
@@ -50,15 +50,15 @@
Guides & Informations
</a>
<!-- Signaler / Suggérer (utilisateur connecté ticket Gitea) -->
<!-- Mes tickets (utilisateur connecté suivi Gitea) -->
@auth
<a href="{{ route('suggestions.create') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all group {{ request()->routeIs('suggestions.*') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium border-b border-slate-100/50' }}"
{!! request()->routeIs('suggestions.*') ? 'aria-current="page"' : '' !!}>
<div class="w-8 h-8 rounded-sm flex items-center justify-center transition-colors {{ request()->routeIs('suggestions.*') ? 'bg-white/20 text-white' : 'bg-green-50 text-[--cz-jade]' }}" aria-hidden="true">
<a href="{{ route('tickets.index') }}"
class="flex items-center gap-4 px-4 py-3 rounded-sm transition-all group {{ request()->routeIs('tickets.*') ? 'text-white bg-[#000091] font-bold shadow-md' : 'text-slate-700 hover:bg-slate-50 font-medium border-b border-slate-100/50' }}"
{!! request()->routeIs('tickets.*') ? 'aria-current="page"' : '' !!}>
<div class="w-8 h-8 rounded-sm flex items-center justify-center transition-colors {{ request()->routeIs('tickets.*') ? 'bg-white/20 text-white' : 'bg-green-50 text-[--cz-jade]' }}" aria-hidden="true">
<x-heroicon-o-chat-bubble-left-right class="h-4 w-4" />
</div>
Signaler / Suggérer
Mes tickets
</a>
@endauth