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

@ -11,6 +11,12 @@
{% set item_url = baseurl ~ {'action':'view', 'id':item.id}|url_encode %}
{% 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">
<article class="panel-body portfolio-item" id="portfolio-item-{{ item.id }}">
<div class="portfolio-actions pull-right">

Loading…
Cancel
Save