diff --git a/plugin/zoom/Entity/MeetingEntity.php b/plugin/zoom/Entity/MeetingEntity.php index 27c9c36d80..3b6cdfac02 100644 --- a/plugin/zoom/Entity/MeetingEntity.php +++ b/plugin/zoom/Entity/MeetingEntity.php @@ -71,21 +71,21 @@ class MeetingEntity /** * @var User * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") - * @ORM\JoinColumn(name="user_id", nullable=true) + * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true) */ protected $user; /** * @var Course * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\Course") - * @ORM\JoinColumn(name="course_id", nullable=true) + * @ORM\JoinColumn(name="course_id", referencedColumnName="id", nullable=true) */ protected $course; /** * @var Session * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\Session") - * @ORM\JoinColumn(name="session_id", nullable=true) + * @ORM\JoinColumn(name="session_id", referencedColumnName="id", nullable=true) */ protected $session; @@ -110,10 +110,7 @@ class MeetingEntity /** * @var RegistrantEntity[]|ArrayCollection * - * @ORM\OneToMany( - * targetEntity="RegistrantEntity", - * mappedBy="meeting", - * cascade={"persist", "remove"} + * @ORM\OneToMany(targetEntity="RegistrantEntity", mappedBy="meeting", cascade={"persist", "remove"} * ) */ protected $registrants; diff --git a/plugin/zoom/Entity/RegistrantEntity.php b/plugin/zoom/Entity/RegistrantEntity.php index 2aad05e3ea..999a95ab82 100644 --- a/plugin/zoom/Entity/RegistrantEntity.php +++ b/plugin/zoom/Entity/RegistrantEntity.php @@ -40,17 +40,14 @@ class RegistrantEntity /** * @var User * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User") - * @ORM\JoinColumn(name="user_id", nullable=false) + * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) */ protected $user; /** * @var MeetingEntity - * @ORM\ManyToOne( - * targetEntity="MeetingEntity", - * inversedBy="registrants", - * ) - * @ORM\JoinColumn(name="meeting_id") + * @ORM\ManyToOne(targetEntity="MeetingEntity", inversedBy="registrants") + * @ORM\JoinColumn(name="meeting_id", referencedColumnName="id") */ protected $meeting; diff --git a/plugin/zoom/lib/MeetingEntityRepository.php b/plugin/zoom/lib/MeetingEntityRepository.php index 75677ebeb5..7f21bebda0 100644 --- a/plugin/zoom/lib/MeetingEntityRepository.php +++ b/plugin/zoom/lib/MeetingEntityRepository.php @@ -76,9 +76,11 @@ class MeetingEntityRepository extends EntityRepository public function userMeetings($user = null) { $qb = $this->createQueryBuilder('m'); - //$qb->select('m'); - $criteria = Criteria::create(); + $qb + ->select('m') + ->leftJoin('m.registrants', 'r'); + //$qb->select('m'); /*$criteria = Criteria::create()->where( Criteria::expr()->andX( Criteria::expr()->isNull('course'), @@ -95,11 +97,12 @@ class MeetingEntityRepository extends EntityRepository Criteria::expr()->eq('user', $user) ) ));*/ + $qb - ->where('m.course IS NULL') - ->andWhere('(m.user IS NULL OR m.user = :user)'); + ->andWhere('m.course IS NULL') + ->andWhere('m.user IS NULL OR m.user = :user OR r.user = :user'); + $qb->setParameters(['user' => $user]); - //$criteria->where(Criteria::expr()->eq('status', User::COURSE_MANAGER)); return $qb; @@ -141,7 +144,7 @@ class MeetingEntityRepository extends EntityRepository } );*/ - $results = $this->userMeetings($user)->getQuery()->getResult(); + $results = @$this->userMeetings($user)->getQuery()->getResult(); $list = []; foreach ($results as $meeting) { if ('finished' === $meeting->getMeetingInfoGet()->status) { @@ -153,9 +156,9 @@ class MeetingEntityRepository extends EntityRepository } /** - * @param DateTime $start - * @param DateTime $end - * @param User $user + * @param DateTime $start + * @param DateTime $end + * @param User $user * * @return ArrayCollection|Collection|MeetingEntity[] */ @@ -167,7 +170,7 @@ class MeetingEntityRepository extends EntityRepository } );*/ - $results = $this->userMeetings($user)->getQuery()->getResult(); + $results = @$this->userMeetings($user)->getQuery()->getResult(); $list = []; if ($results) { foreach ($results as $meeting) { diff --git a/plugin/zoom/lib/RecordingEntityRepository.php b/plugin/zoom/lib/RecordingEntityRepository.php index 96a9980580..4e64e5cb2a 100644 --- a/plugin/zoom/lib/RecordingEntityRepository.php +++ b/plugin/zoom/lib/RecordingEntityRepository.php @@ -8,7 +8,6 @@ use Chamilo\ClassificationBundle\Entity\Collection; use Chamilo\UserBundle\Entity\User; use DateTime; use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\Common\Collections\Criteria; use Doctrine\ORM\EntityRepository; /**