/** * @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())); }
public function it_gets_the_latest_issue_for_current_publication(Issue $issue, Publication $publication, $query, $repository, $em) { $publication->getId()->willReturn(1); $em->getReference('Newscoop\\Entity\\Issue', 7)->willReturn($issue); $repository->getLastPublishedByPublication(1)->willReturn($query); $issueResult = array(array('id' => 7, 'number' => 12, 'workflowStatus' => 'Y')); $query->getArrayResult()->willReturn($issueResult); $this->getLatestPublishedIssue()->shouldReturn($issue); }
/** * Get publication id * * @return int */ public function getPublicationId() { return $this->publication->getId(); }