Exemplo n.º 1
0
 /**
  * Save resource
  * 
  * @access public
  * @param Courses\Entity\Resource $resource
  * @param array $data ,default is empty array
  * @param bool $isAdminUser ,default is bool false
  * @param string $userEmail ,default is null
  */
 public function save($resource, $data = array(), $isAdminUser = false, $userEmail = null)
 {
     $notifyAdminFlag = false;
     $editFlag = false;
     if (empty($data)) {
         $editFlag = true;
     }
     if ($isAdminUser === false) {
         $resource->setStatus(Status::STATUS_NOT_APPROVED);
         $notifyAdminFlag = true;
     }
     $this->query->setEntity('Courses\\Entity\\Resource')->save($resource, $data);
     if (isset($data["fileAdded"])) {
         // save added resources
         foreach ($data["fileAdded"] as $fileKey => $fileValue) {
             $filter = new RenameUpload($fileValue["uploadOptions"]);
             $resource = clone $resource;
             $uploadedFile = $filter->filter($fileValue);
             $resource->setFile($uploadedFile);
             $resource->setName($data["nameAdded"][$fileKey]);
             $this->query->setEntity('Courses\\Entity\\Resource')->save($resource);
         }
     }
     if ($notifyAdminFlag === true) {
         $this->sendMail($userEmail, $editFlag);
     }
 }
 /**
  * setup form
  * 
  * 
  * @access public
  * @param string $name ,default is null
  * @param array $options ,default is null
  */
 public function __construct($name = null, $options = null)
 {
     $this->query = $options['query'];
     unset($options['query']);
     parent::__construct($name, $options);
     $this->setAttribute('class', 'form form-inline');
     $this->setAttribute('method', 'GET');
     $this->add(array('name' => 'title', 'type' => 'Zend\\Form\\Element\\Text', 'attributes' => array('class' => 'form-control'), 'options' => array('label' => 'Title')));
     $this->add(array('name' => 'directUrl', 'type' => 'Zend\\Form\\Element\\Text', 'attributes' => array('class' => 'form-control'), 'options' => array('label' => 'Url')));
     $this->add(array('name' => 'type', 'type' => 'Zend\\Form\\Element\\Select', 'attributes' => array('class' => 'form-control'), 'options' => array('label' => 'Type', "value_options" => array(MenuItem::TYPE_PAGE => "Page", MenuItem::TYPE_DIRECT_URL => "Direct Url"), 'empty_option' => "All")));
     $this->add(array('name' => 'menu', 'type' => 'DoctrineModule\\Form\\Element\\ObjectSelect', 'attributes' => array('class' => 'form-control'), 'options' => array('label' => 'Menu', 'object_manager' => $this->query->setEntity('CMS\\Entity\\Menu')->entityManager, 'target_class' => 'CMS\\Entity\\Menu', 'property' => "title", 'find_method' => array('name' => 'findAll', 'params' => array()), 'display_empty_item' => true, 'empty_item_label' => "All")));
     $this->add(array('name' => 'status', 'type' => 'Zend\\Form\\Element\\Select', 'attributes' => array('class' => 'form-control'), 'options' => array('label' => 'Status', "value_options" => array(Status::STATUS_ACTIVE => Status::STATUS_ACTIVE_TEXT, Status::STATUS_INACTIVE => Status::STATUS_INACTIVE_TEXT), 'empty_option' => "All")));
     $this->add(array('name' => 'filter', 'type' => 'Zend\\Form\\Element\\Submit', 'attributes' => array('class' => 'btn btn-success', 'value' => 'Filter')));
     $this->add(array('name' => 'reset', 'type' => 'Zend\\Form\\Element', 'attributes' => array('class' => 'btn btn-danger resetButton', 'value' => 'Reset', 'type' => 'button')));
 }
 /**
  * Save OrganizationUser
  * Add new role if user does not have it
  * 
  * @access public
  * @param Organizations\Entity\OrganizationUser $organizationUser
  * @param array $data ,default is empty array
  */
 public function save($organizationUser, $data = array())
 {
     $this->query->setEntity('Organizations\\Entity\\OrganizationUser')->save($organizationUser, $data);
     $roleExists = false;
     $user = $organizationUser->getUser();
     foreach ($user->getRoles() as $role) {
         if ($role->getName() == $organizationUser->getRole()->getName()) {
             $roleExists = true;
             break;
         }
     }
     if ($roleExists === false) {
         $user->addRole($organizationUser->getRole());
         $this->query->setEntity('Users\\Entity\\User')->save($user, array());
     }
 }
