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()
{
$zoomPlugin = new \ZoomPlugin();
$typeList = [
API\Meeting::TYPE_INSTANT => $zoomPlugin->get_lang('InstantMeeting'),
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\Criteria;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
/**
* Class MeetingEntityRepository.
@ -70,33 +71,85 @@ class MeetingEntityRepository extends EntityRepository
*
* @param User|null $user
*
* @return ArrayCollection|Collection|MeetingEntity[]
* @return QueryBuilder
*/
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::expr()->andX(
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
*
* @return ArrayCollection|Collection|MeetingEntity[]
* @return MeetingEntity[]
*/
public function unfinishedUserMeetings($user = null)
{
return $this->userMeetings($user)->filter(
function ($meeting) {
return 'finished' !== $meeting->getMeetingInfoGet()->status;
/*return $this->userMeetings($user)->filter(
function ($meeting) {
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)
{
return $this->userMeetings($user)->filter(
/*return $this->userMeetings($user)->filter(
function ($meeting) use ($start, $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(
Criteria::create()->where(
is_null($course)
null === $course
? Criteria::expr()->neq('course', null)
: Criteria::expr()->andX(
Criteria::expr()->eq('course', $course),
Criteria::expr()->eq('session', $session)
)
Criteria::expr()->eq('course', $course),
Criteria::expr()->eq('session', $session)
)
)
);
}

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

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

Loading…
Cancel
Save