Add admin panel, Meilisearch buyer search, email redesign, and multiple features
Admin panel (/admin, ROLE_ROOT): - Dashboard with CA HT Global/Commission cards and Meilisearch sync button - Buyers page with search (Meilisearch), create form, pagination (KnpPaginator) - Buyer actions: resend verification, force verify, reset password, delete - Organizers page with tabs (pending/approved), approve/reject with emails - Neo-brutalist design matching main site theme - Vite admin entry point with dedicated SCSS - CSP-compatible confirm dialogs via data-confirm attributes Meilisearch integration: - Auto-index buyers on email verification - Remove from index on buyer deletion - Manual sync button on dashboard - Search bar on buyers page - Add Meilisearch service to CI/SonarQube workflows - Add MEILISEARCH env vars to .env.test - Fix MeilisearchMessageHandler infinite loop: use request() directly instead of service methods that re-dispatch messages Email templates: - Redesign base email template to neo-brutalist style (borders, shadows, yellow footer) - Add E-Cosplay logo, "E-Ticket solution proposee par e-cosplay.fr" - Add admin_reset_password, organizer_approved, organizer_rejected templates Other: - Install knplabs/knp-paginator-bundle - Add ^/admin access_control for ROLE_ROOT in security.yaml - Update site footer with E-Ticket branding - 18 admin tests, updated MeilisearchMessageHandler tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
166
composer.lock
generated
166
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "ecb55cf346fc28e16c4caec521a016e2",
|
||||
"content-hash": "53da9b302a2b28356f861372e8679637",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
@@ -2387,6 +2387,170 @@
|
||||
},
|
||||
"time": "2025-11-30T20:12:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "knplabs/knp-components",
|
||||
"version": "v5.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/KnpLabs/knp-components.git",
|
||||
"reference": "eabf39263fff305c0024820c3736e5b03e7edf50"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/eabf39263fff305c0024820c3736e5b03e7edf50",
|
||||
"reference": "eabf39263fff305c0024820c3736e5b03e7edf50",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"symfony/event-dispatcher-contracts": "^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/dbal": "<3.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^3.8 || ^4.0",
|
||||
"doctrine/mongodb-odm": "^2.5.5",
|
||||
"doctrine/orm": "^2.13 || ^3.0",
|
||||
"doctrine/phpcr-odm": "^1.8 || ^2.0",
|
||||
"ext-pdo_sqlite": "*",
|
||||
"jackalope/jackalope-doctrine-dbal": "^1.12 || ^2.0",
|
||||
"phpunit/phpunit": "^10.5 || ^11.3",
|
||||
"propel/propel1": "^1.7",
|
||||
"ruflin/elastica": "^7.0",
|
||||
"solarium/solarium": "^6.0",
|
||||
"symfony/http-foundation": "^5.4.38 || ^6.4.4 || ^7.0",
|
||||
"symfony/http-kernel": "^5.4.38 || ^6.4.4 || ^7.0",
|
||||
"symfony/property-access": "^5.4.38 || ^6.4.4 || ^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/common": "to allow usage pagination with Doctrine ArrayCollection",
|
||||
"doctrine/mongodb-odm": "to allow usage pagination with Doctrine ODM MongoDB",
|
||||
"doctrine/orm": "to allow usage pagination with Doctrine ORM",
|
||||
"doctrine/phpcr-odm": "to allow usage pagination with Doctrine ODM PHPCR",
|
||||
"propel/propel1": "to allow usage pagination with Propel ORM",
|
||||
"ruflin/elastica": "to allow usage pagination with ElasticSearch Client",
|
||||
"solarium/solarium": "to allow usage pagination with Solarium Client",
|
||||
"symfony/http-foundation": "to retrieve arguments from Request",
|
||||
"symfony/property-access": "to allow sorting arrays"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Knp\\Component\\": "src/Knp/Component"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "KnpLabs Team",
|
||||
"homepage": "https://knplabs.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://github.com/KnpLabs/knp-components/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Knplabs component library",
|
||||
"homepage": "https://github.com/KnpLabs/knp-components",
|
||||
"keywords": [
|
||||
"components",
|
||||
"knp",
|
||||
"knplabs",
|
||||
"pager",
|
||||
"paginator"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/KnpLabs/knp-components/issues",
|
||||
"source": "https://github.com/KnpLabs/knp-components/tree/v5.2.0"
|
||||
},
|
||||
"time": "2025-03-20T07:35:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "knplabs/knp-paginator-bundle",
|
||||
"version": "v6.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/KnpLabs/KnpPaginatorBundle.git",
|
||||
"reference": "8d41f8ed47d880f8fa569389ffa4fecfbc5b8d41"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/8d41f8ed47d880f8fa569389ffa4fecfbc5b8d41",
|
||||
"reference": "8d41f8ed47d880f8fa569389ffa4fecfbc5b8d41",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"knplabs/knp-components": "^4.4 || ^5.0",
|
||||
"php": "^8.1",
|
||||
"symfony/config": "^6.4 || ^7.0 || ^8.0",
|
||||
"symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0",
|
||||
"symfony/event-dispatcher": "^6.4 || ^7.0 || ^8.0",
|
||||
"symfony/http-foundation": "^6.4 || ^7.0 || ^8.0",
|
||||
"symfony/http-kernel": "^6.4 || ^7.0 || ^8.0",
|
||||
"symfony/routing": "^6.4 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.12",
|
||||
"phpunit/phpunit": "^10.5 || ^11.5 || ^12.2",
|
||||
"symfony/templating": "^6.4 || ^7.0 || ^8.0",
|
||||
"symfony/translation": "^6.4 || ^7.0 || ^8.0",
|
||||
"twig/twig": "^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/translation": "To use the templates",
|
||||
"twig/twig": "To use the templates"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Knp\\Bundle\\PaginatorBundle\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "KnpLabs Team",
|
||||
"homepage": "https://knplabs.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://github.com/KnpLabs/KnpPaginatorBundle/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Paginator bundle for Symfony to automate pagination and simplify sorting and other features",
|
||||
"homepage": "https://github.com/KnpLabs/KnpPaginatorBundle",
|
||||
"keywords": [
|
||||
"bundle",
|
||||
"knp",
|
||||
"knplabs",
|
||||
"pager",
|
||||
"pagination",
|
||||
"paginator",
|
||||
"symfony"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/KnpLabs/KnpPaginatorBundle/issues",
|
||||
"source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v6.10.0"
|
||||
},
|
||||
"time": "2025-11-29T09:14:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "knpuniversity/oauth2-client-bundle",
|
||||
"version": "v2.20.2",
|
||||
|
||||
Reference in New Issue
Block a user