<?php
namespace App\Admin;

use App\Entity\GradingGroup;
use App\Entity\Player;
use App\Entity\Student;
use App\Entity\User;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Form\Type\ModelType;
use Sonata\AdminBundle\Route\RouteCollection;
use Symfony\Component\Form\Extension\Core\Type\TextType;

final class ScoreAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper->add('player', ModelType::class, [
            'class' => Player::class,
            'property' => 'student.name',
        ]);
        $formMapper->add('judge', ModelType::class, [
            'class' => User::class,
            'property' => 'name',
        ]);
        $formMapper->add('score', TextType::class);
        $formMapper->add('scoreType','choice',array('choices' =>[
            'atletic'  => 'atletic',
            'technical'  => 'technical',
        ]));
        $formMapper->add('isRemoved', TextType::class);
    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper->add('player.ggroup');
        $datagridMapper->add('player.student');
        $datagridMapper->add('judge');
        $datagridMapper->add('scoreType');
        $datagridMapper->add('isRemoved');
    }

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper->addIdentifier('player.ggroup');
        $listMapper->addIdentifier('player');
        $listMapper->addIdentifier('judge');
        $listMapper->addIdentifier('score');
        $listMapper->addIdentifier('scoreType');
        $listMapper->addIdentifier('isRemoved');
        $listMapper->add('_action', null, [
            'actions' => [
                'delete' => [],
            ]
        ]);
    }

    protected function configureRoutes(RouteCollection $collection)
    {
//        $collection->clearExcept(array('list','delete'));
    }
}
