fixtures done
This commit is contained in:
@@ -7,6 +7,10 @@ parameters:
|
||||
|
||||
services:
|
||||
# default configuration for services in *this* file
|
||||
doctrine.fixtures.purger.orm_purger_factory:
|
||||
class: App\Purger\MyPurgerFactory
|
||||
tags:
|
||||
- { name: doctrine.fixtures.purger_factory, alias: default }
|
||||
_defaults:
|
||||
autowire: true # Automatically injects dependencies in your services.
|
||||
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
|
||||
|
||||
@@ -12,6 +12,7 @@ class EtatFixtures extends Fixture
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$etats = [
|
||||
'Créée',
|
||||
'Ouverte',
|
||||
'Clôturée',
|
||||
'En cours',
|
||||
@@ -22,6 +23,7 @@ class EtatFixtures extends Fixture
|
||||
foreach ($etats as $libelle) {
|
||||
$etat = new Etat();
|
||||
$etat->setLibelle($libelle);
|
||||
$this->addReference($libelle, $etat);
|
||||
$manager->persist($etat);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,37 +8,60 @@ use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Faker\Factory;
|
||||
|
||||
class LieuFixtures extends Fixture implements DependentFixtureInterface
|
||||
class LieuFixtures extends Fixture
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$faker = Factory::create();
|
||||
$nantes = new Lieu();
|
||||
$nantes->setNom('Nantes');
|
||||
$nantes->setRue('Rue Franklin');
|
||||
$nantes->setCodePostal('44162');
|
||||
$nantes->setVille('Nantes');
|
||||
$nantes->setLatitude(47.22586773967533);
|
||||
$nantes->setLongitude(-1.6178418031088329);
|
||||
$this->addReference('lieu_nantes',$nantes);
|
||||
$manager->persist($nantes);
|
||||
|
||||
$villes = [
|
||||
$this->getReference('ville_Paris'),
|
||||
$this->getReference('ville_Lyon'),
|
||||
$this->getReference('ville_Marseille'),
|
||||
];
|
||||
$paris = new Lieu();
|
||||
$paris->setNom('Paris');
|
||||
$paris->setRue('Avenue des Champs-Élysées');
|
||||
$paris->setCodePostal('75008');
|
||||
$paris->setVille('Paris');
|
||||
$paris->setLatitude(48.8706751269931);
|
||||
$paris->setLongitude(2.3050144547273788);
|
||||
$this->addReference('lieu_paris',$paris);
|
||||
$manager->persist($paris);
|
||||
|
||||
foreach ($villes as $ville) {
|
||||
for ($i = 0; $i < 5; $i++) {
|
||||
$lieu = new Lieu();
|
||||
$lieu->setNom($faker->streetName());
|
||||
$lieu->setRue($faker->streetAddress());
|
||||
$lieu->setLatitude($faker->latitude());
|
||||
$lieu->setLongitude($faker->longitude());
|
||||
$lieu->setVille($ville);
|
||||
$manager->persist($lieu);
|
||||
}
|
||||
}
|
||||
$sablesDolonnees = new Lieu();
|
||||
$sablesDolonnees->setNom("Les Sables d'Olonne");
|
||||
$sablesDolonnees->setRue('Avenue de Bretagne');
|
||||
$sablesDolonnees->setCodePostal('85100');
|
||||
$sablesDolonnees->setVille("Les Sables d'Olonne");
|
||||
$sablesDolonnees->setLatitude(46.502285798756674);
|
||||
$sablesDolonnees->setLongitude(-1.7780244910467913);
|
||||
$this->addReference('lieu_sablesDolonnees',$sablesDolonnees);
|
||||
$manager->persist($sablesDolonnees);
|
||||
|
||||
$marseille = new Lieu();
|
||||
$marseille->setNom("Marseille");
|
||||
$marseille->setRue('Quai de Rive Neuve');
|
||||
$marseille->setCodePostal('13007');
|
||||
$marseille->setVille('Marseille');
|
||||
$marseille->setLatitude(43.292801737408666);
|
||||
$marseille->setLongitude(5.3685224670508465);
|
||||
$this->addReference('lieu_marseille',$marseille);
|
||||
$manager->persist($marseille);
|
||||
|
||||
$nice = new Lieu();
|
||||
$nice->setNom("Nice");
|
||||
$nice->setRue('Rue de France');
|
||||
$nice->setCodePostal('06000');
|
||||
$nice->setVille('Nice');
|
||||
$nice->setLatitude(43.696133144116466);
|
||||
$nice->setLongitude(7.262421611744638);
|
||||
$this->addReference('lieu_nice',$nice);
|
||||
$manager->persist($nice);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
public function getDependencies(): array
|
||||
{
|
||||
return [
|
||||
VilleFixtures::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
40
src/DataFixtures/SiteFixtures.php
Normal file
40
src/DataFixtures/SiteFixtures.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Site;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
||||
class SiteFixtures extends Fixture
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$nantes = new Site();
|
||||
$nantes->setNom('Nantes');
|
||||
$this->addReference('site_nantes', $nantes);
|
||||
$manager->persist($nantes);
|
||||
|
||||
$paris = new Site();
|
||||
$paris->setNom('Paris');
|
||||
$this->addReference('site_paris', $paris);
|
||||
$manager->persist($paris);
|
||||
|
||||
$marseille = new Site();
|
||||
$marseille->setNom('Marseille');
|
||||
$this->addReference('site_marseille', $marseille);
|
||||
$manager->persist($marseille);
|
||||
|
||||
$nice = new Site();
|
||||
$nice->setNom('Nice');
|
||||
$this->addReference('site_nice', $nice);
|
||||
$manager->persist($nice);
|
||||
|
||||
$sabledolonne = new Site();
|
||||
$sabledolonne->setNom('Les Sables d\'Olonne');
|
||||
$this->addReference('site_sables_des_olonne', $sabledolonne);
|
||||
$manager->persist($sabledolonne);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
}
|
||||
@@ -4,22 +4,88 @@ namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Sortie;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
||||
class SortieFixtures extends Fixture
|
||||
class SortieFixtures extends Fixture implements DependentFixtureInterface
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$sortie = new Sortie();
|
||||
$sortie->setNom('Sortie 1');
|
||||
$sortie->setInfosSortie('Description de la sortie 1');
|
||||
$sortie->setDuree(45);
|
||||
$sortie->setDateHeureDebut(new \DateTimeImmutable('2024-11-30 09:15:00'));
|
||||
$sortie->setDateLimiteInscription(new \DateTimeImmutable('2024-12-25 12:30:00'));
|
||||
$sortie->setNbInscriptionsMax(25);
|
||||
$balade = new Sortie();
|
||||
$balade->setNom('La balade des gens heureux');
|
||||
$balade->setInfosSortie('Balade sympathique en bord de mer en espérant que vous aimez !');
|
||||
$balade->setDuree(45);
|
||||
$balade->setOrganisateur($this->getReference('organisateur'));
|
||||
$balade->setLieu($this->getReference('lieu_nice'));
|
||||
$balade->setEtat($this->getReference('Ouverte'));
|
||||
$balade->setSite($this->getReference('site_nice'));
|
||||
$balade->setDateHeureDebut(new \DateTimeImmutable('2024-12-30 09:15:00'));
|
||||
$balade->setDateLimiteInscription(new \DateTimeImmutable('2024-12-25 12:30:00'));
|
||||
$balade->setNbInscriptionsMax(25);
|
||||
$manager->persist($balade);
|
||||
|
||||
$manager->persist($sortie);
|
||||
$club = new Sortie();
|
||||
$club->setNom('Night club');
|
||||
$club->setInfosSortie('Night club le plus hype de la cote sud');
|
||||
$club->setDuree(600);
|
||||
$club->setOrganisateur($this->getReference('organisateur'));
|
||||
$club->setLieu($this->getReference('lieu_marseille'));
|
||||
$club->setEtat($this->getReference('Créée'));
|
||||
$club->setSite($this->getReference('site_marseille'));
|
||||
$club->setDateHeureDebut(new \DateTimeImmutable('2025-02-11 22:00:00'));
|
||||
$club->setDateLimiteInscription(new \DateTimeImmutable('2025-02-10 18:30:00'));
|
||||
$club->setNbInscriptionsMax(500);
|
||||
$manager->persist($club);
|
||||
|
||||
$museum = new Sortie();
|
||||
$museum->setNom('Musée d\'art');
|
||||
$museum->setInfosSortie('Musée d\'art contemporain représentant l\'histoire et la culture de la ville');
|
||||
$museum->setDuree(300);
|
||||
$museum->setOrganisateur($this->getReference('olivier'));
|
||||
$museum->setLieu($this->getReference('lieu_sablesDolonnees'));
|
||||
$museum->setEtat($this->getReference('Terminée'));
|
||||
$museum->setSite($this->getReference('site_sables_des_olonne'));
|
||||
$museum->setDateHeureDebut(new \DateTimeImmutable('2024-08-22 16:00:00'));
|
||||
$museum->setDateLimiteInscription(new \DateTimeImmutable('2025-08-20 20:00:00'));
|
||||
$museum->setNbInscriptionsMax(500);
|
||||
$manager->persist($museum);
|
||||
|
||||
$coffee = new Sortie();
|
||||
$coffee->setNom('La pause Caf');
|
||||
$coffee->setInfosSortie('La pause Caf, votre réunion quotidienne pour du divertissement');
|
||||
$coffee->setDuree(60);
|
||||
$coffee->setOrganisateur($this->getReference('marvin'));
|
||||
$coffee->setLieu($this->getReference('lieu_paris'));
|
||||
$coffee->setEtat($this->getReference('En cours'));
|
||||
$coffee->setSite($this->getReference('site_paris'));
|
||||
$coffee->setDateHeureDebut(new \DateTimeImmutable('2024-11-29 10:15:00'));
|
||||
$coffee->setDateLimiteInscription(new \DateTimeImmutable('2024-11-28 17:00:00'));
|
||||
$coffee->setNbInscriptionsMax(5);
|
||||
$manager->persist($coffee);
|
||||
|
||||
$cascade = new Sortie();
|
||||
$cascade->setNom('Spectacle dangeureux');
|
||||
$cascade->setInfosSortie('Spectacle de cascade super dangeureuse (à ne pas reproduire)');
|
||||
$cascade->setDuree(15);
|
||||
$cascade->setOrganisateur($this->getReference('johan'));
|
||||
$cascade->setLieu($this->getReference('lieu_nantes'));
|
||||
$cascade->setEtat($this->getReference('Annulée'));
|
||||
$cascade->setMotifAnnul('Accident du cascadeur');
|
||||
$cascade->setSite($this->getReference('site_nantes'));
|
||||
$cascade->setDateHeureDebut(new \DateTimeImmutable('2025-03-14 14:30:00'));
|
||||
$cascade->setDateLimiteInscription(new \DateTimeImmutable('2025-03-10 18:30:00'));
|
||||
$cascade->setNbInscriptionsMax(25);
|
||||
$manager->persist($cascade);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
public function getDependencies(): array
|
||||
{
|
||||
return [
|
||||
LieuFixtures::class,
|
||||
UserFixtures::class,
|
||||
EtatFixtures::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,11 @@ namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Participant;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
||||
|
||||
class UserFixtures extends Fixture
|
||||
class UserFixtures extends Fixture implements DependentFixtureInterface
|
||||
{
|
||||
private UserPasswordHasherInterface $userPasswordHasher;
|
||||
public function __construct(UserPasswordHasherInterface $userPasswordHasher){
|
||||
@@ -24,8 +25,10 @@ class UserFixtures extends Fixture
|
||||
$olivier->setRoles(['ROLE_USER', 'ROLE_ADMIN']);
|
||||
$olivier->setAdministrateur(true);
|
||||
$olivier->setPending(false);
|
||||
$olivier->setSite($this->getReference('site_nantes'));
|
||||
$olivier->setActif(false);
|
||||
$olivier->setPassword($this->userPasswordHasher->hashPassword($olivier, 'test-44'));
|
||||
$this->addReference('olivier', $olivier);
|
||||
$manager->persist($olivier);
|
||||
|
||||
$johan = new Participant();
|
||||
@@ -38,7 +41,9 @@ class UserFixtures extends Fixture
|
||||
$johan->setAdministrateur(true);
|
||||
$johan->setPending(false);
|
||||
$johan->setActif(false);
|
||||
$johan->setSite($this->getReference('site_paris'));
|
||||
$johan->setPassword($this->userPasswordHasher->hashPassword($johan, 'Vn21pd%6a%Hw5j'));
|
||||
$this->addReference('johan', $johan);
|
||||
$manager->persist($johan);
|
||||
|
||||
$marvin = new Participant();
|
||||
@@ -50,10 +55,34 @@ class UserFixtures extends Fixture
|
||||
$marvin->setRoles(['ROLE_USER', 'ROLE_ADMIN']);
|
||||
$marvin->setAdministrateur(true);
|
||||
$marvin->setPending(false);
|
||||
$marvin->setSite($this->getReference('site_marseille'));
|
||||
$marvin->setActif(false);
|
||||
$marvin->setPassword($this->userPasswordHasher->hashPassword($marvin, 'test-44'));
|
||||
$this->addReference('marvin', $marvin);
|
||||
$manager->persist($marvin);
|
||||
|
||||
$organisateur = new Participant();
|
||||
$organisateur->setPrenom('Jean');
|
||||
$organisateur->setNom('Biscotte');
|
||||
$organisateur->setPseudo('Organisateur');
|
||||
$organisateur->setTelephone('0675794302');
|
||||
$organisateur->setEmail('organisateur@gmail.com');
|
||||
$organisateur->setRoles(['ROLE_USER']);
|
||||
$organisateur->setAdministrateur(false);
|
||||
$organisateur->setPending(false);
|
||||
$organisateur->setActif(false);
|
||||
$organisateur->setSite($this->getReference('site_paris'));
|
||||
$organisateur->setPassword($this->userPasswordHasher->hashPassword($organisateur, 'test-44'));
|
||||
$this->addReference('organisateur', $organisateur);
|
||||
$manager->persist($organisateur);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
public function getDependencies(): array
|
||||
{
|
||||
return [
|
||||
SiteFixtures::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Ville;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
||||
class VilleFixtures extends Fixture
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$villes = [
|
||||
['nom' => 'Paris', 'codePostal' => '75000'],
|
||||
['nom' => 'Lyon', 'codePostal' => '69000'],
|
||||
['nom' => 'Marseille', 'codePostal' => '13000'],
|
||||
];
|
||||
|
||||
foreach ($villes as $villeData) {
|
||||
$ville = new Ville();
|
||||
$ville->setNom($villeData['nom']);
|
||||
$ville->setCodePostal($villeData['codePostal']); // Définit le code postal
|
||||
$manager->persist($ville);
|
||||
|
||||
$this->addReference('ville_' . $villeData['nom'], $ville);
|
||||
}
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
}
|
||||
35
src/Purger/MyPurger.php
Normal file
35
src/Purger/MyPurger.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Purger;
|
||||
|
||||
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
class MyPurger extends ORMPurger
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function __construct(private readonly EntityManagerInterface $entityManager, array $excluded = [])
|
||||
{
|
||||
parent::__construct($this->entityManager, $excluded);
|
||||
}
|
||||
|
||||
/**
|
||||
* Purges the MySQL database with temporarily disabled foreign key checks.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function purge(): void
|
||||
{
|
||||
$connection = $this->entityManager->getConnection();
|
||||
|
||||
try {
|
||||
$connection->executeStatement('SET FOREIGN_KEY_CHECKS = 0');
|
||||
|
||||
parent::purge();
|
||||
} finally {
|
||||
$connection->executeStatement('SET FOREIGN_KEY_CHECKS = 1');
|
||||
}
|
||||
}
|
||||
}
|
||||
28
src/Purger/MyPurgerFactory.php
Normal file
28
src/Purger/MyPurgerFactory.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Purger;
|
||||
|
||||
use Doctrine\Bundle\FixturesBundle\Purger\PurgerFactory;
|
||||
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
|
||||
use Doctrine\Common\DataFixtures\Purger\PurgerInterface;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
class MyPurgerFactory implements PurgerFactory
|
||||
{
|
||||
/**
|
||||
* Adapted from {@see \Doctrine\Bundle\FixturesBundle\Purger\ORMPurgerFactory} to return a MySQL-specific {@see PurgerInterface}.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function createForEntityManager(
|
||||
?string $emName,
|
||||
EntityManagerInterface $em,
|
||||
array $excluded = [],
|
||||
bool $purgeWithTruncate = false
|
||||
): PurgerInterface {
|
||||
$purger = new MyPurger($em, $excluded);
|
||||
$purger->setPurgeMode($purgeWithTruncate ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE);
|
||||
|
||||
return $purger;
|
||||
}
|
||||
}
|
||||
@@ -38,11 +38,11 @@
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">{{ sortie.duree }}</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">{{ sortie.dateLimiteInscription|date('d/m/Y H:i') }}</td>
|
||||
<td class="flex flex-row px-6 py-4 whitespace-nowrap text-base text-gray-900">
|
||||
{% if not sortie.participants.contains(app.user) and sortie.etat.libelle == 'Ouverte' %}
|
||||
{% if not sortie.participants.contains(app.user) and sortie.etat.libelle == 'Ouverte' and date(sortie.dateLimiteInscription) > date() %}
|
||||
<form action="{{ path('sortie_inscription', { id: sortie.idSortie }) }}" method="post">
|
||||
<button type="submit">🔔</button>
|
||||
</form>
|
||||
{% elseif sortie.participants.contains(app.user) and sortie.etat.libelle == 'Ouverte' %}
|
||||
{% elseif sortie.participants.contains(app.user) and sortie.etat.libelle == 'Ouverte' and date(sortie.dateLimiteInscription) > date() %}
|
||||
<form method="post" action="{{ path('sortie_unsubscribe', { id: sortie.idSortie }) }}">
|
||||
<button type="submit">🔕</button>
|
||||
</form>
|
||||
|
||||
@@ -107,6 +107,13 @@
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if sortie.motifAnnul is not empty %}
|
||||
<div class="mt-6 flex flex-col space-x-4">
|
||||
<h4 class="text-base font-bold uppercase text-red-700 mb-2">🚫 Raison de l'annulation :</h4>
|
||||
<p class="text-base text-gray-800">{{ sortie.motifAnnul }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="lg:col-span-5 bg-white rounded-lg shadow p-6">
|
||||
|
||||
Reference in New Issue
Block a user