Plugins: Zoom Fix meeting list (WIP)

pull/3522/head
Julio Montoya 5 years ago
parent 26839925bd
commit 116f250b12
  1. 1
      plugin/zoom/Entity/MeetingEntity.php
  2. 97
      plugin/zoom/lib/MeetingEntityRepository.php
  3. 8
      plugin/zoom/lib/RecordingEntityRepository.php
  4. 2
      plugin/zoom/view/list.tpl

@ -498,6 +498,7 @@ class MeetingEntity
private function initializeDisplayableProperties() private function initializeDisplayableProperties()
{ {
$zoomPlugin = new \ZoomPlugin(); $zoomPlugin = new \ZoomPlugin();
$typeList = [ $typeList = [
API\Meeting::TYPE_INSTANT => $zoomPlugin->get_lang('InstantMeeting'), API\Meeting::TYPE_INSTANT => $zoomPlugin->get_lang('InstantMeeting'),
API\Meeting::TYPE_SCHEDULED => $zoomPlugin->get_lang('ScheduledMeeting'), API\Meeting::TYPE_SCHEDULED => $zoomPlugin->get_lang('ScheduledMeeting'),

@ -11,6 +11,7 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
/** /**
* Class MeetingEntityRepository. * Class MeetingEntityRepository.
@ -70,33 +71,85 @@ class MeetingEntityRepository extends EntityRepository
* *
* @param User|null $user * @param User|null $user
* *
* @return ArrayCollection|Collection|MeetingEntity[] * @return QueryBuilder
*/ */
public function userMeetings($user = null) public function userMeetings($user = null)
{ {
return $this->matching( $qb = $this->createQueryBuilder('m');
//$qb->select('m');
$criteria = Criteria::create();
/*$criteria = Criteria::create()->where(
Criteria::expr()->andX(
Criteria::expr()->isNull('course'),
Criteria::expr()->orX(
Criteria::expr()->isNull('user'),
Criteria::expr()->eq('user', $user)
)
));*/
/*$qb->where(Criteria::expr()->andX(
Criteria::expr()->isNull('course'),
Criteria::expr()->orX(
Criteria::expr()->isNull('user'),
Criteria::expr()->eq('user', $user)
)
));*/
$qb
->where('m.course IS NULL')
->andWhere('(m.user IS NULL OR m.user = :user)');
$qb->setParameters(['user' => $user]);
//$criteria->where(Criteria::expr()->eq('status', User::COURSE_MANAGER));
return $qb;
/*return $this->matching(
,
Criteria::expr()->andX(
Criteria::expr()->eq('registrants', null),
Criteria::expr()->orX(
Criteria::expr()->eq('user', null),
Criteria::expr()->eq('user', $user)
)
)
)
);*/
/*return $this->matching(
Criteria::create()->where( Criteria::create()->where(
Criteria::expr()->andX( Criteria::expr()->andX(
Criteria::expr()->eq('course', null), Criteria::expr()->eq('course', null),
Criteria::expr()->orX(Criteria::expr()->eq('user', null), Criteria::expr()->eq('user', $user)) Criteria::expr()->orX(
Criteria::expr()->eq('user', null),
Criteria::expr()->eq('user', $user)
)
) )
) )
); );*/
} }
/** /**
* @param User|null $user * @param User|null $user
* *
* @return ArrayCollection|Collection|MeetingEntity[] * @return MeetingEntity[]
*/ */
public function unfinishedUserMeetings($user = null) public function unfinishedUserMeetings($user = null)
{ {
return $this->userMeetings($user)->filter( /*return $this->userMeetings($user)->filter(
function ($meeting) { function ($meeting) {
return 'finished' !== $meeting->getMeetingInfoGet()->status; return 'finished' !== $meeting->getMeetingInfoGet()->status;
}
);*/
$results = $this->userMeetings($user)->getQuery()->getResult();
$list = [];
foreach ($results as $meeting) {
if ('finished' === $meeting->getMeetingInfoGet()->status) {
$list[] = $meeting;
} }
); }
return $list;
} }
/** /**
@ -108,11 +161,23 @@ class MeetingEntityRepository extends EntityRepository
*/ */
public function periodUserMeetings($start, $end, $user = null) public function periodUserMeetings($start, $end, $user = null)
{ {
return $this->userMeetings($user)->filter( /*return $this->userMeetings($user)->filter(
function ($meeting) use ($start, $end) { function ($meeting) use ($start, $end) {
return $meeting->startDateTime >= $start && $meeting->startDateTime <= $end; return $meeting->startDateTime >= $start && $meeting->startDateTime <= $end;
} }
); );*/
$results = $this->userMeetings($user)->getQuery()->getResult();
$list = [];
if ($results) {
foreach ($results as $meeting) {
if ($meeting->startDateTime >= $start && $meeting->startDateTime <= $end) {
$list[] = $meeting;
}
}
}
return $list;
} }
/** /**
@ -127,12 +192,12 @@ class MeetingEntityRepository extends EntityRepository
{ {
return $this->matching( return $this->matching(
Criteria::create()->where( Criteria::create()->where(
is_null($course) null === $course
? Criteria::expr()->neq('course', null) ? Criteria::expr()->neq('course', null)
: Criteria::expr()->andX( : Criteria::expr()->andX(
Criteria::expr()->eq('course', $course), Criteria::expr()->eq('course', $course),
Criteria::expr()->eq('session', $session) Criteria::expr()->eq('session', $session)
) )
) )
); );
} }

@ -35,7 +35,7 @@ class RecordingEntityRepository extends EntityRepository
* *
* @return ArrayCollection|Collection|RecordingEntity[] * @return ArrayCollection|Collection|RecordingEntity[]
*/ */
public function userRecordings($user) /*public function userRecordings($user)
{ {
return $this->matching( return $this->matching(
Criteria::create()->where( Criteria::create()->where(
@ -45,7 +45,7 @@ class RecordingEntityRepository extends EntityRepository
) )
) )
); );
} }*/
/** /**
* @param DateTime $start * @param DateTime $start
@ -54,12 +54,12 @@ class RecordingEntityRepository extends EntityRepository
* *
* @return ArrayCollection|RecordingEntity[] * @return ArrayCollection|RecordingEntity[]
*/ */
public function getPeriodUserRecordings($start, $end, $user = null) /*public function getPeriodUserRecordings($start, $end, $user = null)
{ {
return $this->userRecordings($user)->filter( return $this->userRecordings($user)->filter(
function ($meeting) use ($start, $end) { function ($meeting) use ($start, $end) {
return $meeting->startDateTime >= $start && $meeting->startDateTime <= $end; return $meeting->startDateTime >= $start && $meeting->startDateTime <= $end;
} }
); );
} }*/
} }

@ -3,7 +3,7 @@
{{ schedule_form }} {{ schedule_form }}
{{ search_form }} {{ search_form }}
{% if meetings.count %} {% if meetings %}
<h4>{{ 'MeetingsFound'|get_plugin_lang('ZoomPlugin') }}: </h4> <h4>{{ 'MeetingsFound'|get_plugin_lang('ZoomPlugin') }}: </h4>
<table class="table table-hover table-striped"> <table class="table table-hover table-striped">
<thead> <thead>

Loading…
Cancel
Save