Ejemplo n.º 1
0
 public function calculateAverageRating(\ClassCentral\CredentialBundle\Entity\Credential $credential)
 {
     $rating = 0;
     $reviews = $credential->getReviews();
     $validReviewsCount = 0;
     if ($reviews && $reviews->count() > 0) {
         $ratingSum = 0;
         foreach ($reviews as $review) {
             if ($review->getStatus() < CredentialReview::REVIEW_NOT_SHOWN_STATUS_LOWER_BOUND) {
                 $ratingSum += $review->getRating();
                 $validReviewsCount++;
             }
         }
         if ($validReviewsCount > 0) {
             $rating = $ratingSum / $validReviewsCount;
         }
     }
     return array('rating' => $rating, 'numRatings' => $validReviewsCount);
 }
Ejemplo n.º 2
0
 /**
  * @param Credential $credential
  */
 private function saveOrUpdateCredential(Credential $credential, $imageUrl)
 {
     $dbCredential = $this->dbHelper->getCredentialBySlug($credential->getSlug());
     $em = $this->getManager();
     if (!$dbCredential) {
         if ($this->doCreate()) {
             $this->out("New Credential - " . $credential->getName());
             if ($this->doModify()) {
                 $em->persist($credential);
                 $em->flush();
                 $this->dbHelper->uploadCredentialImageIfNecessary($imageUrl, $credential);
             }
         }
     } else {
         // Update the credential
         $changedFields = $this->dbHelper->changedFields($this->credentialFields, $credential, $dbCredential);
         if (!empty($changedFields) && $this->doUpdate()) {
             $this->out("UPDATE CREDENTIAL - " . $dbCredential->getName());
             $this->outputChangedFields($changedFields);
             if ($this->doModify()) {
                 $em->persist($dbCredential);
                 $em->flush();
                 $this->dbHelper->uploadCredentialImageIfNecessary($imageUrl, $dbCredential);
             }
         }
     }
 }
Ejemplo n.º 3
0
 public function uploadCredentialImageIfNecessary($imageUrl, Credential $credential, $extension = null)
 {
     $kuber = $this->scraper->getContainer()->get('kuber');
     $uniqueKey = basename($imageUrl);
     if ($kuber->hasFileChanged(Kuber::KUBER_ENTITY_CREDENTIAL, Kuber::KUBER_TYPE_CREDENTIAL_IMAGE, $credential->getId(), $uniqueKey)) {
         // Upload the file
         $filePath = '/tmp/credential_' . $uniqueKey;
         file_put_contents($filePath, file_get_contents($imageUrl));
         $kuber->upload($filePath, Kuber::KUBER_ENTITY_CREDENTIAL, Kuber::KUBER_TYPE_CREDENTIAL_IMAGE, $credential->getId(), $extension, $uniqueKey);
     }
 }
Ejemplo n.º 4
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('status', 'choice', array('choices' => Credential::getStatuses()))->add('subject', 'choice', array('choices' => Credential::$SUBJECTS))->add('name')->add('slug')->add('oneLiner')->add('subTitle')->add('description')->add('price')->add('pricePeriod', 'choice', array('choices' => Credential::$CREDENTIAL_PRICE_PERIODS))->add('durationMin')->add('durationMax')->add('workloadMin')->add('workloadMax')->add('enrollmentStart')->add('enrollmentEnd')->add('startDate')->add('endDate')->add('sponsored')->add('workloadType', 'choice', array('choices' => Credential::$CREDENTIAL_WORKLOAD))->add('url')->add('initiative')->add('institutions', null, array('required' => false))->add('courses');
 }