public function session($name, Course $course, $status = 0) { $now = new \DateTime(); $session = new CourseSession(); $session->setName($name); $session->setCourse($course); $session->setCreationDate($now); $session->setSessionStatus($status); $this->om->persist($session); return $session; }
public function createCourseSession(Course $course, User $user, $sessionName = null, Cursus $cursus = null, $registrationDate = null, $startDate = null, $endDate = null) { if (is_null($registrationDate)) { $registrationDate = new \DateTime(); } $session = new CourseSession(); $session->setName($sessionName); $session->setCourse($course); $session->addCursu($cursus); $session->setCreationDate($registrationDate); $session->setPublicRegistration($course->getPublicRegistration()); $session->setPublicUnregistration($course->getPublicUnregistration()); $session->setRegistrationValidation($course->getRegistrationValidation()); $session->setStartDate($startDate); $session->setEndDate($endDate); $workspace = $this->generateWorkspace($course, $session, $user); $session->setWorkspace($workspace); $learnerRole = $this->generateRoleForSession($workspace, $course->getLearnerRoleName(), 0); $tutorRole = $this->generateRoleForSession($workspace, $course->getTutorRoleName(), 1); $session->setLearnerRole($learnerRole); $session->setTutorRole($tutorRole); $this->persistCourseSession($session); return $session; }
public function createCourseSessionFromSession(CourseSession $session, Course $course) { $session->setCourse($course); $workspace = $course->getWorkspace(); if (is_null($workspace)) { $workspace = $this->generateWorkspace($course, $session); } $session->setWorkspace($workspace); $learnerRole = $this->generateRoleForSession($workspace, $course->getLearnerRoleName(), 0); $tutorRole = $this->generateRoleForSession($workspace, $course->getTutorRoleName(), 1); $session->setLearnerRole($learnerRole); $session->setTutorRole($tutorRole); $this->persistCourseSession($session); $event = new LogCourseSessionCreateEvent($session); $this->eventDispatcher->dispatch('log', $event); //the event will be listened by FormaLibreBulletinBundle (it adds some MatiereOptions) $this->clarolineDispatcher->dispatch('create_course_session', 'Claroline\\CursusBundle\\Event\\CreateCourseSessionEvent', [$session]); }