|
@@ -578,10 +578,11 @@ class UserRepository extends EntityRepository
|
|
|
$gradebookCertificate = [];
|
|
|
/** @var GradebookCertificate $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $createdAt = $item->getCreatedAt() ? $item->getCreatedAt()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Score: '.$item->getScoreCertificate(),
|
|
|
'Path: '.$item->getPathCertificate(),
|
|
|
- 'Created at: '.$item->getCreatedAt()->format($dateFormat),
|
|
|
+ 'Created at: '.$createdAt,
|
|
|
];
|
|
|
$gradebookCertificate[] = implode(', ', $list);
|
|
|
}
|
|
@@ -594,9 +595,10 @@ class UserRepository extends EntityRepository
|
|
|
$trackEExercises = [];
|
|
|
/** @var TrackEExercises $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getExeDate() ? $item->getExeDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'IP: '.$item->getUserIp(),
|
|
|
- 'Start: '.$item->getExeDate()->format($dateFormat),
|
|
|
+ 'Start: '.$date,
|
|
|
'Status: '.$item->getStatus(),
|
|
|
// 'Result: '.$item->getExeResult(),
|
|
|
// 'Weighting: '.$item->getExeWeighting(),
|
|
@@ -612,6 +614,7 @@ class UserRepository extends EntityRepository
|
|
|
$trackEAttempt = [];
|
|
|
/** @var TrackEAttempt $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getTms() ? $item->getTms()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Attempt #'.$item->getExeId(),
|
|
|
'Course # '.$item->getCId(),
|
|
@@ -619,7 +622,7 @@ class UserRepository extends EntityRepository
|
|
|
'Session #'.$item->getSessionId(),
|
|
|
//'Marks: '.$item->getMarks(),
|
|
|
'Position: '.$item->getPosition(),
|
|
|
- 'Date: '.$item->getTms()->format($dateFormat),
|
|
|
+ 'Date: '.$date,
|
|
|
];
|
|
|
$trackEAttempt[] = implode(', ', $list);
|
|
|
}
|
|
@@ -632,57 +635,91 @@ class UserRepository extends EntityRepository
|
|
|
$trackECourseAccessList = [];
|
|
|
/** @var TrackECourseAccess $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $startDate = $item->getLoginCourseDate() ? $item->getLoginCourseDate()->format($dateFormat) : '';
|
|
|
+ $endDate = $item->getLogoutCourseDate() ? $item->getLogoutCourseDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'IP: '.$item->getUserIp(),
|
|
|
- 'Start: '.$item->getLoginCourseDate()->format($dateFormat),
|
|
|
- 'End: '.$item->getLogoutCourseDate()->format($dateFormat),
|
|
|
+ 'Start: '.$startDate,
|
|
|
+ 'End: '.$endDate,
|
|
|
];
|
|
|
$trackECourseAccessList[] = implode(', ', $list);
|
|
|
}
|
|
|
|
|
|
- // TrackELogin
|
|
|
- $criteria = [
|
|
|
- 'loginUserId' => $userId,
|
|
|
+ $checkEntities = [
|
|
|
+ 'ChamiloCoreBundle:TrackELogin' => 'loginUserId',
|
|
|
+ 'ChamiloCoreBundle:TrackEAccess' => 'accessUserId',
|
|
|
+ 'ChamiloCoreBundle:TrackEOnline' => 'loginUserId',
|
|
|
+ 'ChamiloCoreBundle:TrackEDefault' => 'defaultUserId',
|
|
|
+ 'ChamiloCoreBundle:TrackELastaccess' => 'accessUserId',
|
|
|
+ 'ChamiloCoreBundle:TrackEUploads' => 'uploadUserId',
|
|
|
+ 'ChamiloCoreBundle:GradebookResult' => 'userId',
|
|
|
+ 'ChamiloCoreBundle:TrackEDownloads' => 'downUserId',
|
|
|
];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackELogin')->findBy($criteria);
|
|
|
+
|
|
|
+ $maxResults = 1000;
|
|
|
+ $trackResults = [];
|
|
|
+ foreach ($checkEntities as $entity => $field) {
|
|
|
+ $qb = $em->createQueryBuilder();
|
|
|
+ $qb->select($qb->expr()->count('l'))
|
|
|
+ ->from($entity, 'l')
|
|
|
+ ->where("l.$field = :login")
|
|
|
+ ->setParameter('login', $userId);
|
|
|
+ $query = $qb->getQuery();
|
|
|
+ $count = $query->getSingleScalarResult();
|
|
|
+
|
|
|
+ if ($count > $maxResults) {
|
|
|
+ $qb = $em->getRepository($entity)->createQueryBuilder('l');
|
|
|
+ $qb
|
|
|
+ ->select('l')
|
|
|
+ ->where("l.$field = :login")
|
|
|
+ ->setParameter('login', $userId);
|
|
|
+ $qb
|
|
|
+ ->setFirstResult(0)
|
|
|
+ ->setMaxResults($maxResults)
|
|
|
+ ;
|
|
|
+ $result = $qb->getQuery()->getResult();
|
|
|
+ } else {
|
|
|
+ $criteria = [
|
|
|
+ $field => $userId,
|
|
|
+ ];
|
|
|
+ $result = $em->getRepository($entity)->findBy($criteria);
|
|
|
+ }
|
|
|
+ $trackResults[$entity] = $result;
|
|
|
+ }
|
|
|
+
|
|
|
$trackELoginList = [];
|
|
|
/** @var TrackELogin $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackELogin'] as $item) {
|
|
|
+ $startDate = $item->getLoginDate() ? $item->getLoginDate()->format($dateFormat) : '';
|
|
|
+ $endDate = $item->getLogoutDate() ? $item->getLogoutDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'IP: '.$item->getUserIp(),
|
|
|
- 'Start: '.$item->getLoginDate()->format($dateFormat),
|
|
|
- 'End: '.$item->getLogoutDate()->format($dateFormat),
|
|
|
+ 'Start: '.$startDate,
|
|
|
+ 'End: '.$endDate,
|
|
|
];
|
|
|
$trackELoginList[] = implode(', ', $list);
|
|
|
}
|
|
|
|
|
|
// TrackEAccess
|
|
|
- $criteria = [
|
|
|
- 'accessUserId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackEAccess')->findBy($criteria);
|
|
|
$trackEAccessList = [];
|
|
|
/** @var TrackEAccess $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackEAccess'] as $item) {
|
|
|
+ $date = $item->getAccessDate() ? $item->getAccessDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'IP: '.$item->getUserIp(),
|
|
|
'Tool: '.$item->getAccessTool(),
|
|
|
- 'End: '.$item->getAccessDate()->format($dateFormat),
|
|
|
+ 'End: '.$date,
|
|
|
];
|
|
|
$trackEAccessList[] = implode(', ', $list);
|
|
|
}
|
|
|
|
|
|
// TrackEOnline
|
|
|
- $criteria = [
|
|
|
- 'loginUserId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackEOnline')->findBy($criteria);
|
|
|
- $trackEOnlineList = [];
|
|
|
/** @var TrackEOnline $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackEOnline'] as $item) {
|
|
|
+ $date = $item->getLoginDate() ? $item->getLoginDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'IP: '.$item->getUserIp(),
|
|
|
- 'Login date: '.$item->getLoginDate()->format($dateFormat),
|
|
|
+ 'Login date: '.$date,
|
|
|
'Course # '.$item->getCId(),
|
|
|
'Session # '.$item->getSessionId(),
|
|
|
];
|
|
@@ -690,18 +727,15 @@ class UserRepository extends EntityRepository
|
|
|
}
|
|
|
|
|
|
// TrackEDefault
|
|
|
- $criteria = [
|
|
|
- 'defaultUserId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackEDefault')->findBy($criteria);
|
|
|
$trackEDefault = [];
|
|
|
/** @var TrackEDefault $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackEDefault'] as $item) {
|
|
|
+ $date = $item->getDefaultDate() ? $item->getDefaultDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Type: '.$item->getDefaultEventType(),
|
|
|
'Value: '.$item->getDefaultValue(),
|
|
|
'Value type: '.$item->getDefaultValueType(),
|
|
|
- 'Date: '.$item->getDefaultDate()->format($dateFormat),
|
|
|
+ 'Date: '.$date,
|
|
|
'Course #'.$item->getCId(),
|
|
|
'Session # '.$item->getSessionId(),
|
|
|
];
|
|
@@ -709,63 +743,51 @@ class UserRepository extends EntityRepository
|
|
|
}
|
|
|
|
|
|
// TrackELastaccess
|
|
|
- $criteria = [
|
|
|
- 'accessUserId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackELastaccess')->findBy($criteria);
|
|
|
$trackELastaccess = [];
|
|
|
/** @var TrackELastaccess $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackELastaccess'] as $item) {
|
|
|
+ $date = $item->getAccessDate() ? $item->getAccessDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Course #'.$item->getCId(),
|
|
|
'Session # '.$item->getAccessSessionId(),
|
|
|
'Tool: '.$item->getAccessTool(),
|
|
|
- 'Access date: '.$item->getAccessDate()->format($dateFormat),
|
|
|
+ 'Access date: '.$date,
|
|
|
];
|
|
|
$trackELastaccess[] = implode(', ', $list);
|
|
|
}
|
|
|
|
|
|
// TrackEUploads
|
|
|
- $criteria = [
|
|
|
- 'uploadUserId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackEUploads')->findBy($criteria);
|
|
|
$trackEUploads = [];
|
|
|
/** @var TrackEUploads $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackEUploads'] as $item) {
|
|
|
+ $date = $item->getUploadDate() ? $item->getUploadDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Course #'.$item->getCId(),
|
|
|
- 'Uploaded at: '.$item->getUploadDate()->format($dateFormat),
|
|
|
+ 'Uploaded at: '.$date,
|
|
|
'Upload id # '.$item->getUploadId(),
|
|
|
];
|
|
|
$trackEUploads[] = implode(', ', $list);
|
|
|
}
|
|
|
|
|
|
- $criteria = [
|
|
|
- 'userId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:GradebookResult')->findBy($criteria);
|
|
|
$gradebookResult = [];
|
|
|
/** @var GradebookResult $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:GradebookResult'] as $item) {
|
|
|
+ $date = $item->getCreatedAt() ? $item->getCreatedAt()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Evaluation id# '.$item->getEvaluationId(),
|
|
|
//'Score: '.$item->getScore(),
|
|
|
- 'Creation date: '.$item->getCreatedAt()->format($dateFormat),
|
|
|
+ 'Creation date: '.$date,
|
|
|
];
|
|
|
$gradebookResult[] = implode(', ', $list);
|
|
|
}
|
|
|
|
|
|
- $criteria = [
|
|
|
- 'downUserId' => $userId,
|
|
|
- ];
|
|
|
- $result = $em->getRepository('ChamiloCoreBundle:TrackEDownloads')->findBy($criteria);
|
|
|
$trackEDownloads = [];
|
|
|
/** @var TrackEDownloads $item */
|
|
|
- foreach ($result as $item) {
|
|
|
+ foreach ($trackResults['ChamiloCoreBundle:TrackEDownloads'] as $item) {
|
|
|
+ $date = $item->getDownDate() ? $item->getDownDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'File: '.$item->getDownDocPath(),
|
|
|
- 'Download at: '.$item->getDownDate()->format($dateFormat),
|
|
|
+ 'Download at: '.$date,
|
|
|
];
|
|
|
$trackEDownloads[] = implode(', ', $list);
|
|
|
}
|
|
@@ -792,9 +814,10 @@ class UserRepository extends EntityRepository
|
|
|
$cForumPostList = [];
|
|
|
/** @var CForumPost $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getPostDate() ? $item->getPostDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Title: '.$item->getPostTitle(),
|
|
|
- 'Creation date: '.$item->getPostDate()->format($dateFormat),
|
|
|
+ 'Creation date: '.$date,
|
|
|
];
|
|
|
$cForumPostList[] = implode(', ', $list);
|
|
|
}
|
|
@@ -807,9 +830,10 @@ class UserRepository extends EntityRepository
|
|
|
$cForumThreadList = [];
|
|
|
/** @var CForumThread $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getThreadDate() ? $item->getThreadDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Title: '.$item->getThreadTitle(),
|
|
|
- 'Creation date: '.$item->getThreadDate()->format($dateFormat),
|
|
|
+ 'Creation date: '.$date,
|
|
|
];
|
|
|
$cForumThreadList[] = implode(', ', $list);
|
|
|
}
|
|
@@ -868,9 +892,10 @@ class UserRepository extends EntityRepository
|
|
|
$cBlog = [];
|
|
|
/** @var CBlogPost $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getDateCreation() ? $item->getDateCreation()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Title: '.$item->getTitle(),
|
|
|
- 'Date: '.$item->getDateCreation()->format($dateFormat),
|
|
|
+ 'Date: '.$date,
|
|
|
];
|
|
|
$cBlog[] = implode(', ', $list);
|
|
|
}
|
|
@@ -898,9 +923,10 @@ class UserRepository extends EntityRepository
|
|
|
$messageList = [];
|
|
|
/** @var Message $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getSendDate() ? $item->getSendDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Title: '.$item->getTitle(),
|
|
|
- 'Sent date: '.$item->getSendDate()->format($dateFormat),
|
|
|
+ 'Sent date: '.$date,
|
|
|
'To user # '.$item->getUserReceiverId(),
|
|
|
'Status'.$item->getMsgStatus(),
|
|
|
];
|
|
@@ -930,9 +956,10 @@ class UserRepository extends EntityRepository
|
|
|
$cDropboxFile = [];
|
|
|
/** @var CDropboxFile $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getUploadDate() ? $item->getUploadDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Title: '.$item->getTitle(),
|
|
|
- 'Uploaded date: '.$item->getUploadDate()->format($dateFormat),
|
|
|
+ 'Uploaded date: '.$date,
|
|
|
'File: '.$item->getFilename(),
|
|
|
];
|
|
|
$cDropboxFile[] = implode(', ', $list);
|
|
@@ -961,10 +988,11 @@ class UserRepository extends EntityRepository
|
|
|
$cDropboxFeedback = [];
|
|
|
/** @var CDropboxFeedback $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getFeedbackDate() ? $item->getFeedbackDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'File #'.$item->getFileId(),
|
|
|
'Feedback: '.$item->getFeedback(),
|
|
|
- 'Date: '.$item->getFeedbackDate()->format($dateFormat),
|
|
|
+ 'Date: '.$date,
|
|
|
];
|
|
|
$cDropboxFeedback[] = implode(', ', $list);
|
|
|
}
|
|
@@ -977,9 +1005,10 @@ class UserRepository extends EntityRepository
|
|
|
$cNotebook = [];
|
|
|
/** @var CNotebook $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getUpdateDate() ? $item->getUpdateDate()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Title: '.$item->getTitle(),
|
|
|
- 'Date: '.$item->getUpdateDate()->format($dateFormat),
|
|
|
+ 'Date: '.$date,
|
|
|
];
|
|
|
$cNotebook[] = implode(', ', $list);
|
|
|
}
|
|
@@ -1025,11 +1054,12 @@ class UserRepository extends EntityRepository
|
|
|
$cStudentPublicationComment = [];
|
|
|
/** @var CStudentPublicationComment $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getSentAt() ? $item->getSentAt()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Commment: '.$item->getComment(),
|
|
|
'File '.$item->getFile(),
|
|
|
'Course # '.$item->getCId(),
|
|
|
- 'Date: '.$item->getSentAt()->format($dateFormat),
|
|
|
+ 'Date: '.$date,
|
|
|
];
|
|
|
$cStudentPublicationComment[] = implode(', ', $list);
|
|
|
}
|
|
@@ -1073,11 +1103,12 @@ class UserRepository extends EntityRepository
|
|
|
$ticketMessage = [];
|
|
|
/** @var \Chamilo\TicketBundle\Entity\Message $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getInsertDateTime() ? $item->getInsertDateTime()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Subject: '.$item->getSubject(),
|
|
|
'IP: '.$item->getIpAddress(),
|
|
|
'Status: '.$item->getStatus(),
|
|
|
- 'Creation date: '.$item->getInsertDateTime()->format($dateFormat),
|
|
|
+ 'Creation date: '.$date,
|
|
|
];
|
|
|
$ticketMessage[] = implode(', ', $list);
|
|
|
}
|
|
@@ -1090,10 +1121,11 @@ class UserRepository extends EntityRepository
|
|
|
$skillRelUserComment = [];
|
|
|
/** @var SkillRelUserComment $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $date = $item->getFeedbackDateTime() ? $item->getFeedbackDateTime()->format($dateFormat) : '';
|
|
|
$list = [
|
|
|
'Feedback: '.$item->getFeedbackText(),
|
|
|
'Value: '.$item->getFeedbackValue(),
|
|
|
- 'Created at: '.$item->getFeedbackDateTime()->format($dateFormat),
|
|
|
+ 'Created at: '.$date,
|
|
|
];
|
|
|
$skillRelUserComment[] = implode(', ', $list);
|
|
|
}
|
|
@@ -1122,13 +1154,17 @@ class UserRepository extends EntityRepository
|
|
|
$userApiKey = [];
|
|
|
/** @var UserApiKey $item */
|
|
|
foreach ($result as $item) {
|
|
|
+ $validityStart = $item->getValidityStartDate() ? $item->getValidityStartDate()->format($dateFormat) : '';
|
|
|
+ $validityEnd = $item->getValidityEndDate() ? $item->getValidityEndDate()->format($dateFormat) : '';
|
|
|
+ $created = $item->getCreatedDate() ? $item->getCreatedDate()->format($dateFormat) : '';
|
|
|
+
|
|
|
$list = [
|
|
|
'ApiKey #'.$item->getApiKey(),
|
|
|
'Service: '.$item->getApiService(),
|
|
|
'EndPoint: '.$item->getApiEndPoint(),
|
|
|
- 'Validity start date: '.$item->getValidityEndDate()->format($dateFormat),
|
|
|
- 'Validity enddate: '.$item->getValidityStartDate()->format($dateFormat),
|
|
|
- 'Created at: '.$item->getCreatedDate()->format($dateFormat),
|
|
|
+ 'Validity start date: '.$validityStart,
|
|
|
+ 'Validity enddate: '.$validityEnd,
|
|
|
+ 'Created at: '.$created,
|
|
|
];
|
|
|
$userApiKey[] = implode(', ', $list);
|
|
|
}
|
|
@@ -1188,12 +1224,13 @@ class UserRepository extends EntityRepository
|
|
|
$user->setCurriculumItems([]);
|
|
|
|
|
|
$portals = $user->getPortals();
|
|
|
-
|
|
|
- $list = [];
|
|
|
- /** @var AccessUrlRelUser $portal */
|
|
|
- foreach ($portals as $portal) {
|
|
|
- $portalInfo = \UrlManager::get_url_data_from_id($portal->getAccessUrlId());
|
|
|
- $list[] = $portalInfo['url'];
|
|
|
+ if (!empty($portals)) {
|
|
|
+ $list = [];
|
|
|
+ /** @var AccessUrlRelUser $portal */
|
|
|
+ foreach ($portals as $portal) {
|
|
|
+ $portalInfo = \UrlManager::get_url_data_from_id($portal->getAccessUrlId());
|
|
|
+ $list[] = $portalInfo['url'];
|
|
|
+ }
|
|
|
}
|
|
|
$user->setPortals($list);
|
|
|
|