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