Add description filter see BT#9642

1.9.x
Julio Montoya 11 years ago
parent b9ded7cee5
commit a082730009
  1. 16
      main/inc/ajax/model.ajax.php
  2. 23
      main/inc/lib/sessionmanager.lib.php
  3. 23
      main/inc/lib/tracking.lib.php
  4. 3
      main/install/configuration.dist.php
  5. 15
      main/mySpace/session.php

@ -289,7 +289,9 @@ switch ($action) {
$count = get_count_exam_hotpotatoes_results($hotpot_path); $count = get_count_exam_hotpotatoes_results($hotpot_path);
break; break;
case 'get_sessions_tracking': case 'get_sessions_tracking':
$keyword = isset($_REQUEST['keyword']) ? $_REQUEST['keyword'] : null; $keyword = isset($_REQUEST['keyword']) ? $_REQUEST['keyword'] : '';
$description = isset($_REQUEST['description']) ? $_REQUEST['description'] : '';
if (api_is_drh()) { if (api_is_drh()) {
$count = SessionManager::get_sessions_followed_by_drh( $count = SessionManager::get_sessions_followed_by_drh(
api_get_user_id(), api_get_user_id(),
@ -299,7 +301,8 @@ switch ($action) {
false, false,
false, false,
null, null,
$keyword $keyword,
$description
); );
} else { } else {
// Sessions for the coach // Sessions for the coach
@ -308,7 +311,8 @@ switch ($action) {
null, null,
null, null,
true, true,
$keyword $keyword,
$description
); );
} }
break; break;
@ -720,7 +724,8 @@ switch ($action) {
false, false,
false, false,
null, null,
$keyword $keyword,
$description
); );
} else { } else {
// Sessions for the coach // Sessions for the coach
@ -729,7 +734,8 @@ switch ($action) {
$start, $start,
$limit, $limit,
false, false,
$keyword $keyword,
$description
); );
} }

@ -2827,6 +2827,8 @@ class SessionManager
* @param bool $getOnlySessionId * @param bool $getOnlySessionId
* @param bool $getSql * @param bool $getSql
* @param string $orderCondition * @param string $orderCondition
* @param string $description
*
* @return array sessions * @return array sessions
*/ */
public static function get_sessions_followed_by_drh( public static function get_sessions_followed_by_drh(
@ -2837,7 +2839,8 @@ class SessionManager
$getOnlySessionId = false, $getOnlySessionId = false,
$getSql = false, $getSql = false,
$orderCondition = null, $orderCondition = null,
$keyword = null $keyword = '',
$description = ''
) { ) {
return self::getSessionsFollowedByUser( return self::getSessionsFollowedByUser(
$userId, $userId,
@ -2848,7 +2851,8 @@ class SessionManager
$getOnlySessionId, $getOnlySessionId,
$getSql, $getSql,
$orderCondition, $orderCondition,
$keyword $keyword,
$description
); );
} }
@ -2862,6 +2866,7 @@ class SessionManager
* @param bool $getSql * @param bool $getSql
* @param string $orderCondition * @param string $orderCondition
* @param string $keyword * @param string $keyword
* @param string $description
* @return array sessions * @return array sessions
*/ */
public static function getSessionsFollowedByUser( public static function getSessionsFollowedByUser(
@ -2873,7 +2878,8 @@ class SessionManager
$getOnlySessionId = false, $getOnlySessionId = false,
$getSql = false, $getSql = false,
$orderCondition = null, $orderCondition = null,
$keyword = null $keyword = '',
$description = ''
) { ) {
// Database Table Definitions // Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
@ -2934,12 +2940,19 @@ class SessionManager
break; break;
} }
$keywordCondition = null; $keywordCondition = '';
if (!empty($keyword)) { if (!empty($keyword)) {
$keyword = Database::escape_string($keyword); $keyword = Database::escape_string($keyword);
$keywordCondition = " AND (s.name LIKE '%$keyword%' ) "; $keywordCondition = " AND (s.name LIKE '%$keyword%' ) ";
} }
$whereConditions .= $keywordCondition;
$descriptionCondition = '';
if (!empty($description)) {
$description = Database::escape_string($description);
$descriptionCondition = " AND (s.description LIKE '%$description%' ) ";
}
$whereConditions .= $descriptionCondition.$keywordCondition;
$subQuery = $sessionQuery.$courseSessionQuery; $subQuery = $sessionQuery.$courseSessionQuery;

