/**
* @Route("/admin/publications/{id}/remove/", name="newscoop_newscoop_publications_remove")
*/
public function removeAction(Request $request, Publication $publication)
{
$em = $this->container->get('em');
$user = $this->container->get('user')->getCurrentUser();
$translator = $this->container->get('translator');
if (!$user->hasPermission('ManagePub')) {
throw new AccessDeniedException($translator->trans("You do not have the right to delete publications.", array(), 'pub'));
}
$issuesRemaining = $em->getRepository('Newscoop\\Entity\\Issue')->getIssuesCountForPublication($publication->getId())->getSingleScalarResult();
$sectionsRemaining = $em->getRepository('Newscoop\\Entity\\Section')->getSectionsCountForPublication($publication->getId())->getSingleScalarResult();
$articlesRemaining = $em->getRepository('Newscoop\\Entity\\Article')->getArticlesCountForPublication($publication->getId())->getSingleScalarResult();
$form = $this->createForm(new RemovePublicationType(), $publication);
if ($request->getMethod() === 'POST' && $issuesRemaining == 0 && $sectionsRemaining == 0 && $articlesRemaining == 0) {
$form->handleRequest($request);
if ($form->isValid()) {
$em->remove($publication);
$em->flush();
$cacheService = $this->container->get('newscoop.cache');
$cacheService->clearNamespace('publication');
$this->get('session')->getFlashBag()->add('success', $translator->trans('publications.publication_removed', array(), 'pub'));
return new RedirectResponse($this->generateUrl('newscoop_newscoop_publications_index'));
}
}
return $this->render('NewscoopNewscoopBundle:BackendPublications:remove.html.twig', array('publication' => $publication, 'issuesRemaining' => $issuesRemaining, 'sectionsRemaining' => $sectionsRemaining, 'articlesRemaining' => $articlesRemaining, 'form' => $form->createView()));
}