<?php
namespace App\Admin;

use App\Entity\GradingGroup;
use App\Entity\Kata;
use App\Entity\Student;
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 PlayerAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {

        $formMapper->with('Status');
            $formMapper->add('status','choice',array('choices' =>[
                'pending'  => 'pending',
                'playing'  => 'playing',
                'finished'  => 'finished',
                'completed'=> 'completed'
            ]));
        $formMapper->end();
        $formMapper->with('Grading Group', ['class' => 'col-md-4']);
            $formMapper->add('ggroup', ModelType::class, [
                'class' => GradingGroup::class,
                'property' => 'name',
            ]);
        $formMapper->end();
        $formMapper->with('Student', ['class' => 'col-md-4']);
            $formMapper->add('student', ModelType::class, [
                'class' => Student::class,
                'property' => 'name',
            ]);
        $formMapper->end();
        $formMapper->with('Kata', ['class' => 'col-md-4']);
            $formMapper->add('kata', ModelType::class, [
                'class' => Kata::class,
                'property' => 'name',
            ]);
        $formMapper->end();
    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper->add('ggroup');
        $datagridMapper->add('student');
        $datagridMapper->add('kata');
        $datagridMapper->add('status');
    }

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper->addIdentifier('ggroup');
        $listMapper->addIdentifier('student');
        $listMapper->addIdentifier('kata');
        $listMapper->addIdentifier('status');
        $listMapper->addIdentifier('totalTech');
        $listMapper->addIdentifier('rankValue');
        $listMapper->add('_action', null, [
            'actions' => [
                'edit' => [],
                'recalclate' => [
                    'template' => 'SonataAdmin/CRUD/list__action_recalculate.html.twig',
                ],
            ]
        ]);
    }

    protected function configureRoutes(RouteCollection $collection)
    {
        $collection->add('Re-calculate', $this->getRouterIdParameter().'/recalculate');
    }
}