@ -2910,7 +2910,8 @@ class Tracking
* @param int $start * @param int $start
* @param int $limit * @param int $limit
* @param bool $getCount * @param bool $getCount
* @param null $keyword * @param string $keyword
* @param string $description
* @return mixed * @return mixed
*/ */
public static function get_sessions_coached_by_user( public static function get_sessions_coached_by_user(
@ -2918,7 +2919,8 @@ class Tracking
$start = 0, $start = 0,
$limit = 0, $limit = 0,
$getCount = false, $getCount = false,
$keyword = null $keyword = '',
$description = ''
) { ) {
// table definition // table definition
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
@ -2941,6 +2943,12 @@ class Tracking
$keywordCondition = " AND (name LIKE '%$keyword%' ) "; $keywordCondition = " AND (name LIKE '%$keyword%' ) ";
} }
$descriptionCondition = '';
if (!empty($description)) {
$description = Database::escape_string($description);
$descriptionCondition = " AND (description LIKE '%$description%' ) ";
}
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); $tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id(); $access_url_id = api_get_current_access_url_id();
@ -2950,7 +2958,11 @@ class Tracking
SELECT DISTINCT id, name, date_start, date_end SELECT DISTINCT id, name, date_start, date_end
FROM $tbl_session session INNER JOIN $tbl_session_rel_access_url session_rel_url FROM $tbl_session session INNER JOIN $tbl_session_rel_access_url session_rel_url
ON (session.id = session_rel_url.session_id) ON (session.id = session_rel_url.session_id)
WHERE id_coach = $coach_id AND access_url_id = $access_url_id $keywordCondition WHERE
id_coach = $coach_id AND
access_url_id = $access_url_id
$keywordCondition
$descriptionCondition
UNION UNION
SELECT DISTINCT session.id, session.name, session.date_start, session.date_end SELECT DISTINCT session.id, session.name, session.date_start, session.date_end
FROM $tbl_session as session FROM $tbl_session as session
@ -2960,7 +2972,10 @@ class Tracking
session_course_user.status=2 session_course_user.status=2
INNER JOIN $tbl_session_rel_access_url session_rel_url INNER JOIN $tbl_session_rel_access_url session_rel_url
ON (session.id = session_rel_url.session_id) ON (session.id = session_rel_url.session_id)
WHERE access_url_id = $access_url_id $keywordCondition WHERE
access_url_id = $access_url_id
$keywordCondition
$descriptionCondition
) as sessions $limitCondition ) as sessions $limitCondition
"; ";

@ -299,3 +299,6 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
// User block -> Add user // User block -> Add user
// Course Sessions block -> Training session list // Course Sessions block -> Training session list
$_configuration['limit_session_admin_role'] = false; $_configuration['limit_session_admin_role'] = false;
// Show session description
//$_configuration['show_session_description'] = false;

@ -1,9 +1,11 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
/*
/**
* Sessions reporting * Sessions reporting
* @package chamilo.reporting * @package chamilo.reporting
*/ */
ob_start(); ob_start();
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = array('registration', 'index', 'trad4all', 'tracking', 'admin'); $language_file = array('registration', 'index', 'trad4all', 'tracking', 'admin');
@ -89,15 +91,22 @@ if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) {
$form = new FormValidator('search_course', 'get', api_get_path(WEB_CODE_PATH).'mySpace/session.php'); $form = new FormValidator('search_course', 'get', api_get_path(WEB_CODE_PATH).'mySpace/session.php');
$form->addElement('text', 'keyword', get_lang('Keyword')); $form->addElement('text', 'keyword', get_lang('Keyword'));
$setting = api_get_configuration_value('show_session_description');
if ($setting) {
$form->addElement('text', 'description', get_lang('Description'));
}
$form->addElement('button', 'submit', get_lang('Search')); $form->addElement('button', 'submit', get_lang('Search'));
$form->addElement('hidden', 'session_id', $sessionId); $form->addElement('hidden', 'session_id', $sessionId);
$keyword = null; $keyword = '';
$description = '';
if ($form->validate()) { if ($form->validate()) {
$keyword = $form->getSubmitValue('keyword'); $keyword = $form->getSubmitValue('keyword');
$description = $form->getSubmitValue('description');
} }
$form->setDefaults(array('keyword' => $keyword)); $form->setDefaults(array('keyword' => $keyword));
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions_tracking&keyword='.Security::remove_XSS($keyword); $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions_tracking&keyword='.Security::remove_XSS($keyword).'&description='.$description;
$columns = array( $columns = array(
get_lang('Title'), get_lang('Title'),

Loading…
Cancel
Save