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. 23
      plugin/zoom/lib/MeetingEntityRepository.php
  4. 1
      plugin/zoom/lib/RecordingEntityRepository.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;

@ -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;

@ -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) {

@ -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;
/**

Loading…
Cancel
Save