Exemplo n.º 4
0
 /**
  * this function is meant to save evaluation no matters it's type 
  * template or course evaluation
  * @param Evaluation $evalObj
  * @param int $courseId not required if template
  * @param string $userEmail ,default is null
  * @param bool $isAdminUser ,default is true
  * @param bool $editFlag ,default is false
  */
 public function saveEvaluation($evalObj, $courseId = null, $userEmail = null, $isAdminUser = true, $editFlag = false)
 {
     // if evaluation is admin template
     if ($evalObj->isTemplate()) {
         $this->query->setEntity("Courses\\Entity\\Evaluation")->save($evalObj);
     } else {
         //find the course to assign it to the evaluation
         $course = $this->query->findOneBy("Courses\\Entity\\Course", array('id' => $courseId));
         //assign course to evaluation
         $evalObj->setCourse($course);
         $this->query->setEntity('Courses\\Entity\\Evaluation')->save($evalObj);
     }
     if ($isAdminUser === false) {
         $this->sendMail($userEmail, $editFlag);
     }
 }
Exemplo n.º 5
0
 public function saveCourseVotes($questionIds, $values, $userObj, $evalObj)
 {
     // removing unset value form array
     unset($values['submit']);
     //looping over values
     for ($i = 0; $i < count($questionIds); $i++) {
         $vote = new \Courses\Entity\Vote();
         $questionObj = $this->query->findOneBy('Courses\\Entity\\Question', array('id' => $questionIds[$i]));
         $vote->setEvaluation($evalObj);
         $vote->setUser($userObj);
         $vote->setQuestion($questionObj);
         // each key is radios_XX  where x is question Id
         $vote->setVote($values['radios_' . $questionIds[$i]]);
         // save vote
         $this->query->setEntity('Courses\\Entity\\Vote')->save($vote);
         // update course evaluation percentage
         $evalObj->setPercentage($this->getVotePercentage($evalObj));
         $this->query->setEntity('Courses\\Entity\\Evaluation')->save($evalObj);
     }
 }
Exemplo n.º 6
0
 /**
  * Enroll course
  * 
  * @access public
  * @param Courses\Entity\Course $course
  * @param Users\Entity\User $user
  * @throws \Exception Capacity exceeded
  */
 public function enrollCourse($course, $user)
 {
     $studentsNo = $course->getStudentsNo();
     $studentsNo++;
     $capacity = $course->getCapacity();
     if ($capacity < $studentsNo) {
         throw new \Exception("Capacity exceeded");
     }
     $course->setStudentsNo($studentsNo);
     $course->addUser($user);
     $this->query->setEntity('Courses\\Entity\\Course')->save($course);
 }
