<?php
namespace App\Form;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Vich\UploaderBundle\Form\Type\VichFileType;
use App\Entity\Level;
use App\Entity\Project;
/**
*
* @author wendell.zheng <wxzheng@ustc.edu.cn>
*/
class ProjectSuperType extends AbstractType
{
protected $router;
public function __construct(UrlGeneratorInterface $router)
{
$this->router = $router;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$project = $builder->getData();
$builder->add('batch', null, [
'label' => '批次',
'disabled' => true
])
->add('name', TextType::class, [
'label' => '名称',
])
->add('doc', VichFileType::class, [
'label' => '申请书',
'download_uri' => $this->router->generate('super_project_download', [
'id' => $project->getId()
]),
'download_label' => '下载申请书',
'allow_delete' => false,
'required' => false
])
->add('collegeDoc', VichFileType::class, [
'label' => '申请书(已填写学院推荐意见)',
'download_uri' => $this->router->generate('super_project_college_download', [
'id' => $project->getId()
]),
'download_label' => '下载申请书(已填写学院推荐意见)',
'allow_delete' => false,
'required' => false
])
->add('subject', null, [
'label' => '所属学科',
'disabled' => true
])
->add('college', null, [
'label' => '所属单位',
'disabled' => true
])
->add('collegeSort', null, [
'label' => '学院排序',
'disabled' => true
])
->add('status', ChoiceType::class, [
'label' => '状态',
'choices' => array_combine(Project::STATUSES, Project::STATUSES)
]);
$levels = $project->getCategory()->getLevels();
if ($levels->count()) {
$builder->add('level', EntityType::class, [
'class' => Level::class,
'label' => '级别',
'choices' => $levels
]);
}
}
}