Fixing query see #5684

skala
Julio Montoya 12 years ago
parent dc9a4064b9
commit 798e8ecd65
  1. 6
      main/inc/ajax/model.ajax.php
  2. 18
      main/inc/lib/usergroup.lib.php
  3. 8
      main/user/class.php

@ -406,10 +406,10 @@ switch ($action) {
break; break;
case 'get_usergroups_teacher': case 'get_usergroups_teacher':
$columns = array('name', 'users', 'actions'); $columns = array('name', 'users', 'actions');
$options = array('order'=>"name $sord", 'LIMIT'=> "$start , $limit"); $options = array('order'=>"name $sord", 'LIMIT'=> "$start , $limit");
switch ($type) { switch ($type) {
case 'not_registered': case 'not_registered':
$options['where'] = array(" (course_id IS NULL OR course_id != ?) " => $course_id); $options['course_id'] = $course_id;
$result = $obj->get_usergroup_not_in_course($options); $result = $obj->get_usergroup_not_in_course($options);
break; break;
case 'registered': case 'registered':
@ -419,7 +419,7 @@ switch ($action) {
} }
$new_result = array(); $new_result = array();
if (!empty($result)) { if (!empty($result)) {
foreach ($result as $group) { foreach ($result as $group) {
$group['users'] = count($obj->get_users_by_usergroup($group['id'])); $group['users'] = count($obj->get_users_by_usergroup($group['id']));
if ($obj->usergroup_was_added_in_course($group['id'], $course_id)) { if ($obj->usergroup_was_added_in_course($group['id'], $course_id)) {
$url = 'class.php?action=remove_class_from_course&id='.$group['id']; $url = 'class.php?action=remove_class_from_course&id='.$group['id'];

@ -87,17 +87,23 @@ class UserGroup extends Model {
"; ";
$conditions = Database::parse_conditions($options); $conditions = Database::parse_conditions($options);
$sql .= $conditions; $sql .= $conditions;
$result = Database::query($sql); $result = Database::query($sql);
$array = Database::store_result($result, 'ASSOC'); $array = Database::store_result($result, 'ASSOC');
return $array; return $array;
} }
public function get_usergroup_not_in_course($options = array()) { public function get_usergroup_not_in_course($options = array()) {
$sql = "SELECT DISTINCT * $course_id = intval($options['course_id']);
FROM {$this->usergroup_rel_course_table} urc unset($options['course_id']);
RIGHT JOIN {$this->table} u if (empty($course_id)) {
ON (u.id = urc.usergroup_id) return false;
"; }
$sql = "SELECT DISTINCT u.id, name
FROM {$this->table} u
LEFT OUTER JOIN {$this->usergroup_rel_course_table} urc
ON (u.id = urc.usergroup_id AND course_id = $course_id)
WHERE course_id is NULL
";
$conditions = Database::parse_conditions($options); $conditions = Database::parse_conditions($options);
$sql .= $conditions; $sql .= $conditions;
$result = Database::query($sql); $result = Database::query($sql);

@ -11,9 +11,6 @@ $language_file = array('registration','admin');
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
/**
* MAIN CODE
*/
api_protect_course_script(); api_protect_course_script();
if (api_get_setting('allow_user_course_subscription_by_course_admin') == 'false') { if (api_get_setting('allow_user_course_subscription_by_course_admin') == 'false') {
@ -68,7 +65,6 @@ if (api_is_allowed_to_edit()) {
//jqgrid will use this URL to do the selects //jqgrid will use this URL to do the selects
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_usergroups_teacher&type='.$type; $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_usergroups_teacher&type='.$type;
//The order is important you need to check the the $column variable in the model.ajax.php file //The order is important you need to check the the $column variable in the model.ajax.php file
@ -103,7 +99,5 @@ $(function() {
}); });
</script> </script>
<?php <?php
$usergroup->display_teacher_view(); $usergroup->display_teacher_view();
Display :: display_footer();
Display :: display_footer();
Loading…
Cancel
Save