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(
$TABLEGROUPCATEGORIES,
[
'c_id' => $course_id,
'title' => get_lang('Default groups'),
'description' => '',
'max_student' => 0,
'self_reg_allowed' => 0,
'self_unreg_allowed' => 0,
'groups_per_user' => 0,
'display_order' => 0,
'doc_state' => 1,
'calendar_state' => 1,
'work_state' => 1,

@ -2456,18 +2456,30 @@ class CourseManager
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) {
// 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
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
ORDER BY g.name";
} else {
// 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
$session_condition
AND c_id = $course_id";
@ -2478,7 +2490,7 @@ class CourseManager
while ($groupData = Database::fetch_array($result)) {
$groupData['userNb'] = GroupManager::number_of_students($groupData['iid'], $course_id);
$groupList[$groupData['iid']] = $groupData;
}
}*/
return $groupList;
}
@ -2575,12 +2587,13 @@ class CourseManager
}
// Cleaning groups
$groups = GroupManager::get_groups($courseId);
// @todo should be cleaned by the resource.
/*$groups = GroupManager::get_groups($courseId);
if (!empty($groups)) {
foreach ($groups as $group) {
GroupManager::deleteGroup($group, $course['code']);
}
}
}*/
$course_tables = AddCourse::get_course_tables();
// Cleaning c_x tables
@ -2685,7 +2698,7 @@ class CourseManager
// Deletes all groups, group-users, group-tutors information
// To prevent fK mix up on some tables
GroupManager::deleteAllGroupsFromCourse($courseId);
//GroupManager::deleteAllGroupsFromCourse($courseId);
$appPlugin = new AppPlugin();
$appPlugin->performActionsWhenDeletingItem('course', $courseId);

@ -68,6 +68,8 @@ class GroupManager
}
/**
* @deprecated use Resources
*
* @param int $courseId
*
* @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.
*
* @param int $courseId

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

Loading…
Cancel
Save