Completed
Pull Request — master (#144)
by
unknown
14:23
created

UserAdmin::configureListFields()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 11
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 16
rs 9.4285
1
<?php
2
3
namespace AppBundle\Admin;
4
5
use AppBundle\Entity\User;
6
use Sonata\AdminBundle\Admin\Admin;
7
use Sonata\AdminBundle\Datagrid\ListMapper;
8
use Sonata\AdminBundle\Datagrid\DatagridMapper;
9
use Sonata\AdminBundle\Form\FormMapper;
10
use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery;
11
12
class UserAdmin extends Admin
13
{
14
    protected $baseRouteName = 'AppBundle\Entity\User';
15
    protected $baseRoutePattern = 'User';
16
    protected $datagridValues = [
17
        '_sort_order' => 'DESC',
18
        '_sort_by' => 'id',
19
    ];
20
21
    /**
22
     * @param \Sonata\AdminBundle\Form\FormMapper $formMapper
23
     */
24
    protected function configureFormFields(FormMapper $formMapper)
25
    {
26
        $formMapper
27
            ->with('User', ['class' => 'col-lg-12'])
28
            ->add('firstName')
29
            ->add('lastName')
30
             ->add('email')
31
32
            ->add('facebookId')
33
            ->add('apiKey', 'text', ['attr' => ['readonly' => true]])
34
            ->add('orders')
35
            ->end()
36
        ;
37
    }
38
39
    public function createQuery($context = 'list')
40
    {
41
        $em = $this->modelManager->getEntityManager('AppBundle:User');
42
        $queryBuilder = $em
43
            ->createQueryBuilder('u')
44
            ->select('u')
45
            ->from('AppBundle:User', 'u')
46
            ->where('u.email IS NOT NULL');
47
        $query = new ProxyQuery($queryBuilder);
48
49
        return $query;
50
    }
51
52
    /**
53
     * @param \Sonata\AdminBundle\Datagrid\ListMapper $listMapper
54
     */
55
    protected function configureListFields(ListMapper $listMapper)
56
    {
57
        $listMapper
58
            ->add('apiKey')
59
            ->add('email')
60
            ->add('firstName')
61
            ->add('lastName')
62
            ->add('orders')
63
            ->add('_action', 'actions', [
64
                'actions' => [
65
                    'edit' => [],
66
                    'delete' => [],
67
                ],
68
            ])
69
        ;
70
    }
71
72
    /**
73
     * @param \Sonata\AdminBundle\Datagrid\DatagridMapper $datagridMapper
74
     */
75
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
76
    {
77
        $datagridMapper
78
            ->add('email')
79
        ;
80
    }
81
82
    public function toString($object)
83
    {
84
        return $object instanceof User
85
            ? $object->getEmail()
86
            : 'User'; // shown in the breadcrumb on the create views
87
    }
88
}
89