/** * @Extra\Route("/sign-up/{id}", name="SignUpForEvent") * @Extra\ParamConverter() */ public function signUpAction(Entity\Announcement $announcement, Request $request) { $announcement->addTicketsBooking($request->get('name'), $request->get('count')); if ($request->get('contact')) { $announcement->addVolunteer($request->get('name'), $request->get('contact')); } $this->getEm()->flush(); return new Response(); }
/** * @param Announcement $announcement * @return self */ public static function fromAnnouncement(Announcement $announcement) { $self = new self(); $self->setCity($announcement->getCity()); $self->setDate($announcement->getDate()); $lectures = new ArrayCollection(); foreach ($announcement->getLectures() as $lectureAnnouncement) { $lecture = new Lecture(); $lecture->setTitle($lectureAnnouncement->getTitle()); $lecture->setTeaser($lectureAnnouncement->getTeaser()); $lecture->setLecturer($lectureAnnouncement->getLecturer()); $lecture->setField($lectureAnnouncement->getField()); $lecture->setEvent($self); $lectures->add($lecture); } $self->lectures = $lectures; $self->created = new \DateTime(); //todo this should be set automatically, why it is not? return $self; }
/** * @Extra\Route("/announcements/{id}/get-volunteers", name="GetAnnouncementVolunteers") * @Extra\ParamConverter */ public function downloadVolunteersAction(Entity\Announcement $announcement) { $file = $this->get("arodiss.xls.builder")->buildXlsFromArray(array_merge([['Имя', 'Контакты']], $announcement->getVolunteers())); $response = new Response(); $response->headers->set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $response->headers->set("Content-Disposition", "attachment;filename=volunteers.xlsx"); $response->setContent(file_get_contents($file)); return $response; }