Ejemplo n.º 1
0
 public function onRun()
 {
     if (!is_null($this->property('experienceInstance'))) {
         $instance = ExperienceModel::find($this->property('experienceInstance'));
         $maxExperiencePts = $instance->total_points;
         $exComp = new ExperienceComponent();
         $exComp->initVariables($this->property('experienceInstance'));
         $points = $exComp->getUserPoints();
         $roots = new Roots();
         $standards = $roots->getGradingStandards();
         $grading_scheme = $standards[0]->grading_scheme;
         $letterGrade = $this->getLetterGrade($points, $maxExperiencePts, $grading_scheme);
         $bonusPenaltiesObj = $exComp->calculateTotalBonusPenalties($this->property('experienceInstance'));
         $totalBonusPenalties = $bonusPenaltiesObj->bonus + $bonusPenaltiesObj->penalties;
         //penalties come with negative sign
         $this->page['XP'] = round($points, 2);
         $this->page['gradeBonus'] = round($totalBonusPenalties, 2);
         $this->page['letterGrade'] = $letterGrade;
     } else {
         $this->page['XP'] = 0;
         $this->page['gradeBonus'] = 0;
         $this->page['letterGrade'] = "F";
     }
     //todo: get the bonus, etc from blade, not from experience
     $size = $this->property('size');
     $this->page['gradeSize'] = $size;
     $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js");
     $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/main.css");
 }
Ejemplo n.º 2
0
 public function getMilestoneClearanceInfo()
 {
     $this->submissions = $this->getSubmissions();
     $instanceId = \Input::get('experienceInstanceId');
     $expController = new ExperienceController();
     $milestoneInfo = $expController->getMilestoneClearanceInfo($instanceId);
     return $milestoneInfo;
 }
Ejemplo n.º 3
0
 private function getBonusPenalties($userId = null)
 {
     $experienceComp = new ExperienceComponent();
     if (!is_null($this->property('Experience')) && $this->property('Experience') > 0) {
         return $experienceComp->calculateTotalBonusPenalties($this->property('Experience'), $userId);
     } else {
         $obj = new \stdClass();
         $obj->bonus = 0;
         $obj->penalties = 0;
     }
 }
Ejemplo n.º 4
0
 public function getMilestoneClearanceInfo()
 {
     try {
         $this->submissions = $this->getSubmissions();
         $instanceId = \Input::get('experienceInstanceId');
         $expController = new ExperienceController();
         $milestoneInfo = $expController->getMilestoneClearanceInfo($instanceId);
         return $milestoneInfo;
     } catch (\GuzzleHttp\Exception\ClientException $e) {
         return [];
     }
 }
Ejemplo n.º 5
0
 private function getBonusPenalties()
 {
     $experienceComp = new ExperienceComponent();
     if (!is_null($this->property('experienceInstance')) && $this->property('experienceInstance') > 0) {
         return $experienceComp->calculateTotalBonusPenalties($this->property('experienceInstance'));
     } else {
         return 0;
     }
 }
Ejemplo n.º 6
0
 public function onRun()
 {
     $instance = GradeModel::find($this->property('gradeInstance'));
     if (!is_null($this->property('experienceInstance'))) {
         $experienceInstance = ExperienceModel::find($this->property('experienceInstance'));
         $exComp = new ExperienceComponent();
         //set class variables
         $stDate = new DateTime($experienceInstance->start_date);
         $endDate = new DateTime($experienceInstance->end_date);
         $ptsPerSecond = $exComp->getPtsPerSecond($stDate, $endDate, $experienceInstance->total_points);
         $exComp->setPtsPerSecond($ptsPerSecond);
         $exComp->setStartDate($stDate);
         $exComp->setBonusPerSecond($experienceInstance->bonus_per_day / 24 / 60 / 60);
         $exComp->setBonusSeconds($experienceInstance->bonus_days * 24 * 60 * 60);
         $exComp->setPenaltyPerSecond($experienceInstance->penalty_per_day / 24 / 60 / 60);
         $exComp->setPenaltySeconds($experienceInstance->penalty_days * 24 * 60 * 60);
         $points = $exComp->getUserPoints();
         $milestonesDesc = Milestone::where('experience_id', '=', $experienceInstance->id)->orderBy('points', 'desc')->get();
         $mileClearance = $exComp->getMilestoneClearanceInfo($milestonesDesc);
         $bonusPenalties = 0;
         foreach ($mileClearance as $item) {
             if ($item->cleared) {
                 $bonusPenalties = $bonusPenalties + $item->bonusPenalty;
             }
         }
         $this->page['XP'] = round($points, 2);
         $this->page['gradeBonus'] = round($bonusPenalties, 2);
     } else {
         $this->page['XP'] = 0;
         $this->page['gradeBonus'] = 0;
     }
     //todo: get the bonus, etc from blade, not from experience
     $this->page['gradeSize'] = $instance->Size;
     $this->getGradeData();
     $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js");
     $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/main.css");
 }
Ejemplo n.º 7
0
 public function onRun()
 {
     $instance = GradeModel::find($this->property('gradeInstance'));
     if (!is_null($this->property('experienceInstance'))) {
         $exComp = new ExperienceComponent();
         $exComp->initVariables($this->property('experienceInstance'));
         $points = $exComp->getUserPoints();
         $bonusPenaltiesObj = $exComp->calculateTotalBonusPenalties($this->property('experienceInstance'));
         $totalBonusPenalties = $bonusPenaltiesObj->bonus + $bonusPenaltiesObj->penalties;
         //penalties come with negative sign
         $this->page['XP'] = round($points, 2);
         $this->page['gradeBonus'] = round($totalBonusPenalties, 2);
     } else {
         $this->page['XP'] = 0;
         $this->page['gradeBonus'] = 0;
     }
     //todo: get the bonus, etc from blade, not from experience
     $this->page['gradeSize'] = $instance->Size;
     $this->getGradeData();
     $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js");
     $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/main.css");
 }
Ejemplo n.º 8
0
 private function getBonusPenaltiesNew($experienceInstanceId, $userSubmissions, $ptsPerSecond, $stDateUTC, $bonusPerSecond, $bonusSeconds, $penaltyPerSecond, $penaltySeconds)
 {
     $experienceComp = new ExperienceComponent();
     if (!is_null($experienceInstanceId) && $experienceInstanceId > 0) {
         return $experienceComp->calculateTotalBonusPenaltiesNew($experienceInstanceId, $userSubmissions, $ptsPerSecond, $stDateUTC, $bonusPerSecond, $bonusSeconds, $penaltyPerSecond, $penaltySeconds);
     } else {
         return 0;
     }
 }