Exemple #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");
 }