From c74621a08ed4b255fef70981b776bce761dc4961 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 22 Feb 2022 21:04:21 -0500 Subject: [PATCH 1/2] Reporting : Add filter by active users in course reporting - BT#19731 --- main/inc/lib/display.lib.php | 2 +- main/inc/lib/tracking.lib.php | 7 +++++++ main/tracking/courseLog.php | 12 +++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/main/inc/lib/display.lib.php b/main/inc/lib/display.lib.php index 8a504ca664..0b0e2bcae4 100755 --- a/main/inc/lib/display.lib.php +++ b/main/inc/lib/display.lib.php @@ -2091,7 +2091,7 @@ class Display if (empty($tip)) { return $text; } - + return self::tag( $tag, $text, diff --git a/main/inc/lib/tracking.lib.php b/main/inc/lib/tracking.lib.php index 7378858c4e..3b63d345b5 100755 --- a/main/inc/lib/tracking.lib.php +++ b/main/inc/lib/tracking.lib.php @@ -8902,6 +8902,13 @@ class TrackingCourseLog ) "; } + if (isset($_GET['user_active'])) { + $active = (int) $_GET['user_active']; + $condition_user .= " AND ( + user.active = $active + ) "; + } + $url_table = ''; $url_condition = ''; if (api_is_multiple_url_enabled()) { diff --git a/main/tracking/courseLog.php b/main/tracking/courseLog.php index 05ba0ef280..fbb08e4e13 100755 --- a/main/tracking/courseLog.php +++ b/main/tracking/courseLog.php @@ -275,10 +275,20 @@ $form_search->addHidden('session_id', $sessionId); $form_search->addHidden('id_session', $sessionId); $form_search->addHidden('cidReq', $courseCode); $form_search->addElement('text', 'user_keyword'); + +// Filter by active users +$activeChecked = isset($_GET['user_active']) ? (int) $_GET['user_active'] : ''; +$form_search->addElement('html', '
'); +$form_search->addElement('html', ''.get_lang('ActiveAccount').': + '.get_lang('Yes').'  + '.get_lang('No').''); +$form_search->addElement('html', '
'); + $form_search->addButtonSearch(get_lang('SearchUsers')); echo Display::toolbarAction( 'toolbar-courselog', - [$actionsLeft, $form_search->returnForm(), $actionsRight] + [$actionsLeft, $form_search->returnForm(), $actionsRight], + [4, 6, 2] ); $course_name = get_lang('Course').' '.$courseInfo['name']; From 8cc6804e0789407db6fc790b860005d606284919 Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 2 Mar 2022 12:40:05 -0500 Subject: [PATCH 2/2] Reporting : Improve filter by active users course reporting - BT#19731 --- main/tracking/courseLog.php | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/main/tracking/courseLog.php b/main/tracking/courseLog.php index fbb08e4e13..85c08bc7e6 100755 --- a/main/tracking/courseLog.php +++ b/main/tracking/courseLog.php @@ -275,15 +275,6 @@ $form_search->addHidden('session_id', $sessionId); $form_search->addHidden('id_session', $sessionId); $form_search->addHidden('cidReq', $courseCode); $form_search->addElement('text', 'user_keyword'); - -// Filter by active users -$activeChecked = isset($_GET['user_active']) ? (int) $_GET['user_active'] : ''; -$form_search->addElement('html', '
'); -$form_search->addElement('html', ''.get_lang('ActiveAccount').': - '.get_lang('Yes').'  - '.get_lang('No').''); -$form_search->addElement('html', '
'); - $form_search->addButtonSearch(get_lang('SearchUsers')); echo Display::toolbarAction( 'toolbar-courselog', @@ -444,6 +435,19 @@ if ($nbStudents > 0) { } } + // Filter by active users + $formActiveUsers = new FormValidator( + 'active_users', + 'get', + api_get_self().'?'.api_get_cidreq().'&'.$additionalParams + ); + // Filter by active users + $group = []; + $group[] = $formActiveUsers->createElement('radio', 'user_active', 'id="user_active1"', get_lang('Yes'), 1); + $group[] = $formActiveUsers->createElement('radio', 'user_active', 'id="user_active0"', get_lang('No'), 0); + $formActiveUsers->addGroup($group, 'active', get_lang('AccountActive')); + $formActiveUsers->addButtonSearch(get_lang('Search')); + $extraField = new ExtraField('user'); $extraField->addElements($formExtraField, 0, [], true); $formExtraField->addButtonSearch(get_lang('Search')); @@ -496,6 +500,15 @@ if ($nbStudents > 0) { } } + if ($formActiveUsers->validate()) { + $formValue = $formActiveUsers->getSubmitValue('active'); + if (isset($formValue['user_active'])) { + $active = (int) $formValue['user_active']; + $whereCondition = " AND user.active = $active "; + $conditions = ['where' => $whereCondition, 'inject_joins' => '']; + } + } + /*if ($formGroup->validate()) { $groupId = (int) $formGroup->getSubmitValue('group_id'); if (!empty($groupId)) { @@ -598,6 +611,7 @@ if ($nbStudents > 0) { $mainForm->addHtml(''); $html .= $mainForm->returnForm();