fonction getReport ajoutée à tester

This commit is contained in:
Fred Tempez 2024-04-04 16:13:54 +02:00
parent ab34cb1953
commit 13a603b1f9
2 changed files with 17 additions and 45 deletions

View File

@ -641,27 +641,14 @@ class course extends common
// Liste des inscrits dans le contenu sélectionné. // Liste des inscrits dans le contenu sélectionné.
$users = $this->getData(['enrolment', $courseId]); $users = $this->getData(['enrolment', $courseId]);
// Récupère l'historique des participants
$reports = $this->getReport($courseId);
if (is_array($users)) { if (is_array($users)) {
// Tri du tableau par défaut par $userId // Tri du tableau par défaut par $userId
ksort($users); ksort($users);
foreach ($users as $userId => $userValue) { foreach ($users as $userId => $userValue) {
// Date et heure de la dernière page vue
// Compatibilité anciennes versions
if (
$this->getData(['enrolment', $courseId, $userId, 'lastPageView']) === null
or $this->getData(['enrolment', $courseId, $userId, 'datePageView']) === null
) {
if (!empty ($userValue['history'])) {
$maxTime = max($userValue['history']);
$lastPageId = array_search($maxTime, $userValue['history']);
$this->setData(['enrolment', $courseId, $userId, 'lastPageView', $lastPageId]);
$this->setData(['enrolment', $courseId, $userId, 'datePageView', $maxTime]);
}
}
// Compte les rôles valides // Compte les rôles valides
if (isset ($profils[$this->getData(['user', $userId, 'group']) . $this->getData(['user', $userId, 'profil'])])) { if (isset ($profils[$this->getData(['user', $userId, 'group']) . $this->getData(['user', $userId, 'profil'])])) {
$profils[$this->getData(['user', $userId, 'group']) . $this->getData(['user', $userId, 'profil'])]++; $profils[$this->getData(['user', $userId, 'group']) . $this->getData(['user', $userId, 'profil'])]++;
@ -694,8 +681,8 @@ class course extends common
} }
// Progression // Progression
$viewPages = $this->getData(['enrolment', $courseId, $userId, 'history']) !== null ? $viewPages = $this->getReport($courseId, $userId) !== null ?
count(array_keys($this->getData(['enrolment', $courseId, $userId, 'history']))) : count(array_keys($this->getReport($courseId, $userId))) :
0; 0;
// Construction du tableau // Construction du tableau
@ -714,8 +701,8 @@ class course extends common
$this->getData(['user', $userId, 'tags']), $this->getData(['user', $userId, 'tags']),
template::button('userReport' . $userId, [ template::button('userReport' . $userId, [
'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId, 'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId,
'value' => !empty ($userValue['history']) ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%', 'value' => !empty ($reports[$userId]) ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%',
'disable' => empty ($userValue['history']) 'disable' => empty ($reports[$userId])
]), ]),
template::button('userDelete' . $userId, [ template::button('userDelete' . $userId, [
'class' => 'userDelete buttonRed', 'class' => 'userDelete buttonRed',
@ -773,7 +760,7 @@ class course extends common
$this->getData(['user', $keyPost]) !== null $this->getData(['user', $keyPost]) !== null
&& $this->getData(['enrolment', $courseId, $keyPost]) === null && $this->getData(['enrolment', $courseId, $keyPost]) === null
) { ) {
$this->setData(['enrolment', $courseId, $keyPost, 'history', array()]); $this->setData(['enrolment', $courseId, $keyPost, array()]);
} }
} }
} }
@ -1181,7 +1168,7 @@ class course extends common
} }
$userId = $this->getUrl(3); $userId = $this->getUrl(3);
$h = $this->getData(['enrolment', $courseId, $userId, 'history']); $h = $this->getReport($courseId, $userId);
// Inversion des clés et des valeurs // Inversion des clés et des valeurs
$history = array(); $history = array();
@ -1310,27 +1297,14 @@ class course extends common
mkdir(self::FILE_DIR . 'source/' . $courseId . '/export/'); mkdir(self::FILE_DIR . 'source/' . $courseId . '/export/');
} }
$filename = self::FILE_DIR . 'source/' . $courseId . '/export/' . '/synthèse' . helper::dateUTF8('%Y%m%d', time()) . '.csv'; $filename = self::FILE_DIR . 'source/' . $courseId . '/export/' . '/synthèse' . helper::dateUTF8('%Y%m%d', time()) . '.csv';
$reports = $this->getReport($courseId);
foreach ($users as $userId => $userValue) { foreach ($users as $userId => $userValue) {
// Date et heure de la dernière page vue
// Compatibilité anciennes versions
if (
$this->getData(['enrolment', $courseId, $userId, 'lastPageView']) === null
or $this->getData(['enrolment', $courseId, $userId, 'datePageView']) === null
) {
if (!empty ($userValue['history'])) {
$maxTime = max($userValue['history']);
$lastPageId = array_search($maxTime, $userValue['history']);
$this->setData(['enrolment', $courseId, $userId, 'lastPageView', $lastPageId]);
$this->setData(['enrolment', $courseId, $userId, 'datePageView', $maxTime]);
}
}
// Progression // Progression
$viewPages = $this->getData(['enrolment', $courseId, $userId, 'history']) !== null ? $viewPages = $reports[$userId] != null
count(array_keys($this->getData(['enrolment', $courseId, $userId, 'history']))) : ? count($reports[$userId])
0; : 0;
// Construction du tableau // Construction du tableau
self::$courseUsers[] = [ self::$courseUsers[] = [
@ -1388,7 +1362,7 @@ class course extends common
} }
// Traitement de l'historique // Traitement de l'historique
$h = $this->getData(['enrolment', $courseId, $userId, 'history']); $h = $this->getReport($courseId, $userId);
// Inversion des clés et des valeurs // Inversion des clés et des valeurs
$history = array(); $history = array();
@ -1857,9 +1831,7 @@ class course extends common
'enrolment', 'enrolment',
$courseId, $courseId,
$userId, $userId,
[ []
'history' => [],
]
]); ]);
} }

View File

@ -367,9 +367,9 @@ class page extends common
&& array_key_exists($userId, $userData) && array_key_exists($userId, $userData)
) { ) {
// Remplacer l'ancienne ID par la nouvelle // Remplacer l'ancienne ID par la nouvelle
$datas = $this->getReport(self::$siteContent, [ $userId, $this->getUrl(2)]); $datas = $this->getReport(self::$siteContent, $userId, $this->getUrl(2));
$this->setReport(self::$siteContent, [$userId, $pageId, $datas]); $this->setReport(self::$siteContent, $userId, $pageId, $datas);
$this->deleteReport(self::$siteContent, [$userId,$this->getUrl(2)]); $this->deleteReport(self::$siteContent, $userId, $this->getUrl(2));
} }
// Mettre à jour la dernière page vue si nécessaire // Mettre à jour la dernière page vue si nécessaire
if ($this->getData(['enrolment', self::$siteContent, $userId, 'lastPageView']) === $this->getUrl(2)) { if ($this->getData(['enrolment', self::$siteContent, $userId, 'lastPageView']) === $this->getUrl(2)) {