Exemplo 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");
 }
Exemplo n.º 2
0
 public function onRender()
 {
     $this->roots = new Roots();
     $this->addCss("/plugins/delphinium/blossom/assets/css/bootstrap.min.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/gradebook.css");
     $this->addJs("/plugins/delphinium/blossom/assets/javascript/d3.min.js");
     $this->addJs("/plugins/delphinium/blossom/assets/javascript/gradebook_student.js");
     $this->page['experienceInstanceId'] = $this->property('experienceInstance');
     $this->page['userRoles'] = $_POST["roles"];
     if (stristr($_POST["roles"], 'Learner')) {
         if (!isset($_SESSION)) {
             session_start();
         }
         // $_SESSION['userID'] = 1230622;
         $bonusPenalties = $this->getBonusPenalties();
         $this->page['bonus'] = $bonusPenalties === 0 ? 0 : $bonusPenalties->bonus;
         $this->page['penalties'] = $bonusPenalties === 0 ? 0 : $bonusPenalties->penalties;
         $exp = new ExperienceComponent();
         $pts = $exp->getUserPoints();
         $this->page['totalPts'] = $pts;
         //get letter grade
         if (!is_null($this->property('experienceInstance'))) {
             $instance = ExperienceModel::find($this->property('experienceInstance'));
             $maxExperiencePts = $instance->total_points;
             if (is_null($this->roots)) {
                 $this->roots = new Roots();
             }
             $standards = $this->roots->getGradingStandards();
             $grading_scheme = $standards[0]->grading_scheme;
             $grade = new GradeComponent();
             $totalPoints = $pts + $bonusPenalties->bonus + $bonusPenalties->penalties;
             $letterGrade = $grade->getLetterGrade($totalPoints, $maxExperiencePts, $grading_scheme);
             //modify grading scheme for display to users
             foreach ($grading_scheme as $grade) {
                 $grade->value = $grade->value * $maxExperiencePts;
             }
             $this->page['grading_scheme'] = json_encode($grading_scheme);
             $this->page['letterGrade'] = $letterGrade;
         }
         $this->addJs("/plugins/delphinium/blossom/assets/javascript/boxplot_d3.js");
     } else {
         if (stristr($_POST["roles"], 'Instructor') || stristr($_POST["roles"], 'TeachingAssistant')) {
             $this->getProfessorData();
             $this->addCss("/plugins/delphinium/blossom/assets/css/light-js-table-sorter.css");
             $this->addJs("/plugins/delphinium/blossom/assets/javascript/gradebook_professor.js");
         }
     }
 }
Exemplo n.º 3
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");
 }
Exemplo n.º 4
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");
 }
Exemplo n.º 5
0
 public function onRender()
 {
     $this->roots = new Roots();
     $this->addCss("/plugins/delphinium/blossom/assets/css/bootstrap.min.css");
     $this->addCss("/plugins/delphinium/blossom/assets/css/gradebook.css");
     $this->addJs("/plugins/delphinium/blossom/assets/javascript/d3.min.js");
     $this->page['userRoles'] = $_POST["roles"];
     if (stristr($_POST["roles"], 'Learner')) {
         $bonusPenalties = $this->getBonusPenalties();
         $this->page['bonus'] = $bonusPenalties === 0 ? 0 : round($bonusPenalties->bonus, 2);
         $this->page['penalties'] = $bonusPenalties === 0 ? 0 : round($bonusPenalties->penalties, 2);
         $exp = new ExperienceComponent();
         $pts = $exp->getUserPoints();
         $this->page['totalPts'] = $pts;
         //get letter grade
         if (!is_null($this->property('experienceInstance'))) {
             $instance = ExperienceModel::find($this->property('experienceInstance'));
             $maxExperiencePts = $instance->total_points;
             if (is_null($this->roots)) {
                 $this->roots = new Roots();
             }
             $standards = $this->roots->getGradingStandards();
             $grading_scheme = $standards[0]->grading_scheme;
             $grade = new GradeComponent();
             $letterGrade = $grade->getLetterGrade($pts, $maxExperiencePts, $grading_scheme);
             $this->page['letterGrade'] = $letterGrade;
         }
         $this->addJs("/plugins/delphinium/blossom/assets/javascript/boxplot_d3.js");
     } else {
         if (stristr($_POST["roles"], 'Instructor') || stristr($_POST["roles"], 'TeachingAssistant')) {
             $this->getProfessorData();
             $this->addCss("/plugins/delphinium/blossom/assets/css/light-js-table-sorter.css");
             $this->addJs("/plugins/delphinium/blossom/assets/javascript/gradebook_professor.js");
         }
     }
 }