/** * {@inheritDoc} */ public function load(ObjectManager $manager) { $faker = new Generator(); $faker->addProvider(new Person($faker)); $faker->addProvider(new Internet($faker)); $faker->addProvider(new PhoneNumber($faker)); $faker->addProvider(new Lorem($faker)); // Generate default admin $admin = new User(); $admin->setPlainPassword('123456'); $admin->setEmail('*****@*****.**'); $admin->setEnabled(true); $admin->setType(User::ROLE_ADMIN); $admin->setFirstName($faker->firstName); $admin->setLastName($faker->lastName); $manager->persist($admin); // Generate default student $student = new User(); $student->setPlainPassword('123456'); $student->setEmail('*****@*****.**'); $student->setEnabled(true); $student->setType(User::ROLE_STUDENT); $student->setStudentProfileVisibility(User::VISIBILITY_VISIBLE); $student->setFirstName($faker->firstName); $student->setLastName($faker->lastName); $faker->seed(rand(1, 10)); $studentProfile = new StudentProfile(); $studentProfile->setContactEmail($student->getEmail()); $studentProfile->setHeadline($faker->sentence); $student->setStudentProfile($studentProfile); $manager->persist($student); // Generate stat for student for ($i = 0; $i < 30; $i++) { $numProfileView = rand(0, 15); $numShortlist = rand(0, round($numProfileView / 2)); for ($y = 0; $y < $numProfileView; $y++) { $time = (new \DateTime('now'))->modify('-' . $i . ' days'); $time->setTime(rand(1, 11), rand(1, 30), 0); $statProfileView = new StatProfileView(); $statProfileView->setCreated($time); $statProfileView->setStudent($studentProfile); $manager->persist($statProfileView); } for ($z = 0; $z < $numShortlist; $z++) { $time = (new \DateTime('now'))->modify('-' . $i . ' days'); $time->setTime(rand(1, 11), rand(1, 30), 0); $statShortlist = new StatShortlist(); $statShortlist->setCreated($time); $statShortlist->setStudent($studentProfile); $manager->persist($statShortlist); } } // Generate default member $member = new User(); $member->setPlainPassword('123456'); $member->setEmail('*****@*****.**'); $member->setEnabled(true); $member->setType(User::ROLE_GS1_MEMBER); $member->setFirstName($faker->firstName); $member->setLastName($faker->lastName); $manager->persist($member); // Generate 20 more accounts of students and members for ($i = 0; $i < 20; $i++) { $faker->seed(rand(($i + 1) * 10, ($i + 2) * 10)); $user = new User(); $user->setPlainPassword('123456'); $user->setEmail($faker->email); $user->setEnabled(true); $user->setFirstName($faker->firstName); $user->setLastName($faker->lastName); $shouldBeAMember = $faker->numberBetween(0, 2) == 0; if ($shouldBeAMember) { $user->setType(User::ROLE_GS1_MEMBER); } else { $user->setType(User::ROLE_STUDENT); // disable few students $shouldEnableStudent = $faker->numberBetween(0, 2) != 0; $user->setStudentProfileVisibility($shouldEnableStudent ? User::VISIBILITY_VISIBLE : User::VISIBILITY_HIDDEN); $studentProfile = new StudentProfile(); $studentProfile->setContactEmail($user->getEmail()); $studentProfile->setHeadline($faker->sentence); $phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); try { $studentProfile->setContactNumber($phoneUtil->parse($faker->mobileNumber, "AU")); } catch (\libphonenumber\NumberParseException $e) { } $user->setStudentProfile($studentProfile); } $manager->persist($user); } $manager->flush(); }
/** * @Route("member/view-student/{id}", name="student_profile_show") * @Template() * @ParamConverter("user", class="AppUserBundle:User") */ public function showAction(Request $request, $user) { /** @var User $user */ if (!$user->isStudent()) { throw new NotFoundHttpException("Student is invalid"); } if ($user->getStudentProfile() == null) { throw new NotFoundHttpException("Student profile is invalid"); } $breadcrumbs = $this->get("white_october_breadcrumbs"); $breadcrumbs->addItem("Home", $this->get("router")->generate("member_homepage")); if ($request->get('ref') === 'search') { $breadcrumbs->addItem("Student search", $this->get("router")->generate("student_profile_list")); } else { $breadcrumbs->addItem("Shortlist", $this->get("router")->generate("shortlist")); } $breadcrumbs->addItem($user->getFirstName() . ' ' . $user->getLastName()); $em = $this->getDoctrine()->getManager(); $stat = new StatProfileView(); $stat->setStudent($user->getStudentProfile()); $em->persist($stat); $em->flush(); return array('user' => $user); }