Fix forum repositories

pull/4004/head
Angel Fernando Quiroz Campos 5 years ago
parent ac7b3d8b7c
commit be6a937c91
  1. 16
      src/CourseBundle/Repository/CForumCategoryRepository.php
  2. 3
      src/CourseBundle/Repository/CForumThreadRepository.php
  3. 2
      tests/CourseBundle/Repository/CForumCategoryRepositoryTest.php

@ -10,6 +10,7 @@ use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\ResourceInterface;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CForum;
use Chamilo\CourseBundle\Entity\CForumCategory;
use Doctrine\Persistence\ManagerRegistry;
@ -34,4 +35,19 @@ class CForumCategoryRepository extends ResourceRepository
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}*/
public function delete(ResourceInterface $resource): void
{
/** @var CForumCategory $resource */
$forums = $resource->getForums();
$repo = $this->getEntityManager()->getRepository(CForum::class);
if (!empty($forums)) {
foreach ($forums as $forum) {
/** @var CForum $forum */
$repo->delete($forum);
}
}
parent::delete($resource);
}
}

@ -9,7 +9,6 @@ namespace Chamilo\CourseBundle\Repository;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\ResourceInterface;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Chamilo\CourseBundle\Entity\CForumPost;
use Chamilo\CourseBundle\Entity\CForumThread;
@ -58,7 +57,7 @@ class CForumThreadRepository extends ResourceRepository
{
/** @var CForumThread $resource */
$posts = $resource->getPosts();
$repo = Container::getForumPostRepository();
$repo = $this->getEntityManager()->getRepository(CForumPost::class);
if (!empty($posts)) {
foreach ($posts as $post) {
/** @var CForumPost $post */

@ -58,6 +58,6 @@ class CForumCategoryRepositoryTest extends AbstractApiTest
$categoryRepo->delete($category);
$this->assertSame(0, $categoryRepo->count([]));
$this->assertSame(1, $forumRepo->count([]));
$this->assertSame(0, $forumRepo->count([]));
}
}

Loading…
Cancel
Save