Completed
Push — master ( 67834e...72c918 )
by Julito
08:46 queued 11s
created

CGlossaryRepository::getTitleColumn()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
namespace Chamilo\CourseBundle\Repository;
6
7
use APY\DataGridBundle\Grid\Column\Column;
8
use APY\DataGridBundle\Grid\Grid;
9
use Chamilo\CoreBundle\Component\Resource\Settings;
10
use Chamilo\CoreBundle\Component\Resource\Template;
11
use Chamilo\CoreBundle\Entity\Course;
12
use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
13
use Chamilo\CoreBundle\Entity\Session;
14
use Chamilo\CoreBundle\Form\Resource\CGlossaryType;
15
use Chamilo\CoreBundle\Repository\GridInterface;
16
use Chamilo\CoreBundle\Repository\ResourceRepository;
17
use Chamilo\CourseBundle\Entity\CGlossary;
18
use Chamilo\CourseBundle\Entity\CGroupInfo;
19
use Chamilo\UserBundle\Entity\User;
20
use Doctrine\ORM\QueryBuilder;
21
use Symfony\Component\Form\FormInterface;
22
23
final class CGlossaryRepository extends ResourceRepository implements GridInterface
24
{
25
    public function getResourceSettings(): Settings
26
    {
27
        $settings = parent::getResourceSettings();
28
29
        $settings->setAllowResourceCreation(true);
30
31
        return $settings;
32
    }
33
34
    public function getTemplates(): Template
35
    {
36
        $templates = parent::getTemplates();
37
38
        $templates
39
            ->setViewResource('@ChamiloTheme/Resource/glossary/view_resource.html.twig')
40
        ;
41
42
        return $templates;
43
    }
44
45
    public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroupInfo $group = null): QueryBuilder
46
    {
47
        return $this->getResourcesByCourse($course, $session, $group, $parentNode);
0 ignored issues
show
Bug introduced by
It seems like $course can also be of type null; however, parameter $course of Chamilo\CoreBundle\Repos...:getResourcesByCourse() does only seem to accept Chamilo\CoreBundle\Entity\Course, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

47
        return $this->getResourcesByCourse(/** @scrutinizer ignore-type */ $course, $session, $group, $parentNode);
Loading history...
48
    }
49
50
    public function getTitleColumn(Grid $grid): Column
51
    {
52
        return $grid->getColumn('name');
53
    }
54
55
    public function setResourceProperties(FormInterface $form, $course, $session, $fileType)
56
    {
57
        /** @var CGlossary $newResource */
58
        $newResource = $form->getData();
59
60
        $newResource
61
            ->setCId($course->getId());
62
63
        if ($session) {
64
            $newResource->setSessionId($session->getId());
65
        }
66
67
        return $newResource;
68
    }
69
70
    public function getResourceFormType(): string
71
    {
72
        return CGlossaryType::class;
73
    }
74
}
75