- OrganizerInvitation entity: companyName, firstName, lastName, email,
message, status (sent/opened/accepted/refused), unique token (64 hex chars)
- Admin route /admin/organisateurs/inviter: form + invitation list with status
- Button "Inviter un organisateur" on admin organizers page
- Email with accept/refuse links using unique token
- Public route /invitation/{token}/{action}: accept or refuse without auth
- Response page: confirmation message for accept/refuse
- Migration, PHPStan config, 7 entity tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
29 lines
1.6 KiB
Twig
29 lines
1.6 KiB
Twig
{% extends 'base.html.twig' %}
|
|
|
|
{% block title %}{{ accepted ? 'Invitation acceptee' : 'Invitation refusee' }} - E-Ticket{% endblock %}
|
|
|
|
{% block body %}
|
|
<div class="page-container">
|
|
<div class="max-w-xl mx-auto text-center">
|
|
<div class="card-brutal p-8">
|
|
{% if accepted %}
|
|
<div class="text-6xl mb-4 text-green-600">✓</div>
|
|
<h1 class="text-3xl font-black uppercase tracking-tighter italic heading-page mb-4">Invitation acceptee</h1>
|
|
<p class="font-bold text-gray-600 mb-2">Merci {{ invitation.firstName }} !</p>
|
|
<p class="text-sm font-bold text-gray-500 mb-6">Votre compte organisateur pour <strong>{{ invitation.companyName }}</strong> sera bientot active. Vous recevrez un email de confirmation.</p>
|
|
<a href="{{ path('app_home') }}" class="btn-brutal font-black uppercase text-sm tracking-widest hover:bg-indigo-600 hover:text-white transition-all">
|
|
Decouvrir E-Ticket
|
|
</a>
|
|
{% else %}
|
|
<div class="text-6xl mb-4 text-gray-400">✕</div>
|
|
<h1 class="text-3xl font-black uppercase tracking-tighter italic heading-page mb-4">Invitation refusee</h1>
|
|
<p class="font-bold text-gray-600 mb-6">Nous avons bien pris en compte votre decision. Merci d'avoir pris le temps de repondre.</p>
|
|
<a href="{{ path('app_home') }}" class="btn-brutal font-black uppercase text-sm tracking-widest hover:bg-gray-100 transition-all">
|
|
Retour a l'accueil
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|