Internal: Refactor code, fix create announcement, agenda event

pull/3451/head
Julio Montoya 6 years ago
parent 6a4ec5342b
commit dd6a342528
  1. 22
      public/main/exercise/question.class.php
  2. 59
      public/main/inc/lib/AnnouncementManager.php
  3. 43
      public/main/inc/lib/agenda.lib.php
  4. 8
      public/main/inc/lib/api.lib.php
  5. 4
      public/main/inc/lib/document.lib.php
  6. 10
      public/main/inc/lib/groupmanager.lib.php
  7. 4
      public/main/lp/lp_subscribe_users_to_category.php
  8. 10
      public/plugin/zoom/Entity/Meeting.php
  9. 4
      public/plugin/zoom/lib/MeetingRepository.php
  10. 18
      public/plugin/zoom/lib/ZoomPlugin.php
  11. 2
      src/CoreBundle/Controller/CourseHomeController.php
  12. 116
      src/CoreBundle/Entity/AbstractResource.php
  13. 16
      src/CoreBundle/Entity/Course.php
  14. 42
      src/CoreBundle/Entity/Listener/ResourceListener.php
  15. 8
      src/CoreBundle/Entity/ResourceLink.php
  16. 2
      src/CoreBundle/EventListener/CourseListener.php
  17. 8
      src/CoreBundle/Framework/Container.php
  18. 4
      src/CoreBundle/Repository/GridInterface.php
  19. 4
      src/CoreBundle/Repository/PersonalFileRepository.php
  20. 131
      src/CoreBundle/Repository/ResourceRepository.php
  21. 2
      src/CoreBundle/Resources/config/tools.yml
  22. 8
      src/CoreBundle/Security/Authorization/Voter/GroupVoter.php
  23. 2
      src/CoreBundle/Traits/CourseControllerTrait.php
  24. 3
      src/CourseBundle/Entity/CAnnouncement.php
  25. 3
      src/CourseBundle/Entity/CCalendarEvent.php
  26. 16
      src/CourseBundle/Entity/CGroup.php
  27. 8
      src/CourseBundle/Entity/CGroupRelTutor.php
  28. 8
      src/CourseBundle/Entity/CGroupRelUser.php
  29. 4
      src/CourseBundle/Repository/CChatConversationRepository.php
  30. 4
      src/CourseBundle/Repository/CCourseDescriptionRepository.php
  31. 4
      src/CourseBundle/Repository/CDocumentRepository.php
  32. 4
      src/CourseBundle/Repository/CForumAttachmentRepository.php
  33. 4
      src/CourseBundle/Repository/CForumCategoryRepository.php
  34. 4
      src/CourseBundle/Repository/CForumPostRepository.php
  35. 4
      src/CourseBundle/Repository/CGlossaryRepository.php
  36. 10
      src/CourseBundle/Repository/CGroupRepository.php
  37. 4
      src/CourseBundle/Repository/CLinkCategoryRepository.php
  38. 4
      src/CourseBundle/Repository/CLinkRepository.php
  39. 4
      src/CourseBundle/Repository/CShortcutRepository.php
  40. 4
      src/CourseBundle/Repository/CThematicAdvanceRepository.php
  41. 4
      src/CourseBundle/Repository/CThematicPlanRepository.php
  42. 4
      src/CourseBundle/Repository/CThematicRepository.php
  43. 4
      src/CourseBundle/Repository/CToolRepository.php
  44. 4
      src/CourseBundle/Resources/config/services.yml

