Revert "Internal: Migration: Fix migration for agenda reminders"

This reverts commit 539c443f88.
pull/5339/head
Angel Fernando Quiroz Campos 1 year ago
parent 539c443f88
commit a0fe71be41
  1. 37
      src/CoreBundle/Migrations/Schema/V200/Version20201215072918.php

@ -17,7 +17,6 @@ use Chamilo\CourseBundle\Repository\CCalendarEventRepository;
use Chamilo\Kernel; use Chamilo\Kernel;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Schema;
use Doctrine\ORM\EntityManagerInterface;
final class Version20201215072918 extends AbstractMigrationChamilo final class Version20201215072918 extends AbstractMigrationChamilo
{ {
@ -28,18 +27,22 @@ final class Version20201215072918 extends AbstractMigrationChamilo
public function up(Schema $schema): void public function up(Schema $schema): void
{ {
$em = $this->getEntityManager(); $container = $this->getContainer();
$doctrine = $container->get('doctrine');
$em = $doctrine->getManager();
/** @var Connection $connection */
$connection = $em->getConnection(); $connection = $em->getConnection();
$eventRepo = $this->container->get(CCalendarEventRepository::class); $eventRepo = $container->get(CCalendarEventRepository::class);
$eventAttachmentRepo = $this->container->get(CCalendarEventAttachmentRepository::class); $eventAttachmentRepo = $container->get(CCalendarEventAttachmentRepository::class);
$courseRepo = $this->container->get(CourseRepository::class); $courseRepo = $container->get(CourseRepository::class);
$kernel = $this->getContainer()->get('kernel'); /** @var Kernel $kernel */
$kernel = $container->get('kernel');
$rootPath = $kernel->getProjectDir(); $rootPath = $kernel->getProjectDir();
$admin = $this->getAdmin(); $admin = $this->getAdmin();
$oldNewEventMap = []; $oldNewEventIdMap = [];
$q = $em->createQuery('SELECT c FROM Chamilo\CoreBundle\Entity\Course c'); $q = $em->createQuery('SELECT c FROM Chamilo\CoreBundle\Entity\Course c');
@ -101,7 +104,8 @@ final class Version20201215072918 extends AbstractMigrationChamilo
$em->persist($event); $em->persist($event);
$em->flush(); $em->flush();
$oldNewEventMap[$oldEventId] = $event; $newEventId = $event->getIid();
$oldNewEventIdMap[$oldEventId] = $newEventId;
} }
$sql = "SELECT * FROM c_calendar_event_attachment WHERE c_id = {$courseId} $sql = "SELECT * FROM c_calendar_event_attachment WHERE c_id = {$courseId}
@ -140,22 +144,17 @@ final class Version20201215072918 extends AbstractMigrationChamilo
} }
} }
$this->updateAgendaReminders($oldNewEventMap, $em); $this->updateAgendaReminders($oldNewEventIdMap, $em);
} }
/** private function updateAgendaReminders($oldNewEventIdMap, $em): void
* @param array<int, CCalendarEvent> $oldNewEventMap
*/
private function updateAgendaReminders(array $oldNewEventMap, EntityManagerInterface $em): void
{ {
$reminders = $em->getRepository(AgendaReminder::class)->findBy(['type' => 'course']); $reminders = $em->getRepository(AgendaReminder::class)->findBy(['type' => 'course']);
/** @var AgendaReminder $reminder */
foreach ($reminders as $reminder) { foreach ($reminders as $reminder) {
$oldEventId = $reminder->getEvent()->getIid(); $oldEventId = $reminder->getEventId();
if (\array_key_exists($oldEventId, $oldNewEventMap)) { if (\array_key_exists($oldEventId, $oldNewEventIdMap)) {
$newEvent = $oldNewEventMap[$oldEventId]; $newEventId = $oldNewEventIdMap[$oldEventId];
$reminder->setEvent($newEvent); $reminder->setEventId($newEventId);
$em->persist($reminder); $em->persist($reminder);
} }
} }

Loading…
Cancel
Save