Completed
Pull Request — master (#124)
by Serhii
13:13
created

EmployeeAdmin::configureShowFields()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 7
nc 1
nop 1
dl 0
loc 10
rs 9.4285
c 0
b 0
f 0
ccs 0
cts 7
cp 0
crap 2
1
<?php
2
3
namespace AppBundle\Admin;
4
5
use Sonata\AdminBundle\Admin\Admin;
6
use Sonata\AdminBundle\Datagrid\ListMapper;
7
use Sonata\AdminBundle\Datagrid\DatagridMapper;
8
use Sonata\AdminBundle\Form\FormMapper;
9
use Sonata\AdminBundle\Show\ShowMapper;
10
use AppBundle\Entity\Employee;
11
12
class EmployeeAdmin extends Admin
13
{
14
    protected $baseRouteName = 'AppBundle\Entity\Employee';
15
    protected $baseRoutePattern = 'Employee';
16
    protected $datagridValues = [
17
        '_sort_order' => 'ASC',
18
        '_sort_by'    => 'name',
19
    ];
20
21
    /**
22
     * @param \Sonata\AdminBundle\Show\ShowMapper $showMapper
23
     *
24
     * @return void
25
     */
26
    protected function configureShowFields(ShowMapper $showMapper)
27
    {
28
        $showMapper
29
            ->add('firstName')
30
            ->add('lastName')
31
            ->add('dob', 'date')
32
            ->add('position')
33
            ->add('roles')
34
        ;
35
    }
36
37
    /**
38
     * @param \Sonata\AdminBundle\Form\FormMapper $formMapper
39
     *
40
     * @return void
41
     */
42
    protected function configureFormFields(FormMapper $formMapper)
43
    {
44
        $formMapper
45
            ->add('firstName')
46
            ->add('lastName')
47
            ->add('avatar', 'sonata_type_model_list', [
48
                'required' => false,
49
                'btn_list' => false,
50
            ], [
51
                'link_parameters' => [
52
                    'context'  => 'employee',
53
                    'provider' => 'sonata.media.provider.image',
54
                ],
55
            ])
56
            ->add(
57
                'dob',
58
                'sonata_type_datetime_picker',
59
                [
60
                    'dp_side_by_side'       => false,
61
                    'dp_use_current'        => false,
62
                    'dp_use_seconds'        => false,
63
                    'dp_use_minutes'        => false,
64
                    'format' => "dd/MM/yyyy",
65
                ]
66
            )
67
            ->add(
68
                'position',
69
                'choice',
70
                [
71
                    'label' => 'employee.position',
72
                    'choices' => Employee::getPositions(),
73
                    'translation_domain' => 'messages',
74
                ]
75
            )
76
            ->add(
77
                'biography',
78
                'textarea',
79
                [
80
                    'attr' => [
81
                        'class' => 'wysihtml5',
82
                        'style' => 'height:200px',
83
                    ],
84
                ]
85
            )
86
            ->add(
87
                'galleryHasMedia',
88
                'sonata_type_collection',
89
                [
90
                    'required' => false,
91
                    'label' => 'Gallery',
92
                ],
93
                [
94
                    'edit' => 'inline',
95
                    'inline' => 'table',
96
                    'sortable'  => 'position',
97
                    'targetEntity' => 'Application\Sonata\MediaBundle\Entity\GalleryHasMedia',
98
                    'admin_code' => 'sonata.media.admin.gallery_has_media',
99
                    'link_parameters' => [
100
                        'context'  => 'employee',
101
                        'provider' => 'sonata.media.provider.image',
102
                    ],
103
                ]
104
            )
105
        ;
106
    }
107
108
    /**
109
     * @param \Sonata\AdminBundle\Datagrid\ListMapper $listMapper
110
     *
111
     * @return void
112
     */
113
    protected function configureListFields(ListMapper $listMapper)
114
    {
115
        $listMapper
116
            ->add('avatar', 'string', ['template' => '::SonataAdmin/thumbnail.html.twig'])
117
            ->addIdentifier('firstName')
118
            ->add('lastName')
119
            ->add('dob', 'date')
120
            ->add(
121
                'position',
122
                'choice',
123
                [
124
                    'choices' => Employee::getPositions(),
125
                    'catalogue' => 'messages',
126
                ]
127
            )
128
            ->add('roles')
129
        ;
130
    }
131
132
    /**
133
     * @param \Sonata\AdminBundle\Datagrid\DatagridMapper $datagridMapper
134
     *
135
     * @return void
136
     */
137
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
138
    {
139
        $datagridMapper
140
            ->add('firstName')
141
            ->add('lastName')
142
            ->add('dob')
143
            ->add('roles')
144
        ;
145
    }
146
}
147