Merge pull request #5122 from christianbeeznest/fix-track_download

Reporting: Fix count of downloaded documents - refs #4861
pull/5123/head
christianbeeznest 2 years ago committed by GitHub
commit f38ca24440
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 40
      public/main/inc/lib/tracking.lib.php
  2. 2
      public/main/my_space/myStudents.php
  3. 4
      public/main/template/default/my_space/user_details.html.twig

@ -6,6 +6,7 @@ use Chamilo\CoreBundle\Entity\TrackEAttemptQualify;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\ExtraField as EntityExtraField;
use Chamilo\CoreBundle\Entity\Session as SessionEntity;
use Chamilo\CoreBundle\Entity\TrackEDownloads;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Entity\Usergroup;
use Chamilo\CoreBundle\Framework\Container;
@ -4270,32 +4271,27 @@ class Tracking
return Database::num_rows($rs);
}
/**
* Get count student downloaded documents.
*
* @param int Student id
* @param int $courseId
* @param int Session id (optional)
*
* @return int Count downloaded documents
*/
public static function count_student_downloaded_documents($student_id, $courseId, $session_id = 0)
public static function countStudentDownloadedDocuments(int $studentId, int $courseId, int $sessionId = 0): int
{
$student_id = (int) $student_id;
$courseId = (int) $courseId;
$session_id = (int) $session_id;
$em = Database::getManager();
$qb = $em->createQueryBuilder();
// table definition
$table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DOWNLOADS);
$qb->select('COUNT(td.downId)')
->from(TrackEDownloads::class, 'td')
->leftJoin('td.resourceLink', 'rl')
->where('td.downUserId = :studentId')
->andWhere('rl.course = :courseId')
->setParameter('studentId', $studentId)
->setParameter('courseId', $courseId);
$sql = 'SELECT 1
FROM '.$table.'
WHERE down_user_id = '.$student_id.'
AND c_id = "'.$courseId.'"
AND session_id = '.$session_id.' ';
$rs = Database::query($sql);
if ($sessionId > 0) {
$qb->andWhere('rl.session = :sessionId')
->setParameter('sessionId', $sessionId);
}
return Database::num_rows($rs);
$query = $qb->getQuery();
return (int) $query->getSingleScalarResult();
}
/**

@ -1139,7 +1139,7 @@ if (null !== $course) {
$messages = Container::getForumPostRepository()->countUserForumPosts($user, $course, $session);
$links = Tracking::count_student_visited_links($studentId, $courseId, $sessionId);
$chat_last_connection = Tracking::chat_last_connection($studentId, $courseId, $sessionId);
$documents = Tracking::count_student_downloaded_documents($studentId, $courseId, $sessionId);
$documents = Tracking::countStudentDownloadedDocuments($studentId, $courseId, $sessionId);
$uploaded_documents = Tracking::count_student_uploaded_documents($studentId, $courseCode, $sessionId);
$tpl->assign('title', $course->getTitle());

@ -161,10 +161,10 @@
<div class="col-md-4">
{{ display.card_widget('First login in platform'|trans, user_extra.first_connection, 'calendar') }}
{{ display.card_widget('Latest login in platform'|trans, user_extra.last_connection, 'calendar') }}
{% if (user_extra.time_spent_course) %}
{% if (user_extra.time_spent_course is defined) %}
{{ display.card_widget('Time spent in the course'|trans, user_extra.time_spent_course, 'clock-o') }}
{% endif %}
{% if user_extra.legal %}
{% if user_extra.legal is defined %}
{{ display.card_widget('Legal accepted'|trans, user_extra.legal.datetime, 'gavel', user_extra.legal.icon) }}
{% endif %}
</div>

Loading…
Cancel
Save