Exemplo n.º 7
0
 public function saveBookingRequest($data, $config)
 {
     $bookObj = new \Courses\Entity\ExamBook();
     $course = $this->query->findOneBy('Courses\\Entity\\Course', array('id' => $data['courseId']));
     $atc = $this->query->findOneBy('Organizations\\Entity\\Organization', array('id' => $data['atcId']));
     // exam date
     $bookObj->setDate(\DateTime::createFromFormat(Time::DATE_FORMAT, $data['date']));
     // creation time
     $bookObj->setCreatedAt(new \DateTime());
     // number of students
     $bookObj->setStudentNum($data['studentsNo']);
     // assign request to course
     $bookObj->setCourse($course);
     // assign request to atc
     $bookObj->setAtc($atc);
     // admin pending request
     $bookObj->setAdminStatus(\Courses\Entity\ExamBook::ADMIN_PENDING);
     // tvtc nothing
     $bookObj->setTvtcStatus(Null);
     $this->query->setEntity('Courses\\Entity\\ExamBook')->save($bookObj);
     $forceFlush = APPLICATION_ENV == "production" ? false : true;
     $cachedSystemData = $this->systemCacheHandler->getCachedSystemData($forceFlush);
     $settings = $cachedSystemData[CacheHandler::SETTINGS_KEY];
     if (array_key_exists(Settings::TVTC_EMAIL, $settings)) {
         $tvtcMail = $settings[Settings::TVTC_EMAIL];
     }
     $toBeNotifiedArray = array();
     if (array_key_exists(Settings::ADMIN_EMAIL, $settings) && array_key_exists(Settings::OPERATIONS_EMAIL, $settings)) {
         $toBeNotifiedArray[] = $settings[Settings::ADMIN_EMAIL];
         $toBeNotifiedArray[] = $settings[Settings::OPERATIONS_EMAIL];
     }
     if (isset($tvtcMail)) {
         // send tvtc new mail
         $this->sendMail($bookObj, $tvtcMail);
     }
     if (count($toBeNotifiedArray) > 0) {
         // send admin new mail
         $this->sendMail($bookObj, $toBeNotifiedArray, true);
     }
 }
Exemplo n.º 8
0
 /**
  * Save page
  * 
  * @access public
  * @param CMS\Entity\Page $page
  * @param array $data ,default is empty array
  * @param bool $editFlag ,default is false
  */
 public function save($page, $data = array(), $editFlag = false)
 {
     if (array_key_exists(FormButtons::SAVE_AND_PUBLISH_BUTTON, $data)) {
         $page->setStatus(Status::STATUS_ACTIVE);
     } elseif (array_key_exists(FormButtons::UNPUBLISH_BUTTON, $data)) {
         $page->setStatus(Status::STATUS_INACTIVE);
     } elseif (array_key_exists(FormButtons::SAVE_BUTTON, $data) && $editFlag === false) {
         $page->setStatus(Status::STATUS_INACTIVE);
     }
     if ($editFlag === true) {
         $data = array();
     }
     $this->query->setEntity("CMS\\Entity\\Page")->save($page, $data);
 }
Exemplo n.º 9
0
 /**
  * Disapprove entities changes
  * 
  * @access public
  * 
  * @param array $entities
  * @param array $entitiesLogs
  * 
  * @return bool process result
  */
 public function disapproveChanges($entities, $entitiesLogs)
 {
     $processResult = true;
     foreach ($entitiesLogs as $logsPerEntity) {
         foreach ($logsPerEntity as $entityLog) {
             $entityLogClass = get_class($entityLog);
             $this->query->setEntity($entityLogClass)->remove($entityLog, true);
         }
     }
     foreach ($entities as $entity) {
         if (property_exists($entity, "status") && $entity->status == Status::STATUS_NOT_APPROVED) {
             $entityClass = get_class($entity);
             $this->query->setEntity($entityClass)->remove($entity, true);
         }
     }
     if (count($entities) > 0 && count($entitiesLogs) > 0) {
         // flush all entities changes
         $this->query->entityManager->flush();
     }
     return $processResult;
 }
Exemplo n.º 10
0
 /**
  * set validation constraints
  * 
  * 
  * @uses InputFilter
  * 
  * @access public
  * 
  * @param Utilities\Service\Query\Query $query
  * @return InputFilter validation constraints
  */
 public function getInputFilter($query)
 {
     if (!$this->inputFilter) {
         $inputFilter = new InputFilter();
         $query->setEntity("Organizations\\Entity\\OrganizationUser");
         $inputFilter->add(array('name' => 'user', 'required' => true, 'validators' => array(array('name' => 'Utilities\\Service\\Validator\\UniqueObject', 'options' => array('use_context' => true, 'object_manager' => $query->entityManager, 'object_repository' => $query->entityRepository, 'fields' => array('user', 'organization', 'role'), 'messages' => array(UniqueObject::ERROR_OBJECT_NOT_UNIQUE => "There is already another organization user with the same user and role"))))));
         $inputFilter->add(array('name' => 'role', 'required' => true));
         $this->inputFilter = $inputFilter;
     }
     return $this->inputFilter;
 }