diff --git a/Makefile b/Makefile
index 3eaa919a1..5212e7d90 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,7 @@ migration-down: replenish migration-list
seed: replenish
@docker compose exec -T web ./web application:fixtures:load
+ @docker compose exec web ./web report:generate:full
exec:
docker compose exec -it web $(cmd)
diff --git a/module/Application/src/Command/LoadFixturesCommand.php b/module/Application/src/Command/LoadFixturesCommand.php
index 71e3ce512..8fb5858c6 100644
--- a/module/Application/src/Command/LoadFixturesCommand.php
+++ b/module/Application/src/Command/LoadFixturesCommand.php
@@ -21,7 +21,7 @@
class LoadFixturesCommand extends Command
{
private const array DATABASE_FIXTURES = [
- // './module/Database/test/Seeder',
+ './module/Database/test/Seeder',
'./module/User/test/Seeder',
];
@@ -72,7 +72,8 @@ protected function execute(
$reportConnection->executeStatement('SET session_replication_role = \'replica\'');
$reportExecutor->execute($reportLoader->getFixtures());
$reportConnection->executeStatement('SET session_replication_role = \'origin\'');
- } catch (Throwable) {
+ } catch (Throwable $e) {
+ $output->writeln('' . $e->getMessage() . '');
}
$output->writeln('Loaded fixtures!');
diff --git a/module/Database/test/Seeder/MeetingFixture.php b/module/Database/test/Seeder/MeetingFixture.php
new file mode 100644
index 000000000..351fd5d4f
--- /dev/null
+++ b/module/Database/test/Seeder/MeetingFixture.php
@@ -0,0 +1,29 @@
+setDate(new DateTime('2000-01-01'));
+ $meeting->setNumber(1);
+ $meeting->setType(MeetingTypes::BV);
+
+ $manager->persist($meeting);
+ $this->addReference(self::REF_MEETING_BV1, $meeting);
+
+ $manager->flush();
+ }
+}
diff --git a/module/Database/test/Seeder/MemberFixture.php b/module/Database/test/Seeder/MemberFixture.php
new file mode 100644
index 000000000..30c468d6c
--- /dev/null
+++ b/module/Database/test/Seeder/MemberFixture.php
@@ -0,0 +1,117 @@
+setDate((int) $expiryDate->format('Y') + 1, 7, 1);
+
+ /** Prospective member */
+ $pros = new ProspectiveMember();
+ $pros->setInitials('T.A.');
+ $pros->setFirstName('Tara');
+ $pros->setMiddleName('');
+ $pros->setLastName('Testdata');
+ $pros->setTueUsername('20190001');
+ $pros->setBirth(new DateTime('2001-01-01'));
+ $pros->setEmail('tara@gewisdb.local');
+ $pros->setPaid(15);
+ $pros->setChangedOn(new DateTime());
+ $prosAddress = new Address();
+ $prosAddress->setStreet('Teststraat');
+ $prosAddress->setNumber('123');
+ $prosAddress->setPostalCode('5600 AA');
+ $prosAddress->setCity('Eindhoven');
+ $prosAddress->setPhone('1');
+ $prosAddress->setCountry(PostalRegions::Netherlands);
+ $pros->setAddress($prosAddress);
+ $pros->setStudy('Other');
+
+ $manager->persist($pros);
+ $this->addReference(self::REF_MEMBER_PROSPECTIVE, $pros);
+
+ $checkoutSession = new CheckoutSession();
+ $checkoutSession->setCheckoutId('123');
+ $checkoutSession->setProspectiveMember($pros);
+ $checkoutSession->setCreated(new DateTime());
+ $checkoutSession->setExpiration(new DateTime());
+ $checkoutSession->setState(CheckoutSessionStates::Paid);
+ $manager->persist($checkoutSession);
+
+ /** Student */
+ $student = new Member();
+ $student->setInitials('T.');
+ $student->setFirstName('Timon');
+ $student->setMiddleName('de');
+ $student->setLastName('Teststudent');
+ $student->setEmail('timon@gewisdb.local');
+ $student->setBirth(new DateTime('2000-01-01'));
+ $student->setGeneration(2018);
+ $student->setType(MembershipTypes::Ordinary);
+ $student->setExpiration($expiryDate);
+ $student->setChangedOn(new DateTime());
+ $student->setTueUsername('20180001');
+ $student->setIsStudying(true);
+
+ $manager->persist($student);
+ $this->addReference(self::REF_MEMBER_STUDENT, $student);
+
+ /** External */
+ $external = new Member();
+ $external->setInitials('J.');
+ $external->setFirstName('Joe');
+ $external->setMiddleName('');
+ $external->setLastName('Bloggs');
+ $external->setEmail('joe@gewisdb.local');
+ $external->setBirth(new DateTime('1999-01-01'));
+ $external->setGeneration(2017);
+ $external->setType(MembershipTypes::External);
+ $external->setExpiration($expiryDate);
+ $external->setChangedOn(new DateTime());
+ $external->setIsStudying(false);
+
+ $manager->persist($external);
+ $this->addReference(self::REF_MEMBER_EXTERNAL, $external);
+
+ /** Graduate */
+ $graduate = new Member();
+ $graduate->setInitials('J.H.');
+ $graduate->setFirstName('Jack');
+ $graduate->setMiddleName('van');
+ $graduate->setLastName('Lint');
+ $graduate->setEmail('vanlint@gewisdb.local');
+ $graduate->setBirth(new DateTime('1932-09-01'));
+ $graduate->setGeneration(1989);
+ $graduate->setType(MembershipTypes::Graduate);
+ $graduate->setExpiration($expiryDate);
+ $graduate->setMembershipEndsOn(new DateTime());
+ $graduate->setChangedOn(new DateTime('1990-07-01'));
+ $graduate->setIsStudying(false);
+
+ $manager->persist($graduate);
+ $this->addReference(self::REF_MEMBER_GRADUATE, $graduate);
+
+ $manager->flush();
+ }
+}
diff --git a/module/User/test/Seeder/UserFixture.php b/module/User/test/Seeder/UserFixture.php
index 33ba5db54..7a2a7ae0d 100644
--- a/module/User/test/Seeder/UserFixture.php
+++ b/module/User/test/Seeder/UserFixture.php
@@ -10,6 +10,8 @@
class UserFixture extends AbstractFixture
{
+ public const REF_ADMIN_USER = 'admin-user';
+
public function load(ObjectManager $manager): void
{
$user = new User();
@@ -17,7 +19,7 @@ public function load(ObjectManager $manager): void
$user->setPassword('$2y$13$smUYvCkgowlfHOFrogwcPONGDFmcylKHmTOZQAks9cDvs15tPxR2a'); // == gewisdbgewis
$manager->persist($user);
- $this->addReference('user-admin', $user);
+ $this->addReference(self::REF_ADMIN_USER, $user);
$manager->flush();
}