/** * @param string $filter * @param integer $quicksearch * @param string $sword * @param \DateTime $from * @param \DateTime $to * @return void */ public function indexAction($filter = "session", $quicksearch = 0, $sword = "", $from = null, $to = null) { if ($filter == "session") { $filter = $this->session->getFilter(); } else { $this->session->setFilter($filter); } $dummy = new \DLigo\Animaltool\Domain\Model\Animal(); $this->view->assign('genders', $dummy->getGenders()); if ($quicksearch) { $filter = "quick"; $animals = $this->animalRepository->filterLocation($this->animalRepository->findQuick($sword), $this->session->getLocation()); $this->view->assign('sword', $sword); if ($animals->count() == 1 && $animals->getFirst()->getIsTreatable()) { $this->redirect('treatment', null, null, array('animal' => $animals->getFirst())); } } else { switch ($filter) { case "all": $animals = $this->animalRepository->findAll(); break; case "ready": $animals = $this->animalRepository->findByStayStatus(Animal::RELEASING); break; case "extern": $animals = $this->animalRepository->findByStayStatus(Animal::EXTERNAL); break; case "done": $animals = $this->animalRepository->findByStayStatus(Animal::RELEASED); break; case "adopted": $animals = $this->animalRepository->findByStayStatus(Animal::ADOPTED); break; case "dead": $animals = $this->animalRepository->findByTherapyStatus(Animal::DEAD); break; case "treating": $animals = $this->animalRepository->findByTherapyStatus(Animal::THERAPY); break; case "dummy": $animals = $this->animalRepository->findByIsDummy(true); break; case "new": default: $animals = $this->animalRepository->findByTherapyStatus(Animal::WAIT); break; } $animals = $this->animalRepository->filterLocation($animals, $this->session->getLocation(), $from, $to); } $this->view->assign('filter', $filter); $this->view->assign('from', $from); $this->view->assign('to', $to); if ($filter != "dummy") { $animals = $this->animalRepository->hideDummies($animals); } $this->view->assign('animals', $animals); }