Completed
Push — master ( 7daaad...a8dd9d )
by Julito
09:46
created

CGlossaryRepository::setResourceProperties()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
nc 2
nop 4
dl 0
loc 13
rs 10
c 0
b 0
f 0
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
namespace Chamilo\CourseBundle\Repository;
6
7
use Chamilo\CoreBundle\Component\Resource\Settings;
8
use Chamilo\CoreBundle\Component\Resource\Template;
9
use Chamilo\CoreBundle\Entity\Course;
10
use Chamilo\CoreBundle\Entity\ResourceNode;
11
use Chamilo\CoreBundle\Entity\Session;
12
use Chamilo\CoreBundle\Entity\User;
13
use Chamilo\CoreBundle\Form\Resource\CGlossaryType;
14
use Chamilo\CoreBundle\Repository\GridInterface;
15
use Chamilo\CoreBundle\Repository\ResourceRepository;
16
use Chamilo\CourseBundle\Entity\CGlossary;
17
use Chamilo\CourseBundle\Entity\CGroup;
18
use Doctrine\ORM\QueryBuilder;
19
use Symfony\Component\Form\FormInterface;
20
21
final class CGlossaryRepository extends ResourceRepository implements GridInterface
22
{
23
    public function getResourceSettings(): Settings
24
    {
25
        $settings = parent::getResourceSettings();
26
27
        $settings->setAllowResourceCreation(true);
28
29
        return $settings;
30
    }
31
32
    public function getTemplates(): Template
33
    {
34
        $templates = parent::getTemplates();
35
36
        $templates
37
            ->setViewResource('@ChamiloCore/Resource/glossary/view_resource.html.twig')
38
        ;
39
40
        return $templates;
41
    }
42
43
    public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
44
    {
45
        return $this->getResourcesByCourse($course, $session, $group, $parentNode);
46
    }
47
48
    public function setResourceProperties(FormInterface $form, $course, $session, $fileType)
49
    {
50
        /** @var CGlossary $newResource */
51
        $newResource = $form->getData();
52
53
        $newResource
54
            ->setCId($course->getId());
55
56
        if ($session) {
57
            $newResource->setSessionId($session->getId());
58
        }
59
60
        return $newResource;
61
    }
62
63
    public function getResourceFormType(): string
64
    {
65
        return CGlossaryType::class;
66
    }
67
}
68