Adding certificate_filter_by_official_code see BT#9250

1.9.x
Julio Montoya 11 years ago
parent ef1dc064ea
commit d36c633267
  1. 30
      main/gradebook/gradebook_display_certificate.php
  2. 62
      main/inc/lib/usermanager.lib.php
  3. 2
      main/install/configuration.dist.php

@ -45,7 +45,6 @@ switch ($action) {
break;
case 'delete_all_certificates':
Category::deleteAllCertificates($cat_id);
break;
}
@ -66,7 +65,7 @@ if (isset($_GET['action']) && $_GET['action'] == 'delete') {
Security::clear_token();
if ($result ==true) {
Display::display_confirmation_message(get_lang('CertificateRemoved'));
} else {
} else {
Display::display_error_message(get_lang('CertificateNotRemoved'));
}
}
@ -117,7 +116,28 @@ if (!empty($cats)) {
}
}
$certificate_list = get_list_users_certificates($cat_id);
$filter = api_get_configuration_value('certificate_filter_by_official_code');
$userList = array();
$filterForm = null;
if ($filter) {
echo '<br />';
$options = UserManager::getOfficialCodeGrouped();
$form = new FormValidator(
'official_code',
'POST',
api_get_self().'?'.api_get_cidreq().'&cat_id='.$cat_id
);
$form->addElement('select', 'filter', get_lang('OfficialCode'), $options);
$form->add_button('submit', get_lang('Submit'));
$filterForm = '<br />'.$form->return_form();
if ($form->validate()) {
$officialCode = $form->getSubmitValue('filter');
$userList = UserManager::getUsersByOfficialCode($officialCode);
}
}
$certificate_list = get_list_users_certificates($cat_id, $userList);
echo '<div class="btn-group">';
$url = api_get_self().'?action=generate_all_certificates'.'&'.api_get_cidReq().'&cat_id='.$cat_id;
@ -132,7 +152,9 @@ if (count($certificate_list) > 0) {
}
echo '</div>';
if (count($certificate_list)==0) {
echo $filterForm;
if (count($certificate_list) == 0 ) {
echo Display::display_warning_message(get_lang('NoResultsAvailable'));
} else {

@ -3557,7 +3557,7 @@ class UserManager
}
/**
* Returns a list of all admninistrators
* Returns a list of all administrators
* @author jmontoya
* @return array
*/
@ -3568,13 +3568,18 @@ class UserManager
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
if (api_get_multiple_access_url()) {
$access_url_id = api_get_current_access_url_id();
$sql = "SELECT admin.user_id, username, firstname, lastname, email FROM $tbl_url_rel_user as url INNER JOIN $table_admin as admin
ON (admin.user_id=url.user_id) INNER JOIN $table_user u ON (u.user_id=admin.user_id)
WHERE access_url_id ='".$access_url_id."'";
$sql = "SELECT admin.user_id, username, firstname, lastname, email
FROM $tbl_url_rel_user as url
INNER JOIN $table_admin as admin
ON (admin.user_id=url.user_id)
INNER JOIN $table_user u
ON (u.user_id=admin.user_id)
WHERE access_url_id ='".$access_url_id."'";
} else {
$sql = "SELECT admin.user_id, username, firstname, lastname, email FROM $table_admin as admin
INNER JOIN $table_user u ON (u.user_id=admin.user_id)";
$sql = "SELECT admin.user_id, username, firstname, lastname, email
FROM $table_admin as admin
INNER JOIN $table_user u
ON (u.user_id=admin.user_id)";
}
$result = Database::query($sql);
$return = array();
@ -3583,6 +3588,7 @@ class UserManager
$return[$row['user_id']] = $row;
}
}
return $return;
}
@ -4899,4 +4905,46 @@ EOF;
Database::query($sql);
}
}
/**
* @return array
*/
public static function getOfficialCodeGrouped()
{
$user = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT DISTINCT official_code
FROM $user
GROUP BY official_code";
$result = Database::query($sql);
$values = Database::store_result($result, 'ASSOC');
$result = array();
foreach ($values as $value) {
$result[$value['official_code']] = $value['official_code'];
}
return $result;
}
/**
* @param string $officialCode
* @return array
*/
public static function getUsersByOfficialCode($officialCode)
{
$user = Database::get_main_table(TABLE_MAIN_USER);
$officialCode = Database::escape_string($officialCode);
$sql = "SELECT DISTINCT user_id
FROM $user
WHERE official_code = $officialCode
";
$result = Database::query($sql);
$users = array();
while ($row = Database::fetch_array($result)) {
$users[] = $row['user_id'];
}
return $users;
}
}

@ -271,3 +271,5 @@ $_configuration['system_stable'] = NEW_VERSION_STABLE;
//$_configuration['course_images_in_courses_list'] = false;
// Which student publication will be taken when connected to the gradebook: first|last
//$_configuration['student_publication_to_take_in_gradebook'] = 'first';
// Show a filter by official code
//$_configuration['certificate_filter_by_official_code'] = false;

Loading…
Cancel
Save