Portfolio: List course base content in session when portfolio_show_base_course_post_in_sessions is enabled - refs BT#22232

pull/6001/head
Angel Fernando Quiroz Campos 9 months ago
parent e661cbb293
commit 918416a844
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 34
      main/inc/lib/PortfolioController.php
  2. 6
      main/template/default/portfolio/items.html.twig

@ -1203,12 +1203,18 @@ class PortfolioController
; ;
} }
$comments = $commentsQueryBuilder if (true === api_get_configuration_value('portfolio_show_base_course_post_in_sessions')
->orderBy('comment.root, comment.lft', 'ASC') && $this->session && !$item->getSession() && !$item->isDuplicatedInSession($this->session)
->setParameter('item', $item) ) {
->getQuery() $comments = [];
->getArrayResult() } else {
; $comments = $commentsQueryBuilder
->orderBy('comment.root, comment.lft', 'ASC')
->setParameter('item', $item)
->getQuery()
->getArrayResult()
;
}
$clockIcon = Display::returnFontAwesomeIcon('clock-o', '', true); $clockIcon = Display::returnFontAwesomeIcon('clock-o', '', true);
@ -3762,6 +3768,9 @@ class PortfolioController
$currentUserId = api_get_user_id(); $currentUserId = api_get_user_id();
if ($this->course) { if ($this->course) {
$showBaseContentInSession = $this->session
&& true === api_get_configuration_value('portfolio_show_base_course_post_in_sessions');
$queryBuilder = $this->em->createQueryBuilder(); $queryBuilder = $this->em->createQueryBuilder();
$queryBuilder $queryBuilder
->select('pi') ->select('pi')
@ -3771,7 +3780,9 @@ class PortfolioController
$queryBuilder->setParameter('course', $this->course); $queryBuilder->setParameter('course', $this->course);
if ($this->session) { if ($this->session) {
$queryBuilder->andWhere('pi.session = :session'); $queryBuilder->andWhere(
$showBaseContentInSession ? 'pi.session = :session OR pi.session IS NULL' : 'pi.session = :session'
);
$queryBuilder->setParameter('session', $this->session); $queryBuilder->setParameter('session', $this->session);
} else { } else {
$queryBuilder->andWhere('pi.session IS NULL'); $queryBuilder->andWhere('pi.session IS NULL');
@ -3894,6 +3905,15 @@ class PortfolioController
$queryBuilder->orderBy('pi.creationDate', 'DESC'); $queryBuilder->orderBy('pi.creationDate', 'DESC');
$items = $queryBuilder->getQuery()->getResult(); $items = $queryBuilder->getQuery()->getResult();
if ($showBaseContentInSession) {
$items = array_filter(
$items,
fn(Portfolio $item) => !($this->session && !$item->getSession() && $item->isDuplicatedInSession($this->session))
);
}
return $items;
} else { } else {
$itemsCriteria = []; $itemsCriteria = [];
$itemsCriteria['category'] = null; $itemsCriteria['category'] = null;

@ -11,6 +11,12 @@
{% set item_url = baseurl ~ {'action':'view', 'id':item.id}|url_encode %} {% set item_url = baseurl ~ {'action':'view', 'id':item.id}|url_encode %}
{% set comments = item.lastComments(3, is_advanced_sharing_enabled) %} {% set comments = item.lastComments(3, is_advanced_sharing_enabled) %}
{% if 'portfolio_show_base_course_post_in_sessions'|api_get_configuration_value %}
{% if _c.session_id and not item.session and not item.isDuplicatedInSessionId(_c.session_id) %}
{% set comments = {} %}
{% endif %}
{% endif %}
<div class="panel panel-default"> <div class="panel panel-default">
<article class="panel-body portfolio-item" id="portfolio-item-{{ item.id }}"> <article class="panel-body portfolio-item" id="portfolio-item-{{ item.id }}">
<div class="portfolio-actions pull-right"> <div class="portfolio-actions pull-right">

Loading…
Cancel
Save