Example #1
0
 /**
  * Displays a form to create a new Job entity.
  *
  */
 public function newAction()
 {
     $entity = new Job();
     $entity->setType('full-time');
     $form = $this->createCreateForm($entity);
     return $this->render('EtiJobeetBundle:Job:new.html.twig', array('entity' => $entity, 'form' => $form->createView()));
 }
Example #2
0
 public function getForLuceneQuery($query)
 {
     $hits = Job::getLuceneIndex()->find($query);
     $pks = array();
     foreach ($hits as $hit) {
         $pks[] = $hit->pk;
     }
     if (empty($pks)) {
         return [];
     }
     $q = $this->createQueryBuilder('j')->where('j.id IN (:pks)')->setParameter('pks', $pks)->andWhere('j.isActivated = :active')->setParameter('active', 1)->setMaxResults(20)->getQuery();
     return $q->getResult();
 }
Example #3
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $days = $input->getArgument('days');
     $em = $this->getContainer()->get('doctrine')->getManager();
     // cleanup Lucene index
     $index = Job::getLuceneIndex();
     $q = $em->getRepository('EtiJobeetBundle:Job')->createQueryBuilder('j')->where('j.expiresAt < :date')->setParameter('date', date('Y-m-d'))->getQuery();
     $jobs = $q->getResult();
     foreach ($jobs as $job) {
         if ($hit = $index->find('pk:' . $job->getId())) {
             $index->delete($hit->id);
         }
     }
     $index->optimize();
     $output->writeln('Cleaned up and optimized the job index');
     // remove stale jobs
     $nb = $em->getRepository('EtiJobeetBundle:Job')->cleanup($days);
     $output->writeln(sprintf('Removed %d stale jobs', $nb));
 }
Example #4
0
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('type', 'choice', ['choices' => Job::getTypes(), 'expanded' => true, 'constraints' => [new Assert\NotBlank(), new Assert\Choice(['callback' => ['Eti\\JobeetBundle\\Entity\\Job', 'getTypeValues']])]])->add('category', null, ['constraints' => [new Assert\NotBlank()]])->add('company', 'text', ['constraints' => [new Assert\NotBlank()]])->add('file', 'file', ['label' => 'Company logo', 'required' => false, 'constraints' => [new Assert\Image()]])->add('url', null, ['constraints' => [new Assert\Url()]])->add('position', null, ['constraints' => [new Assert\NotBlank()]])->add('location', 'text', ['constraints' => [new Assert\NotBlank()]])->add('description', 'textarea', ['constraints' => [new Assert\NotBlank()]])->add('howToApply', 'text', ['label' => 'How to apply?', 'constraints' => [new Assert\NotBlank()]])->add('isPublic', null, ['label' => 'Public?'])->add('email', 'email', ['constraints' => [new Assert\NotBlank(), new Assert\Email()]]);
 }
Example #5
0
 protected function configureFormFields(FormMapper $formMapper)
 {
     $formMapper->add('category')->add('type', 'choice', array('choices' => Job::getTypes(), 'expanded' => true))->add('company')->add('file', 'file', array('label' => 'Company logo', 'required' => false))->add('url')->add('position')->add('location')->add('description')->add('howToApply')->add('isPublic')->add('email')->add('isActivated');
 }
Example #6
0
 public function testGetForLuceneQuery()
 {
     $em = static::$kernel->getContainer()->get('doctrine')->getManager();
     $job = new Job();
     $job->setType('part-time');
     $job->setCompany('Sensio');
     $job->setPosition('FOO6');
     $job->setLocation('Paris');
     $job->setDescription('WebDevelopment');
     $job->setHowToApply('Send resumee');
     $job->setEmail('*****@*****.**');
     $job->setUrl('http://sensio-labs.com');
     $job->setIsActivated(false);
     $em->persist($job);
     $em->flush();
     $jobs = $em->getRepository('EtiJobeetBundle:Job')->getForLuceneQuery('FOO6');
     $this->assertEquals(count($jobs), 0);
     $job = new Job();
     $job->setType('part-time');
     $job->setCompany('Sensio');
     $job->setPosition('FOO7');
     $job->setLocation('Paris');
     $job->setDescription('WebDevelopment');
     $job->setHowToApply('Send resumee');
     $job->setEmail('*****@*****.**');
     $job->setUrl('http://sensio-labs.com');
     $job->setIsActivated(true);
     $em->persist($job);
     $em->flush();
     $jobs = $em->getRepository('EtiJobeetBundle:Job')->getForLuceneQuery('position:FOO7');
     $this->assertEquals(count($jobs), 1);
     foreach ($jobs as $job_rep) {
         $this->assertEquals($job_rep->getId(), $job->getId());
     }
     $em->remove($job);
     $em->flush();
     $jobs = $em->getRepository('EtiJobeetBundle:Job')->getForLuceneQuery('position:FOO7');
     $this->assertEquals(count($jobs), 0);
 }
Example #7
0
 public function testSetExpiresAtValue()
 {
     $job = new Job();
     $job->setExpiresAtValue();
     $this->assertEquals(time() + 86400 * 30, $job->getExpiresAt()->format('U'));
 }