Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/src/CourseBundle/Repository/CCourseDescriptionRepositor...

76 lines
2.2 KiB

<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CourseBundle\Repository;
use APY\DataGridBundle\Grid\Column\Column;
use APY\DataGridBundle\Grid\Grid;
use Chamilo\CoreBundle\Component\Resource\Settings;
use Chamilo\CoreBundle\Component\Resource\Template;
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
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 Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormInterface;
final class CCourseDescriptionRepository extends ResourceRepository implements GridInterface
{
public function getResourceSettings(): Settings
{
$settings = parent::getResourceSettings();
$settings->setAllowResourceCreation(true);
return $settings;
}
public function getTemplates(): Template
{
$templates = parent::getTemplates();
$templates
->setViewResource('@ChamiloTheme/Resource/course_description/view_resource.html.twig')
->setIndex('@ChamiloTheme/Resource/course_description/index.html.twig');
return $templates;
}
public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
{
return $this->getResourcesByCourse($course, $session, $group, $parentNode);
}
public function getTitleColumn(Grid $grid): Column
{
return $grid->getColumn('title');
}
public function setResourceProperties(FormInterface $form, $course, $session, $fileType)
{
/** @var CCourseDescription $newResource */
$newResource = $form->getData();
$newResource
->setCId($course->getId())
;
if ($session) {
$newResource->setSessionId($session->getId());
}
return $newResource;
}
public function getResourceFormType(): string
{
return CCourseDescriptionType::class;
}
}