Fix delete group

Refs #2771
pull/2818/head
Angel Fernando Quiroz Campos 7 years ago
parent 3f55127395
commit a4f9714cda
  1. 26
      main/inc/lib/groupmanager.lib.php
  2. 2
      src/CoreBundle/Entity/Resource/ResourceLink.php
  3. 2
      src/CoreBundle/Entity/Resource/ResourceRight.php

@ -442,6 +442,7 @@ class GroupManager
$course_id = $course_info['real_id'];
// Database table definitions
$em = Database::getManager();
$group_table = Database::get_course_table(TABLE_GROUP);
$forum_table = Database::get_course_table(TABLE_FORUM);
$groupInfo = self::get_group_properties($groupInfo['iid'], true);
@ -476,21 +477,26 @@ class GroupManager
}
}
$sql = "DELETE FROM $forum_table
WHERE c_id = $course_id AND forum_of_group = $groupId ";
Database::query($sql);
$em
->createQuery(
'DELETE FROM ChamiloCourseBundle:CForumForum f WHERE f.cId = :course AND f.forumOfGroup = :group'
)
->execute(['course' => $course_id, 'group' => $groupId]);
// Delete item properties of this group.
// to_group_id is related to c_group_info.iid
$itemPropertyTable = Database::get_course_table(TABLE_ITEM_PROPERTY);
$sql = "DELETE FROM $itemPropertyTable
WHERE c_id = $course_id AND to_group_id = $groupIid ";
Database::query($sql);
$em
->createQuery(
'DELETE FROM ChamiloCourseBundle:CItemProperty ci WHERE ci.course = :course AND ci.group = :group'
)
->execute(['course' => $course_id, 'group' => $groupId]);
// delete the groups
$sql = "DELETE FROM $group_table
WHERE c_id = $course_id AND iid = $groupIid ";
Database::query($sql);
$em
->createQuery(
'DELETE FROM ChamiloCourseBundle:CGroupInfo g WHERE g.course = :course AND g.iid = :id'
)
->execute(['course' => $course_id, 'id' => $groupIid]);
}
return true;

@ -56,7 +56,7 @@ class ResourceLink implements ResourceInterface
/**
* @ORM\ManyToOne(targetEntity="Chamilo\CourseBundle\Entity\CGroupInfo")
* @ORM\JoinColumn(name="group_id", referencedColumnName="iid", nullable=true)
* @ORM\JoinColumn(name="group_id", referencedColumnName="iid", nullable=true, onDelete="CASCADE")
*/
protected $group;

@ -20,7 +20,7 @@ class ResourceRight
/**
* @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\Resource\ResourceLink", inversedBy="resourceRight")
* @ORM\JoinColumn(name="resource_link_id", referencedColumnName="id")
* @ORM\JoinColumn(name="resource_link_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $resourceLink;

Loading…
Cancel
Save