@ -592,6 +592,14 @@ abstract class Question
->setFeedback($this->feedback)
;
$exerciseEntity = $exerciseRepo->find($exerciseId);
$question->addParent($exerciseEntity);
$question->addCourseLink(
api_get_course_entity(),
api_get_session_entity(),
api_get_group_entity()
);
$em->persist($question);
$em->flush();
@ -606,20 +614,6 @@ abstract class Question
LOG_QUESTION_ID,
$this->id
);
$exerciseEntity = $exerciseRepo->find($exerciseId);
$node = $questionRepo->addResourceNode(
$question,
api_get_user_entity(api_get_user_id()),
$exerciseEntity
);
$questionRepo->addResourceNodeToCourse(
$node,
ResourceLink::VISIBILITY_PUBLISHED,
$courseEntity,
api_get_session_entity(),
api_get_group_entity()
);
$request = Container::getRequest();
if ($request->files->has('imageUpload')) {
$file = $request->files->get('imageUpload');

@ -269,8 +269,10 @@ class AnnouncementManager
'id' => $id,
];
$announcement = $repo->findOneBy($criteria);
$repo->getEntityManager()->remove($announcement);
$repo->getEntityManager()->flush();
if ($announcement) {
$repo->getEntityManager()->remove($announcement);
$repo->getEntityManager()->flush();
}
/*
api_item_property_update(
@ -647,6 +649,10 @@ class AnnouncementManager
$order = self::getLastAnnouncementOrder($courseInfo);
$course = api_get_course_entity($courseId);
$session = api_get_session_entity($sessionId);
$group = api_get_group_entity();
$announcement = new CAnnouncement();
$announcement
->setCId($courseId)
@ -657,16 +663,20 @@ class AnnouncementManager
->setSessionId($sessionId)
;
$announcement
->addCourseLink(
$course,
$session,
$group
)
->addParent($course)
;
$repo = Container::getAnnouncementRepository();
$repo->addResourceToCourse(
$announcement,
ResourceLink::VISIBILITY_PUBLISHED,
api_get_user_entity($authorId),
api_get_course_entity($courseId),
api_get_session_entity($sessionId),
api_get_group_entity()
);
$repo->getEntityManager()->flush();
$em = Database::getManager();
$em->persist($announcement);
$em->flush();
$last_id = $announcement->getIid();
if (empty($last_id)) {
@ -688,7 +698,7 @@ class AnnouncementManager
// store in item_property (first the groups, then the users
if (empty($sentTo) ||
(!empty($sentTo) && isset($sentTo[0]) && 'everyone' == $sentTo[0])
(!empty($sentTo) && isset($sentTo[0]) && 'everyone' === $sentTo[0])
) {
// The message is sent to EVERYONE, so we set the group to 0
/*api_item_property_update(
@ -711,7 +721,9 @@ class AnnouncementManager
) {
foreach ($send_to['groups'] as $group) {
$group = api_get_group_entity($group);
$repo->addResourceToCourseGroup($resourceNode, $group);
if ($group) {
$announcement->addGroupLink($course, $session, $group);
}
/*api_item_property_update(
$courseInfo,
@ -728,7 +740,7 @@ class AnnouncementManager
if (is_array($send_to['users'])) {
foreach ($send_to['users'] as $user) {
$user = api_get_user_entity($user);
$repo->addResourceToUser($resourceNode, $user);
$announcement->addUserLink($user, $course, $session, $group);
/*api_item_property_update(
$courseInfo,
TOOL_ANNOUNCEMENT,
@ -746,6 +758,7 @@ class AnnouncementManager
self::addAnnouncementToAllUsersInSessions($announcement);
}
$repo->getEntityManager()->persist($announcement);
$repo->getEntityManager()->persist($resourceNode);
$repo->getEntityManager()->flush();
@ -896,12 +909,14 @@ class AnnouncementManager
$file_comment = '',
$sendToUsersInSession = false
) {
$courseInfo = api_get_course_info();
$id = (int) $id;
$repo = Container::getAnnouncementRepository();
/** @var CAnnouncement $announcement */
$announcement = $repo->find($id);
$course = api_get_course_entity();
$group = api_get_group_entity();
$session = api_get_session_entity();
$announcement
->setTitle($title)
@ -953,7 +968,7 @@ class AnnouncementManager
if (is_array($send_to['groups'])) {
foreach ($send_to['groups'] as $group) {
$groupInfo = api_get_group_entity($group);
$repo->addResourceToCourseGroup($resourceNode, $groupInfo);
$announcement->addGroupLink( $course, $session, $groupInfo);
/*
if ($groupInfo) {
api_item_property_update(
@ -972,7 +987,7 @@ class AnnouncementManager
if (is_array($send_to['users'])) {
foreach ($send_to['users'] as $user) {
$user = api_get_user_entity($user);
$repo->addResourceToUser($resourceNode, $user);
$announcement->addUserLink( $user, $course, $session, $group);
/*api_item_property_update(
$courseInfo,
TOOL_ANNOUNCEMENT,
@ -1008,6 +1023,7 @@ class AnnouncementManager
);*/
}
$repo->getEntityManager()->persist($announcement);
$repo->getEntityManager()->flush();
return $announcement;
@ -1021,8 +1037,11 @@ class AnnouncementManager
$courseCode = api_get_course_id();
$sessionList = SessionManager::get_session_by_course(api_get_course_int_id());
$courseEntity = api_get_course_entity();
$sessionEntity = api_get_session_entity();
$groupEntity = api_get_group_entity();
$repo = Container::getAnnouncementRepository();
$resourceNode = $announcement->getResourceNode();
if (!empty($sessionList)) {
foreach ($sessionList as $sessionInfo) {
@ -1035,7 +1054,7 @@ class AnnouncementManager
if (!empty($userList)) {
foreach ($userList as $user) {
$user = api_get_user_entity($user);
$repo->addResourceToUser($resourceNode, $user);
$announcement->addUserLink($user, $courseEntity, $sessionEntity, $groupEntity);
/*api_item_property_update(
$courseInfo,
TOOL_ANNOUNCEMENT,
@ -1053,7 +1072,7 @@ class AnnouncementManager
}
}
$repo->getEntityManager()->persist($resourceNode);
$repo->getEntityManager()->persist($announcement);
$repo->getEntityManager()->flush();
}

@ -300,26 +300,15 @@ class Agenda
$event->setParentEventId($parentEventId);
}
$repo = Container::getCalendarEventRepository();
// Node added.
$resourceNode = $repo->createNodeForResource(
$event,
$userEntity,
$courseEntity->getResourceNode()
);
$event
// ->addCourseLink($courseEntity, $groupEntity, $sessionEntity)
->addParent($courseEntity)
;
if (!empty($usersToSend)) {
$sendTo = $this->parseSendToArray($usersToSend);
if ($sendTo['everyone']) {
$repo->addResourceNodeToCourse(
$resourceNode,
ResourceLink::VISIBILITY_PUBLISHED,
$courseEntity,
$sessionEntity,
$groupEntity
);
$event->addCourseLink($courseEntity, $sessionEntity, $groupEntity);
/*api_item_property_update(
$this->course,
TOOL_CALENDAR_EVENT,
@ -351,16 +340,9 @@ class Agenda
$groupInfo = null;
if ($group) {
$groupInfo = api_get_group_entity($group);
$event->addCourseLink($courseEntity, $sessionEntity, $groupInfo);
}
$repo->addResourceNodeToCourse(
$resourceNode,
ResourceLink::VISIBILITY_PUBLISHED,
$courseEntity,
$sessionEntity,
$groupInfo
);
/*api_item_property_update(
$this->course,
TOOL_CALENDAR_EVENT,
@ -392,14 +374,22 @@ class Agenda
// storing the selected users
if (!empty($sendTo['users'])) {
foreach ($sendTo['users'] as $userId) {
$repo->addResourceNodeToCourse(
$event->addUserLink(
api_get_user_entity($userId),
$courseEntity,
$sessionEntity,
$groupEntity
);
/*$repo->addResourceNodeToCourse(
$resourceNode,
ResourceLink::VISIBILITY_PUBLISHED,
$courseEntity,
$sessionEntity,
$groupEntity,
api_get_user_entity($userId)
);
);*/
/*api_item_property_update(
$this->course,
TOOL_CALENDAR_EVENT,
@ -430,6 +420,7 @@ class Agenda
}
}
$em->persist($event);
$em->flush();
$id = $event->getIid();

@ -7,7 +7,7 @@ use Chamilo\CoreBundle\Entity\Session as SessionEntity;
use Chamilo\CoreBundle\Entity\SettingsCurrent;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use ChamiloSession as Session;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Finder\Finder;
@ -2291,7 +2291,7 @@ function api_get_session_entity($id = 0)
/**
* @param int $id
*
* @return CGroupInfo
* @return CGroup
*/
function api_get_group_entity($id = 0)
{
@ -2299,7 +2299,7 @@ function api_get_group_entity($id = 0)
$id = api_get_group_id();
}
return Database::getManager()->getRepository('ChamiloCourseBundle:CGroupInfo')->find($id);
return Database::getManager()->getRepository('ChamiloCourseBundle:CGroup')->find($id);
}
/**
@ -4278,7 +4278,7 @@ function api_item_property_update(
$objGroup = null;
if (!empty($to_group_id)) {
$objGroup = $em->find('ChamiloCourseBundle:CGroupInfo', $to_group_id);
$objGroup = $em->find('CGroup', $to_group_id);
}
$objToUser = api_get_user_entity($to_user_id);

@ -6,7 +6,7 @@ use Chamilo\CoreBundle\Entity\ResourceLink;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CDocument;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use ChamiloSession as Session;
use Symfony\Component\HttpFoundation\File\UploadedFile;
@ -6046,7 +6046,7 @@ This folder contains all sessions that have been opened in the chat. Although th
* @param string $realPath
* @param string|UploadedFile $content
* @param int $visibility
* @param CGroupInfo $group
* @param CGroup $group
*
* @return CDocument
*/

@ -3,7 +3,7 @@
use Chamilo\CoreBundle\Entity\ResourceLink;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Entity\CGroupRelUser;
/**
@ -231,7 +231,7 @@ class GroupManager
$course = api_get_course_entity($course_id);
$session = api_get_session_entity($session_id);
$group = new CGroupInfo();
$group = new CGroup();
$group
->setName($name)
->setCourse($course)
@ -250,7 +250,7 @@ class GroupManager
->setDocumentAccess($documentAccess)
;
$repo = Container::getGroupInfoRepository();
$repo = Container::getGroupRepository();
$repo->addResourceToCourse(
$group,
@ -493,7 +493,7 @@ class GroupManager
// delete the groups
$em
->createQuery(
'DELETE FROM ChamiloCourseBundle:CGroupInfo g WHERE g.course = :course AND g.iid = :id'
'DELETE FROM ChamiloCourseBundle:CGroup g WHERE g.course = :course AND g.iid = :id'
)
->execute(['course' => $course_id, 'id' => $groupIid]);
}
@ -1337,7 +1337,7 @@ class GroupManager
SELECT u.id FROM ChamiloCoreBundle:User u
INNER JOIN ChamiloCourseBundle:CGroupRelUser gu
WITH u.id = gu.userId
INNER JOIN ChamiloCourseBundle:CGroupInfo g
INNER JOIN ChamiloCourseBundle:CGroup g
WITH gu.groupId = g.id AND g.cId = gu.cId
WHERE gu.cId = :course AND g.id = :group
$activeCondition

@ -193,8 +193,10 @@ if ($formUsers->validate()) {
foreach ($groups as $groupId) {
$group = api_get_group_entity($groupId);
$repo->addResourceToCourseGroup($category->getResourceNode(), $group);
$category->addGroupLink($group);
}
$repo->getEntityManager()->persist($category);
$repo->getEntityManager()->flush();
Display::addFlash(Display::return_message(get_lang('Update successful')));

@ -8,7 +8,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\CourseRelUser;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\PluginBundle\Zoom\API\MeetingInfoGet;
use Chamilo\PluginBundle\Zoom\API\MeetingListItem;
use Chamilo\PluginBundle\Zoom\API\MeetingSettings;
@ -84,8 +84,8 @@ class Meeting
protected $course;
/**
* @var CGroupInfo
* @ORM\ManyToOne(targetEntity="Chamilo\CourseBundle\Entity\CGroupInfo")
* @var CGroup
* @ORM\ManyToOne(targetEntity="CGroup")
* @ORM\JoinColumn(name="group_id", referencedColumnName="iid", nullable=true)
*/
protected $group;
@ -337,7 +337,7 @@ class Meeting
}
/**
* @return CGroupInfo
* @return CGroup
*/
public function getGroup()
{
@ -345,7 +345,7 @@ class Meeting
}
/**
* @param CGroupInfo $group
* @param CGroup $group
*
* @return Meeting
*/

@ -5,7 +5,7 @@ namespace Chamilo\PluginBundle\Zoom;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\PageBundle\Entity\User;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
@ -189,7 +189,7 @@ class MeetingRepository extends EntityRepository
*
* @return ArrayCollection|Collection|Meeting[]
*/
public function courseMeetings(Course $course, CGroupInfo $group = null, Session $session = null)
public function courseMeetings(Course $course, CGroup $group = null, Session $session = null)
{
return $this->matching(
Criteria::create()->where(

@ -4,7 +4,7 @@
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\PluginBundle\Zoom\API\JWTClient;
use Chamilo\PluginBundle\Zoom\API\MeetingInfoGet;
use Chamilo\PluginBundle\Zoom\API\MeetingRegistrant;
@ -677,7 +677,7 @@ class ZoomPlugin extends Plugin
public function getCreateInstantMeetingForm(
User $user,
Course $course,
CGroupInfo $group = null,
CGroup $group = null,
Session $session = null
) {
$extraUrl = '';
@ -707,7 +707,7 @@ class ZoomPlugin extends Plugin
*
* @return FormValidator
*/
public function getScheduleMeetingForm(User $user, Course $course = null, CGroupInfo $group = null, Session $session = null)
public function getScheduleMeetingForm(User $user, Course $course = null, CGroup $group = null, Session $session = null)
{
$extraUrl = '';
if (!empty($course)) {
@ -1263,11 +1263,11 @@ class ZoomPlugin extends Plugin
/**
* Starts a new instant meeting and redirects to its start url.
*
* @param string $topic
* @param User|null $user
* @param Course|null $course
* @param CGroupInfo|null $group
* @param Session|null $session
* @param string $topic
* @param User|null $user
* @param Course|null $course
* @param CGroup|null $group
* @param Session|null $session
*
* @throws Exception
*/
@ -1358,7 +1358,7 @@ class ZoomPlugin extends Plugin
private function createScheduleMeeting(
User $user = null,
Course $course = null,
CGroupInfo $group = null,
CGroup $group = null,
Session $session = null,
$startTime,
$duration,

@ -10,6 +10,7 @@ use Chamilo\CoreBundle\Tool\AbstractTool;
use Chamilo\CoreBundle\ToolChain;
use Chamilo\CourseBundle\Controller\ToolBaseController;
use Chamilo\CourseBundle\Entity\CTool;
use Chamilo\CourseBundle\Manager\SettingsFormFactory;
use Chamilo\CourseBundle\Manager\SettingsManager;
use Chamilo\CourseBundle\Repository\CShortcutRepository;
use Chamilo\CourseBundle\Repository\CToolRepository;
@ -21,7 +22,6 @@ use ExtraFieldValue;
use Fhaculty\Graph\Graph;
use Security;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
use Chamilo\CourseBundle\Manager\SettingsFormFactory;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

@ -6,6 +6,7 @@ namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Annotation\ApiProperty;
use ApiPlatform\Core\Annotation\ApiSubresource;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
@ -61,8 +62,119 @@ abstract class AbstractResource
*/
public $resourceLinkList;
/** @var ResourceLink[] */
public $linkEntityList;
/** @var AbstractResource */
public $parentResource;
abstract public function getResourceName(): string;
public function addLink(ResourceLink $link)
{
$this->linkEntityList[] = $link;
return $this;
}
public function addCourseLink(Course $course, Session $session = null, CGroup $group = null)
{
$resourceLink = new ResourceLink();
$resourceLink
->setVisibility(ResourceLink::VISIBILITY_PUBLISHED)
->setCourse($course)
->setSession($session)
->setGroup($group)
;
$this->addLink($resourceLink);
return $this;
}
public function addGroupLink(Course $course, Session $session = null, CGroup $group = null)
{
$resourceNode = $this->getResourceNode();
$exists = $resourceNode->getResourceLinks()->exists(
function ($key, $element) use ($group) {
if ($element->getGroup()) {
return $group->getIid() == $element->getGroup()->getIid();
}
}
);
if (false === $exists) {
$resourceLink = new ResourceLink();
$resourceLink
->setResourceNode($resourceNode)
->setCourse($course)
->setSession($session)
->setGroup($group)
->setVisibility(ResourceLink::VISIBILITY_PUBLISHED)
;
$this->addLink($resourceLink);
}
return $this;
}
public function addUserLink(User $user, Course $course = null, Session $session = null, CGroup $group = null)
{
$resourceLink = new ResourceLink();
$resourceLink
->setVisibility(ResourceLink::VISIBILITY_PUBLISHED)
->setUser($user)
->setCourse($course)
->setSession($session)
->setGroup($group)
;
$this->addLink($resourceLink);
return $this;
}
public function addParent(AbstractResource $parent)
{
$this->parentResource = $parent;
return $this;
}
public function getParent()
{
return $this->parentResource;
}
/**
* @param array $userList User id list
*/
public function addResourceToUserList(
array $userList,
Course $course = null,
Session $session = null,
CGroup $group = null
) {
if (!empty($userList)) {
foreach ($userList as $user) {
$this->addUserLink($user, $course, $session, $group);
}
}
return $this;
}
public function getLinks()
{
return $this->linkEntityList;
}
public function addResourceLink($link)
{
$this->resourceLinkList[] = $link;
return $this;
}
public function setResourceLinkList($links)
{
$this->resourceLinkList = $links;
@ -75,7 +187,7 @@ abstract class AbstractResource
return $this->resourceLinkList;
}
public function getResourceLinkList(): array
/*public function getResourceLinkList(): array
{
$resourceNode = $this->getResourceNode();
$links = $resourceNode->getResourceLinks();
@ -94,7 +206,7 @@ abstract class AbstractResource
}
return $resourceLinkList;
}
}*/
public function hasParentResourceNode(): bool
{

@ -11,7 +11,7 @@ use ApiPlatform\Core\Annotation\ApiSubresource;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Entity\CTool;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Criteria;
@ -108,11 +108,11 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
/**
* @var ArrayCollection|ResourceLink[]
*
* @ApiSubresource()
* @Groups({"course:read"})
* @ORM\OneToMany(targetEntity="ResourceLink", mappedBy="course", cascade={"persist"}, orphanRemoval=true)
* ApiSubresource()
* Groups({"course:read"})
* ORM\OneToMany(targetEntity="ResourceLink", mappedBy="course", cascade={"persist"}, orphanRemoval=true)
*/
protected $resourceLinks;
//protected $resourceLinks;
/**
* @ORM\OneToMany(targetEntity="AccessUrlRelCourse", mappedBy="course", cascade={"persist", "remove"}, orphanRemoval=true)
@ -132,7 +132,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
protected $sessionUserSubscriptions;
/**
* @ORM\OneToMany(targetEntity="Chamilo\CourseBundle\Entity\CGroupInfo", mappedBy="course", cascade={"persist", "remove"})
* @ORM\OneToMany(targetEntity="Chamilo\CourseBundle\Entity\CGroup", mappedBy="course", cascade={"persist", "remove"})
*/
protected $groups;
@ -481,7 +481,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
}
/**
* @return CGroupInfo[]|ArrayCollection
* @return CGroup[]|ArrayCollection
*/
public function getGroups()
{
@ -570,7 +570,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
/**
* @return bool
*/
public function hasGroup(CGroupInfo $group)
public function hasGroup(CGroup $group)
{
/*$criteria = Criteria::create()->where(
Criteria::expr()->eq('groups', $group)

@ -8,9 +8,11 @@ use Chamilo\CoreBundle\Entity\AbstractResource;
use Chamilo\CoreBundle\Entity\ResourceFile;
use Chamilo\CoreBundle\Entity\ResourceLink;
use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\ResourceRight;
use Chamilo\CoreBundle\Entity\ResourceToCourseInterface;
use Chamilo\CoreBundle\Entity\ResourceToRootInterface;
use Chamilo\CoreBundle\Entity\ResourceWithUrlInterface;
use Chamilo\CoreBundle\Security\Authorization\Voter\ResourceNodeVoter;
use Chamilo\CoreBundle\ToolChain;
use Cocur\Slugify\SlugifyInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
@ -77,7 +79,7 @@ class ResourceListener
public function prePersist(AbstractResource $resource, LifecycleEventArgs $event)
{
error_log('resource listener prePersist');
error_log('resource listener prePersist');
$em = $event->getEntityManager();
$request = $this->request;
@ -88,7 +90,7 @@ class ResourceListener
}
if ($resource->hasResourceNode()) {
// This will attach the resource to the main resource node root (Example a course).
// This will attach the resource to the main resource node root (For example a Course).
if ($resource instanceof ResourceToRootInterface) {
$url = $this->getAccessUrl($em);
$resource->getResourceNode()->setParent($url->getResourceNode());
@ -176,6 +178,7 @@ class ResourceListener
}
}
// Use by api platform
$links = $resource->getResourceLinkListFromEntity();
if ($links) {
$courseRepo = $em->getRepository('ChamiloCoreBundle:Course');
@ -212,9 +215,40 @@ class ResourceListener
}
}
// Use by Chamilo.
$links = $resource->getLinks();
if ($links) {
foreach ($links as $link) {
$link->setResourceNode($resourceNode);
$rights = [];
switch ($link->getVisibility()) {
case ResourceLink::VISIBILITY_PENDING:
case ResourceLink::VISIBILITY_DRAFT:
$editorMask = ResourceNodeVoter::getEditorMask();
$resourceRight = new ResourceRight();
$resourceRight
->setMask($editorMask)
->setRole(ResourceNodeVoter::ROLE_CURRENT_COURSE_TEACHER)
;
$rights[] = $resourceRight;
break;
}
if (!empty($rights)) {
foreach ($rights as $right) {
$link->addResourceRight($right);
}
}
$em->persist($link);
}
}
if ($resource instanceof ResourceToCourseInterface) {
//$this->request->getCurrentRequest()->getSession()->get('access_url_id');
//$resourceNode->setParent($url->getResourceNode());
if (null !== $resource->getParent()) {
$resourceNode->setParent($resource->getParent()->getResourceNode());
}
}
$resource->setResourceNode($resourceNode);

@ -5,7 +5,7 @@
namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
@ -54,7 +54,7 @@ class ResourceLink
protected $user;
/**
* @ORM\ManyToOne(targetEntity="Chamilo\CourseBundle\Entity\CGroupInfo")
* @ORM\ManyToOne(targetEntity="Chamilo\CourseBundle\Entity\CGroup")
* @ORM\JoinColumn(name="group_id", referencedColumnName="iid", nullable=true, onDelete="CASCADE")
*/
protected $group;
@ -210,14 +210,14 @@ class ResourceLink
}
/**
* @return CGroupInfo
* @return CGroup
*/
public function getGroup()
{
return $this->group;
}
public function setGroup(CGroupInfo $group = null): self
public function setGroup(CGroup $group = null): self
{
$this->group = $group;

@ -155,7 +155,7 @@ class CourseListener
$sessionHandler->remove('gid');
} else {
//dump('Load chamilo group from DB');
$group = $em->getRepository('ChamiloCourseBundle:CGroupInfo')->find($groupId);
$group = $em->getRepository('CGroup')->find($groupId);
if (!$group) {
throw new NotFoundHttpException($translator->trans('Group not found'));

@ -25,7 +25,7 @@ use Chamilo\CourseBundle\Repository\CForumCategoryRepository;
use Chamilo\CourseBundle\Repository\CForumForumRepository;
use Chamilo\CourseBundle\Repository\CForumPostRepository;
use Chamilo\CourseBundle\Repository\CForumThreadRepository;
use Chamilo\CourseBundle\Repository\CGroupInfoRepository;
use Chamilo\CourseBundle\Repository\CGroupRepository;
use Chamilo\CourseBundle\Repository\CLinkCategoryRepository;
use Chamilo\CourseBundle\Repository\CLinkRepository;
use Chamilo\CourseBundle\Repository\CLpCategoryRepository;
@ -414,11 +414,11 @@ class Container
}
/**
* @return CGroupInfoRepository
* @return CGroupRepository
*/
public static function getGroupInfoRepository()
public static function getGroupRepository()
{
return self::$container->get('Chamilo\CourseBundle\Repository\CGroupInfoRepository');
return self::$container->get('CGroupRepository');
}
/**

@ -11,12 +11,12 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Symfony\Component\Form\FormInterface;
interface GridInterface
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null);
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null);
public function setResourceProperties(FormInterface $form, Course $course, Session $session, $fileType);

@ -12,13 +12,13 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Form\Resource\PersonalFileType;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
final class PersonalFileRepository extends ResourceRepository implements GridInterface
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCreator($user, $parentNode);
}

@ -18,10 +18,9 @@ use Chamilo\CoreBundle\Entity\ResourceRight;
use Chamilo\CoreBundle\Entity\ResourceType;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Entity\Usergroup;
use Chamilo\CoreBundle\Security\Authorization\Voter\ResourceNodeVoter;
use Chamilo\CoreBundle\ToolChain;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Cocur\Slugify\SlugifyInterface;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
@ -250,21 +249,21 @@ class ResourceRepository extends EntityRepository
return $this->createNodeForResource($resource, $creator, $parent);
}
public function addResourceToCourse(AbstractResource $resource, int $visibility, User $creator, Course $course, Session $session = null, CGroupInfo $group = null, UploadedFile $file = null)
public function addResourceToCourse(AbstractResource $resource, int $visibility, User $creator, Course $course, Session $session = null, CGroup $group = null, UploadedFile $file = null)
{
$resourceNode = $this->createNodeForResource($resource, $creator, $course->getResourceNode(), $file);
$this->addResourceNodeToCourse($resourceNode, $visibility, $course, $session, $group);
}
public function addResourceToCourseWithParent(AbstractResource $resource, ResourceNode $parentNode, int $visibility, User $creator, Course $course, Session $session = null, CGroupInfo $group = null, UploadedFile $file = null)
public function addResourceToCourseWithParent(AbstractResource $resource, ResourceNode $parentNode, int $visibility, User $creator, Course $course, Session $session = null, CGroup $group = null, UploadedFile $file = null)
{
$resourceNode = $this->createNodeForResource($resource, $creator, $parentNode, $file);
$this->addResourceNodeToCourse($resourceNode, $visibility, $course, $session, $group);
}
public function addResourceNodeToCourse(ResourceNode $resourceNode, int $visibility, Course $course, Session $session = null, CGroupInfo $group = null, User $toUser = null): void
public function addResourceNodeToCourse(ResourceNode $resourceNode, int $visibility, Course $course, Session $session = null, CGroup $group = null, User $toUser = null): void
{
if (0 === $visibility) {
$visibility = ResourceLink::VISIBILITY_PUBLISHED;
@ -306,124 +305,6 @@ class ResourceRepository extends EntityRepository
$em->persist($link);
}
public function addResourceToMe(ResourceNode $resourceNode): ResourceLink
{
$resourceLink = new ResourceLink();
$resourceLink->setResourceNode($resourceNode);
$this->getEntityManager()->persist($resourceLink);
$this->getEntityManager()->flush();
return $resourceLink;
}
public function addResourceToEveryone(ResourceNode $resourceNode, ResourceRight $right): ResourceLink
{
$resourceLink = new ResourceLink();
$resourceLink
->setResourceNode($resourceNode)
->addResourceRight($right)
;
$this->getEntityManager()->persist($resourceLink);
$this->getEntityManager()->flush();
return $resourceLink;
}
public function addResourceToUser(ResourceNode $resourceNode, User $toUser): ResourceLink
{
$resourceLink = $this->addResourceNodeToUser($resourceNode, $toUser);
$this->getEntityManager()->persist($resourceLink);
return $resourceLink;
}
public function addResourceNodeToUser(ResourceNode $resourceNode, User $toUser): ResourceLink
{
$resourceLink = new ResourceLink();
$resourceLink
->setResourceNode($resourceNode)
->setVisibility(ResourceLink::VISIBILITY_PUBLISHED)
->setUser($toUser);
return $resourceLink;
}
public function addResourceToCourseGroup(ResourceNode $resourceNode, CGroupInfo $group)
{
$exists = $resourceNode->getResourceLinks()->exists(
function ($key, $element) use ($group) {
if ($element->getGroup()) {
return $group->getIid() == $element->getGroup()->getIid();
}
}
);
if (false === $exists) {
$resourceLink = new ResourceLink();
$resourceLink
->setResourceNode($resourceNode)
->setGroup($group)
->setVisibility(ResourceLink::VISIBILITY_PUBLISHED)
;
$this->getEntityManager()->persist($resourceLink);
return $resourceLink;
}
}
/*public function addResourceToSession(
ResourceNode $resourceNode,
Course $course,
Session $session,
ResourceRight $right
) {
$resourceLink = $this->addResourceToCourse(
$resourceNode,
$course,
$right
);
$resourceLink->setSession($session);
$this->getEntityManager()->persist($resourceLink);
return $resourceLink;
}*/
/**
* @return ResourceLink
*/
public function addResourceToGroup(
ResourceNode $resourceNode,
Usergroup $group,
ResourceRight $right
) {
$resourceLink = new ResourceLink();
$resourceLink
->setResourceNode($resourceNode)
->setUserGroup($group)
->addResourceRight($right);
return $resourceLink;
}
/**
* @param array $userList User id list
*/
public function addResourceToUserList(ResourceNode $resourceNode, array $userList)
{
$em = $this->getEntityManager();
if (!empty($userList)) {
$userRepo = $em->getRepository('ChamiloCoreBundle:User');
foreach ($userList as $userId) {
$toUser = $userRepo->find($userId);
$resourceLink = $this->addResourceNodeToUser($resourceNode, $toUser);
$em->persist($resourceLink);
}
}
}
/**
* @return ResourceType
*/
@ -441,7 +322,7 @@ class ResourceRepository extends EntityRepository
return $this->toolChain->getResourceTypeNameFromRepository(get_class($this));
}
public function getResourcesByCourse(Course $course, Session $session = null, CGroupInfo $group = null, ResourceNode $parentNode = null): QueryBuilder
public function getResourcesByCourse(Course $course, Session $session = null, CGroup $group = null, ResourceNode $parentNode = null): QueryBuilder
{
$repo = $this->getRepository();
$className = $repo->getClassName();
@ -614,7 +495,7 @@ class ResourceRepository extends EntityRepository
User $user,
Course $course,
Session $session = null,
CGroupInfo $group = null,
CGroup $group = null,
ResourceNode $parentNode = null
): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session, $group, $parentNode);

@ -275,7 +275,7 @@ services:
- '@chamilo_course.settings.group'
-
groups:
repository: Chamilo\CourseBundle\Repository\CGroupInfoRepository
repository: Chamilo\CourseBundle\Repository\CGroupRepository
group_categories:
repository: Chamilo\CourseBundle\Repository\CGroupCategoryRepository
gradebook_evaluations:

@ -5,8 +5,8 @@
namespace Chamilo\CoreBundle\Security\Authorization\Voter;
use Chamilo\CoreBundle\Repository\CourseRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Repository\CGroupInfoRepository;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Repository\CGroupRepository;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
@ -30,7 +30,7 @@ class GroupVoter extends Voter
public function __construct(
EntityManager $entityManager,
CourseRepository $courseManager,
CGroupInfoRepository $groupManager,
CGroupRepository $groupManager,
Security $security
) {
$this->entityManager = $entityManager;
@ -53,7 +53,7 @@ class GroupVoter extends Voter
}
// only vote on Post objects inside this voter
if (!$subject instanceof CGroupInfo) {
if (!$subject instanceof CGroup) {
return false;
}

@ -81,7 +81,7 @@ trait CourseControllerTrait
return null;
}
return $this->getDoctrine()->getManager()->find('ChamiloCourseBundle:CGroupInfo', $groupId);
return $this->getDoctrine()->getManager()->find('ChamiloCourseBundle:CGroup', $groupId);
}
public function getCourseUrlQuery(): string

@ -6,6 +6,7 @@ namespace Chamilo\CourseBundle\Entity;
use Chamilo\CoreBundle\Entity\AbstractResource;
use Chamilo\CoreBundle\Entity\ResourceInterface;
use Chamilo\CoreBundle\Entity\ResourceToCourseInterface;
use Doctrine\ORM\Mapping as ORM;
/**
@ -20,7 +21,7 @@ use Doctrine\ORM\Mapping as ORM;
* )
* @ORM\Entity
*/
class CAnnouncement extends AbstractResource implements ResourceInterface
class CAnnouncement extends AbstractResource implements ResourceInterface, ResourceToCourseInterface
{
/**
* @var int

@ -6,6 +6,7 @@ namespace Chamilo\CourseBundle\Entity;
use Chamilo\CoreBundle\Entity\AbstractResource;
use Chamilo\CoreBundle\Entity\ResourceInterface;
use Chamilo\CoreBundle\Entity\ResourceToCourseInterface;
use Chamilo\CoreBundle\Entity\Room;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
@ -22,7 +23,7 @@ use Doctrine\ORM\Mapping as ORM;
* )
* @ORM\Entity
*/
class CCalendarEvent extends AbstractResource implements ResourceInterface
class CCalendarEvent extends AbstractResource implements ResourceInterface, ResourceToCourseInterface
{
/**
* @var int

@ -27,7 +27,7 @@ use Symfony\Component\Validator\Constraints as Assert;
* @ApiResource()
* @ORM\Entity
*/
class CGroupInfo extends AbstractResource implements ResourceInterface
class CGroup extends AbstractResource implements ResourceInterface
{
use CourseTrait;
@ -213,7 +213,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param string $name
*
* @return CGroupInfo
* @return CGroup
*/
public function setName($name)
{
@ -237,7 +237,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param bool $status
*
* @return CGroupInfo
* @return CGroup
*/
public function setStatus($status)
{
@ -261,7 +261,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param int $categoryId
*
* @return CGroupInfo
* @return CGroup
*/
public function setCategoryId($categoryId)
{
@ -429,7 +429,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param bool $wikiState
*
* @return CGroupInfo
* @return CGroup
*/
public function setWikiState($wikiState)
{
@ -453,7 +453,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param bool $chatState
*
* @return CGroupInfo
* @return CGroup
*/
public function setChatState($chatState)
{
@ -477,7 +477,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param string $secretDirectory
*
* @return CGroupInfo
* @return CGroup
*/
public function setSecretDirectory($secretDirectory)
{
@ -562,7 +562,7 @@ class CGroupInfo extends AbstractResource implements ResourceInterface
*
* @param int $id
*
* @return CGroupInfo
* @return CGroup
*/
public function setId($id)
{

@ -52,9 +52,9 @@ class CGroupRelTutor
protected $user;
/**
* @var CGroupInfo
* @var CGroup
*
* @ORM\ManyToOne(targetEntity="Chamilo\CourseBundle\Entity\CGroupInfo", inversedBy="tutors")
* @ORM\ManyToOne(targetEntity="CGroup", inversedBy="tutors")
* @ORM\JoinColumn(name="group_id", referencedColumnName="iid", nullable=false)
*/
protected $group;
@ -86,7 +86,7 @@ class CGroupRelTutor
*
* @return CGroupRelTutor
*/
public function setGroup(CGroupInfo $group)
public function setGroup(CGroup $group)
{
$this->group = $group;
@ -96,7 +96,7 @@ class CGroupRelTutor
/**
* Get group.
*
* @return CGroupInfo
* @return CGroup
*/
public function getGroup()
{

@ -52,9 +52,9 @@ class CGroupRelUser
protected $user;
/**
* @var CGroupInfo
* @var CGroup
*
* @ORM\ManyToOne(targetEntity="Chamilo\CourseBundle\Entity\CGroupInfo", inversedBy="members")
* @ORM\ManyToOne(targetEntity="CGroup", inversedBy="members")
* @ORM\JoinColumn(name="group_id", referencedColumnName="iid", nullable=false)
*/
protected $group;
@ -102,7 +102,7 @@ class CGroupRelUser
*
* @return CGroupRelUser
*/
public function setGroup(CGroupInfo $group)
public function setGroup(CGroup $group)
{
$this->group = $group;
@ -112,7 +112,7 @@ class CGroupRelUser
/**
* Get group.
*
* @return CGroupInfo
* @return CGroup
*/
public function getGroup()
{

@ -9,12 +9,12 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
final class CChatConversationRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -16,7 +16,7 @@ use Chamilo\CoreBundle\Form\Resource\CCourseDescriptionType;
use Chamilo\CoreBundle\Repository\GridInterface;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CCourseDescription;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
@ -42,7 +42,7 @@ final class CCourseDescriptionRepository extends ResourceRepository implements G
return $templates;
}
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -17,7 +17,7 @@ use Chamilo\CoreBundle\Repository\GridInterface;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CoreBundle\Repository\UploadInterface;
use Chamilo\CourseBundle\Entity\CDocument;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\File\UploadedFile;
@ -27,7 +27,7 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
*/
final class CDocumentRepository extends ResourceRepository implements GridInterface, UploadInterface
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -9,7 +9,7 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
/**
@ -17,7 +17,7 @@ use Doctrine\ORM\QueryBuilder;
*/
class CForumAttachmentRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -9,12 +9,12 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
class CForumCategoryRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CForumPost;
use Chamilo\CourseBundle\Entity\CForumThread;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
/**
* Class CForumPostRepository.
@ -28,7 +28,7 @@ class CForumPostRepository extends ResourceRepository
CForumThread $thread,
Course $course,
User $currentUser = null,
CGroupInfo $group = null,
CGroup $group = null,
$orderDirection = 'ASC'
): array {
$conditionVisibility = $onlyVisibles ? 'p.visible = 1' : 'p.visible != 2';

@ -16,7 +16,7 @@ use Chamilo\CoreBundle\Form\Resource\CGlossaryType;
use Chamilo\CoreBundle\Repository\GridInterface;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGlossary;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
@ -42,7 +42,7 @@ final class CGlossaryRepository extends ResourceRepository implements GridInterf
return $templates;
}
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -5,17 +5,17 @@
namespace Chamilo\CourseBundle\Repository;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
/**
* Class CGroupInfoRepository.
* Class CGroupRepository.
*/
final class CGroupInfoRepository extends ResourceRepository
final class CGroupRepository extends ResourceRepository
{
/**
* @param string $code
*/
public function findOneByCode($code): ?CGroupInfo
public function findOneByCode($code): ?CGroup
{
return $this->getRepository()->findOneByCode($code);
}
@ -23,7 +23,7 @@ final class CGroupInfoRepository extends ResourceRepository
/**
* @param string $name
*/
public function findOneByTitle($name): ?CGroupInfo
public function findOneByTitle($name): ?CGroup
{
return $this->getRepository()->findOneByTitle($name);
}

@ -14,7 +14,7 @@ use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Form\Resource\CLinkType;
use Chamilo\CoreBundle\Repository\GridInterface;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Entity\CLink;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
@ -24,7 +24,7 @@ use Symfony\Component\Form\FormInterface;
*/
final class CLinkCategoryRepository extends ResourceRepository implements GridInterface
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -13,7 +13,7 @@ use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Form\Resource\CLinkType;
use Chamilo\CoreBundle\Repository\GridInterface;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Entity\CLink;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
@ -23,7 +23,7 @@ use Symfony\Component\Form\FormInterface;
*/
final class CLinkRepository extends ResourceRepository implements GridInterface
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Chamilo\CourseBundle\Entity\CShortcut;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
@ -28,7 +28,7 @@ final class CShortcutRepository extends ResourceRepository
return $repo->findOneBy($criteria);
}
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
$repo = $this->getRepository();
$className = $repo->getClassName();

@ -9,12 +9,12 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
final class CThematicAdvanceRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -9,12 +9,12 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
final class CThematicPlanRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -9,12 +9,12 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
final class CThematicRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}

@ -10,12 +10,12 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\CourseBundle\Entity\CGroup;
use Doctrine\ORM\QueryBuilder;
final class CToolRepository extends ResourceRepository
{
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
{
$repo = $this->getRepository();
$className = $repo->getClassName();

@ -97,9 +97,9 @@ services:
arguments:
$className: 'Chamilo\CourseBundle\Entity\CGlossary'
Chamilo\CourseBundle\Repository\CGroupInfoRepository:
Chamilo\CourseBundle\Repository\CGroupRepository:
arguments:
$className: 'Chamilo\CourseBundle\Entity\CGroupInfo'
$className: 'Chamilo\CourseBundle\Entity\CGroup'
Chamilo\CourseBundle\Repository\CQuizRepository:
arguments:

Loading…
Cancel
Save