<?php
namespace App\Controller\Review;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\ScoreRepository;
use App\Form\ScoreSearchType;
use App\Form\ScoreType;
use App\Entity\Score;
/**
*
* @author "wendell.zheng <wxzheng@ustc.edu.cn>"
*/
class DefaultController extends AbstractController
{
/**
*
* @Route("/review", name="review")
*/
public function index(ScoreRepository $sr): Response
{
$form = $this->createForm(ScoreSearchType::class);
$reviewer = $this->getUser();
$scores = $sr->listByReviewer($reviewer);
return $this->render('review/index.html.twig', [
'title' => '项目列表',
'entities' => $scores,
'form' => $form->createView()
]);
}
/**
*
* @Route("/review/score/{id}", name="review_score", requirements={"id"="\d+"})
*/
public function score(EntityManagerInterface $em, Score $score, Request $request)
{
$form = $this->createForm(ScoreType::class, $score);
$reviwer = $this->getUser();
if ($score->getReviewer() !== $reviwer) {
throw new \Exception('非法操作');
}
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$score->setDone(true);
$em->persist($score);
$em->flush();
$this->addFlash('notice', '操作成功');
return $this->redirectToRoute('review');
}
return $this->render('review/score.html.twig', [
'score' => $score,
'title' => '填写评审意见',
'form' => $form->createView()
]);
}
}