* judges menu removed

* awardees reactored into awards, judges are now included on a per year basis
* lots of minor style adjustments to follow the design guideline
This commit is contained in:
Dávid Danyi
2018-05-08 18:10:38 +02:00
parent 4aeaae2520
commit b93616ab34
18 changed files with 121 additions and 45 deletions

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Handler;
use App\Service\AwardeeManager;
use App\Service\JudgeManager;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@@ -24,32 +25,39 @@ class AwardeeHandler implements RequestHandlerInterface
/** @var UrlHelper */
private $urlHelper;
/** @var JudgeManager */
private $judgeManager;
public function __construct(
TemplateRendererInterface $template,
AwardeeManager $awardeeManager,
UrlHelper $urlHelper
UrlHelper $urlHelper,
JudgeManager $judgeManager
)
{
$this->template = $template;
$this->awardeeManager = $awardeeManager;
$this->urlHelper = $urlHelper;
$this->judgeManager = $judgeManager;
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$year = $request->getAttribute('year');
$awardees = $this->awardeeManager->getJudgesByYear((int)$year);
$awardees = $this->awardeeManager->getAwardeesByYear((int)$year);
$judges = $this->judgeManager->getJudgesByYear((int)$year);
if (count($awardees) === 1) {
$url = $this->urlHelper->generate('awardee', [
'slug' => $awardees[0]->getSlug(),
]);
return new RedirectResponse($url);
}
// if (count($awardees) === 1) {
// $url = $this->urlHelper->generate('awardee', [
// 'slug' => $awardees[0]->getSlug(),
// ]);
// return new RedirectResponse($url);
// }
return new HtmlResponse($this->template->render("app::awardees", [
'year' => $year,
'awardees' => $awardees,
'judges' => $judges,
]));
}
}

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Handler;
use App\Service\AwardeeManager;
use App\Service\JudgeManager;
use Psr\Container\ContainerInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Zend\Expressive\Helper\UrlHelper;
@@ -17,6 +18,7 @@ class AwardeeHandlerFactory
$template = $container->get(TemplateRendererInterface::class);
$awardeeManager = $container->get(AwardeeManager::class);
$urlHelper = $container->get(UrlHelper::class);
return new AwardeeHandler($template, $awardeeManager, $urlHelper);
$judgeManager = $container->get(JudgeManager::class);
return new AwardeeHandler($template, $awardeeManager, $urlHelper, $judgeManager);
}
}

View File

@@ -84,11 +84,11 @@ class NavigationExtension implements ExtensionInterface
'uri' => $this->getUriFromRouter('the-prize.article', ['article' => 'gran-prize-award-events'])
]);
$this->menu->addChild(strtoupper("Judges"), [
'uri' => $this->getUriFromRouter('judges')
]);
// $this->menu->addChild(strtoupper("Judges"), [
// 'uri' => $this->getUriFromRouter('judges')
// ]);
$awardeesMenu = $this->menu->addChild(strtoupper("Awardees"), [
$awardeesMenu = $this->menu->addChild(strtoupper("Awards"), [
'uri' => $this->getUriFromRouter('awardees')
]);
$this->populateAwardeesSubmenu($awardeesMenu);

View File

@@ -21,7 +21,7 @@ class AwardeeManager
* @param int $year
* @return Awardee[]
*/
public function getJudgesByYear(int $year): ?array
public function getAwardeesByYear(int $year): ?array
{
return $this->entityManager->getRepository(Awardee::class)->findBy([
'year' => $year,
@@ -32,7 +32,7 @@ class AwardeeManager
* @param string $slug
* @return Awardee|null
*/
public function getJudgeFromSlug(string $slug): ?Awardee
public function getAwardeeFromSlug(string $slug): ?Awardee
{
/** @var Awardee $awardee */
$awardee = $this->entityManager->getRepository(Awardee::class)->findOneBy([

View File

@@ -118,4 +118,14 @@ class JudgeManager
]
];
}
}
/**
* @param int $year
* @return array
* @todo implement real filter by year
*/
public function getJudgesByYear(int $year)
{
return $this->getJudges();
}
}