fix bad user stat

This commit is contained in:
Fred Tempez 2023-10-18 13:41:16 +02:00
parent 552a46ebec
commit 76f78d4365

View File

@ -30,6 +30,7 @@ class course extends common
'userAdd' => self::GROUP_ADMIN, 'userAdd' => self::GROUP_ADMIN,
'userDelete' => self::GROUP_ADMIN, 'userDelete' => self::GROUP_ADMIN,
'userDeleteAll' => self::GROUP_ADMIN, 'userDeleteAll' => self::GROUP_ADMIN,
'userHistory' => self::GROUP_ADMIN,
]; ];
public static $courseAccess = [ public static $courseAccess = [
@ -65,6 +66,8 @@ class course extends common
public static $pagesList = ['accueil' => 'Accueil']; public static $pagesList = ['accueil' => 'Accueil'];
public static $userHistory = [];
public function index() public function index()
{ {
$courseIdShortTitle = helper::arrayColumn($this->getData(['course']), 'shortTitle'); $courseIdShortTitle = helper::arrayColumn($this->getData(['course']), 'shortTitle');
@ -381,6 +384,10 @@ class course extends common
public function user() public function user()
{ {
// Cours sélectionné
$courseId = $this->getUrl(2);
// Liste des groupes et des profils // Liste des groupes et des profils
$courseGroups = $this->getData(['profil']); $courseGroups = $this->getData(['profil']);
foreach ($courseGroups as $groupId => $groupValue) { foreach ($courseGroups as $groupId => $groupValue) {
@ -409,19 +416,18 @@ class course extends common
self::$alphabet = array_combine($alphabet, self::$alphabet); self::$alphabet = array_combine($alphabet, self::$alphabet);
self::$alphabet = array_merge(['all' => 'Tout'], self::$alphabet); self::$alphabet = array_merge(['all' => 'Tout'], self::$alphabet);
// Cours sélectionné
$courseId = $this->getUrl(2);
// Statistiques du cours sélectionné calcul du nombre de pages // Statistiques du cours sélectionné calcul du nombre de pages
$currentSite = self::$siteContent; $sumPages = 0;
$this->initDB('page', $courseId); $data = json_decode(file_get_contents(self::DATA_DIR . $courseId . '/page.json'), true);
$sumPages = $this->countPages($this->getHierarchy(null, false)); foreach($data['page'] as $pageId => $pageData) {
// Supprimer les barres if ($pageData['block'] !== 'bar') {
$sumPages = $sumPages - count($this->getHierarchy(null, false, true)); $sumPages ++;
self::$siteContent = $currentSite; }
}
// Liste des inscrits dans le cours sélectionné. // Liste des inscrits dans le cours sélectionné.
$users = $this->getData(['enrolment', $courseId]); $users = $this->getData(['enrolment', $courseId]);
// Tri du tableau par défaut par $userId // Tri du tableau par défaut par $userId
ksort($users); ksort($users);
@ -654,6 +660,33 @@ class course extends common
} }
/**
* Liste les pages consultées par un utilisateur
*/
public function userHistory()
{
$courseId = $this->getUrl(2);
$userId = $this->getUrl(3);
foreach ($this->getData(['history', $courseId, $userId]) as $pageId => $time) {
self::$userHistory[$pageId] = [
$this->getData(['page', $pageId, 'shortTitle']),
helper::dateUTF8('%d %B %Y - %H:%M', $time)
]
;
}
// Valeurs en sortie
$this->addOutput([
'title' => helper::translate('Historique'),
'view' => 'userHistory',
'vendor' => [
'datatables'
]
]);
}
// Génération du message d'inscription // Génération du message d'inscription
public function enrol() public function enrol()
{ {
@ -734,13 +767,14 @@ class course extends common
} }
} }
/** /**
* Autorise l'accès à un cours * Autorise l'accès à un cours
* @param @return bool le user a le droit d'entrée dans le cours * @param @return bool le user a le droit d'entrée dans le cours
* @param string $userId identifiant de l'utilisateur * @param string $userId identifiant de l'utilisateur
* @param string $courseId identifiant du cours sollicité * @param string $courseId identifiant du cours sollicité
*/ */
public function courseIsUserEnroled($courseId) private function courseIsUserEnroled($courseId)
{ {
$userId = $this->getUser('id'); $userId = $this->getUser('id');
$group = $userId ? $this->getData(['user', $userId, 'group']) : null; $group = $userId ? $this->getData(['user', $userId, 'group']) : null;
@ -765,18 +799,6 @@ class course extends common
return $r; return $r;
} }
public function courseEnrolUser($courseId, $userId)
{
$this->setData([
'enrolment',
$courseId,
$userId,
[
'history' => [],
]
]);
}
/** /**
* Autorise l'accès à un cours * Autorise l'accès à un cours
* @param @return bool le user a le droit d'entrée dans le cours * @param @return bool le user a le droit d'entrée dans le cours
@ -822,4 +844,16 @@ class course extends common
return $count; return $count;
} }
private function courseEnrolUser($courseId, $userId)
{
$this->setData([
'enrolment',
$courseId,
$userId,
[
'history' => [],
]
]);
}
} }