Plugins: Zoom show meetings if user is registered to a meeting (WIP)

BT#17288
pull/3522/head
Julio Montoya 5 years ago
parent 0b4b8083c4
commit 7214318078
  1. 11
      plugin/zoom/Entity/MeetingEntity.php
  2. 9
      plugin/zoom/Entity/RegistrantEntity.php
  3. 17
      plugin/zoom/lib/MeetingEntityRepository.php
  4. 1
      plugin/zoom/lib/RecordingEntityRepository.php

@ -71,21 +71,21 @@ class MeetingEntity
/** /**
* @var User * @var User
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\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; protected $user;
/** /**
* @var Course * @var Course
* @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\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; protected $course;
/** /**
* @var Session * @var Session
* @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\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; protected $session;
@ -110,10 +110,7 @@ class MeetingEntity
/** /**
* @var RegistrantEntity[]|ArrayCollection * @var RegistrantEntity[]|ArrayCollection
* *
* @ORM\OneToMany( * @ORM\OneToMany(targetEntity="RegistrantEntity", mappedBy="meeting", cascade={"persist", "remove"}
* targetEntity="RegistrantEntity",
* mappedBy="meeting",
* cascade={"persist", "remove"}
* ) * )
*/ */
protected $registrants; protected $registrants;

@ -40,17 +40,14 @@ class RegistrantEntity
/** /**
* @var User * @var User
* @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\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; protected $user;
/** /**
* @var MeetingEntity * @var MeetingEntity
* @ORM\ManyToOne( * @ORM\ManyToOne(targetEntity="MeetingEntity", inversedBy="registrants")
* targetEntity="MeetingEntity", * @ORM\JoinColumn(name="meeting_id", referencedColumnName="id")
* inversedBy="registrants",
* )
* @ORM\JoinColumn(name="meeting_id")
*/ */
protected $meeting; protected $meeting;

@ -76,9 +76,11 @@ class MeetingEntityRepository extends EntityRepository
public function userMeetings($user = null) public function userMeetings($user = null)
{ {
$qb = $this->createQueryBuilder('m'); $qb = $this->createQueryBuilder('m');
//$qb->select('m'); $qb
$criteria = Criteria::create(); ->select('m')
->leftJoin('m.registrants', 'r');
//$qb->select('m');
/*$criteria = Criteria::create()->where( /*$criteria = Criteria::create()->where(
Criteria::expr()->andX( Criteria::expr()->andX(
Criteria::expr()->isNull('course'), Criteria::expr()->isNull('course'),
@ -95,11 +97,12 @@ class MeetingEntityRepository extends EntityRepository
Criteria::expr()->eq('user', $user) Criteria::expr()->eq('user', $user)
) )
));*/ ));*/
$qb $qb
->where('m.course IS NULL') ->andWhere('m.course IS NULL')
->andWhere('(m.user IS NULL OR m.user = :user)'); ->andWhere('m.user IS NULL OR m.user = :user OR r.user = :user');
$qb->setParameters(['user' => $user]); $qb->setParameters(['user' => $user]);
//$criteria->where(Criteria::expr()->eq('status', User::COURSE_MANAGER));
return $qb; return $qb;
@ -141,7 +144,7 @@ class MeetingEntityRepository extends EntityRepository
} }
);*/ );*/
$results = $this->userMeetings($user)->getQuery()->getResult(); $results = @$this->userMeetings($user)->getQuery()->getResult();
$list = []; $list = [];
foreach ($results as $meeting) { foreach ($results as $meeting) {
if ('finished' === $meeting->getMeetingInfoGet()->status) { if ('finished' === $meeting->getMeetingInfoGet()->status) {
@ -167,7 +170,7 @@ class MeetingEntityRepository extends EntityRepository
} }
);*/ );*/
$results = $this->userMeetings($user)->getQuery()->getResult(); $results = @$this->userMeetings($user)->getQuery()->getResult();
$list = []; $list = [];
if ($results) { if ($results) {
foreach ($results as $meeting) { foreach ($results as $meeting) {

@ -8,7 +8,6 @@ use Chamilo\ClassificationBundle\Entity\Collection;
use Chamilo\UserBundle\Entity\User; use Chamilo\UserBundle\Entity\User;
use DateTime; use DateTime;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
/** /**

Loading…
Cancel
Save