public function announcementIndexAction($slug)
{
/** @var EntityManager $em */
$em = $this->getDoctrine()->getManager();
/** @var BlockRepository $blockRepo */
$blockRepo = $em->getRepository('OjsJournalBundle:Block');
/** @var Journal $journal */
$journal = $em->getRepository('OjsJournalBundle:Journal')->findOneBy(['slug' => $slug]);
$this->throw404IfNotFound($journal);
if ($journal->getStatus() !== JournalStatuses::STATUS_PUBLISHED || $journal->getPublisher()->getStatus() !== PublisherStatuses::STATUS_COMPLETE) {
$journal = null;
$this->throw404IfNotFound($journal);
}
$data['announcements'] = $em->getRepository('OjsJournalBundle:JournalAnnouncement')->findBy(['journal' => $journal], ['id' => 'DESC']);
$data['page'] = 'announcement';
$data['blocks'] = $blockRepo->journalBlocks($journal);
$data['journal'] = $journal;
return $this->render('OjsSiteBundle::Journal/announcement_index.html.twig', $data);
}