Internal: Fix course add/delete, fix travis

pull/3513/head
Julio Montoya 5 years ago
parent d335b1a9c4
commit a46bbad7ab
  1. 2
      public/main/inc/lib/add_course.lib.inc.php
  2. 29
      public/main/inc/lib/course.lib.php
  3. 4
      public/main/inc/lib/groupmanager.lib.php
  4. 1
      tests/behat/features/bootstrap/FeatureContext.php

@ -306,14 +306,12 @@ class AddCourse
Database::insert( Database::insert(
$TABLEGROUPCATEGORIES, $TABLEGROUPCATEGORIES,
[ [
'c_id' => $course_id,
'title' => get_lang('Default groups'), 'title' => get_lang('Default groups'),
'description' => '', 'description' => '',
'max_student' => 0, 'max_student' => 0,
'self_reg_allowed' => 0, 'self_reg_allowed' => 0,
'self_unreg_allowed' => 0, 'self_unreg_allowed' => 0,
'groups_per_user' => 0, 'groups_per_user' => 0,
'display_order' => 0,
'doc_state' => 1, 'doc_state' => 1,
'calendar_state' => 1, 'calendar_state' => 1,
'work_state' => 1, 'work_state' => 1,

@ -2456,18 +2456,30 @@ class CourseManager
return []; return [];
} }
0 != $session_id ? $session_condition = ' WHERE g.session_id IN(1,'.intval($session_id).')' : $session_condition = ' WHERE g.session_id = 0'; $repo = Container::getGroupRepository();
$course = api_get_course_entity($course_info['real_id']);
$session = api_get_session_entity($session_id);
$qb = $repo->getResourcesByCourse($course, $session);
$groups = $qb->getQuery()->getArrayResult();
$groupList = [];
foreach ($groups as $group) {
$groupList[$group['iid']] = $group;
}
/* 0 != $session_id ? $session_condition = ' WHERE g.session_id IN(1,'.intval($session_id).')' : $session_condition = ' WHERE g.session_id = 0';
if (0 == $in_get_empty_group) { if (0 == $in_get_empty_group) {
// get only groups that are not empty // get only groups that are not empty
$sql = "SELECT DISTINCT g.iid, g.iid, g.name $sql = "SELECT DISTINCT g.iid, g.name
FROM ".Database::get_course_table(TABLE_GROUP)." AS g FROM ".Database::get_course_table(TABLE_GROUP)." AS g
INNER JOIN ".Database::get_course_table(TABLE_GROUP_USER)." gu INNER JOIN ".Database::get_course_table(TABLE_GROUP_USER)." gu
ON (g.iid = gu.group_id AND g.c_id = $course_id AND gu.c_id = $course_id) ON (g.iid = gu.group_id)
$session_condition $session_condition
ORDER BY g.name"; ORDER BY g.name";
} else { } else {
// get all groups even if they are empty // get all groups even if they are empty
$sql = "SELECT g.iid, g.name, g.iid $sql = "SELECT g.iid, g.name
FROM ".Database::get_course_table(TABLE_GROUP)." AS g FROM ".Database::get_course_table(TABLE_GROUP)." AS g
$session_condition $session_condition
AND c_id = $course_id"; AND c_id = $course_id";
@ -2478,7 +2490,7 @@ class CourseManager
while ($groupData = Database::fetch_array($result)) { while ($groupData = Database::fetch_array($result)) {
$groupData['userNb'] = GroupManager::number_of_students($groupData['iid'], $course_id); $groupData['userNb'] = GroupManager::number_of_students($groupData['iid'], $course_id);
$groupList[$groupData['iid']] = $groupData; $groupList[$groupData['iid']] = $groupData;
} }*/
return $groupList; return $groupList;
} }
@ -2575,12 +2587,13 @@ class CourseManager
} }
// Cleaning groups // Cleaning groups
$groups = GroupManager::get_groups($courseId); // @todo should be cleaned by the resource.
/*$groups = GroupManager::get_groups($courseId);
if (!empty($groups)) { if (!empty($groups)) {
foreach ($groups as $group) { foreach ($groups as $group) {
GroupManager::deleteGroup($group, $course['code']); GroupManager::deleteGroup($group, $course['code']);
} }
} }*/
$course_tables = AddCourse::get_course_tables(); $course_tables = AddCourse::get_course_tables();
// Cleaning c_x tables // Cleaning c_x tables
@ -2685,7 +2698,7 @@ class CourseManager
// Deletes all groups, group-users, group-tutors information // Deletes all groups, group-users, group-tutors information
// To prevent fK mix up on some tables // To prevent fK mix up on some tables
GroupManager::deleteAllGroupsFromCourse($courseId); //GroupManager::deleteAllGroupsFromCourse($courseId);
$appPlugin = new AppPlugin(); $appPlugin = new AppPlugin();
$appPlugin->performActionsWhenDeletingItem('course', $courseId); $appPlugin->performActionsWhenDeletingItem('course', $courseId);

@ -68,6 +68,8 @@ class GroupManager
} }
/** /**
* @deprecated use Resources
*
* @param int $courseId * @param int $courseId
* *
* @return array * @return array
@ -524,6 +526,8 @@ class GroupManager
} }
/** /**
* @deprecated Should be deleted by the resources.
*
* Function needed only when deleting a course, in order to be sure that all group ids are deleted. * Function needed only when deleting a course, in order to be sure that all group ids are deleted.
* *
* @param int $courseId * @param int $courseId

@ -22,7 +22,6 @@ class FeatureContext extends MinkContext
public function iAmAPlatformAdministrator() public function iAmAPlatformAdministrator()
{ {
$this->iAmLoggedAs('admin'); $this->iAmLoggedAs('admin');
$this->getSession()->back();
} }
/** /**

Loading…
Cancel
Save