Exemple #1
0
    if (!empty($grade_item->outcomeid) && !empty($CFG->enableoutcomes)) {
        $url = $CFG->wwwroot . '/grade/edit/tree/outcomeitem.php?id=' . $id . '&courseid=' . $courseid;
        redirect($gpr->add_url_params($url));
    }
    if ($grade_item->is_course_item() or $grade_item->is_category_item()) {
        $grade_category = $grade_item->get_item_category();
        $url = $CFG->wwwroot . '/grade/edit/tree/category.php?id=' . $grade_category->id . '&courseid=' . $courseid;
        redirect($gpr->add_url_params($url));
    }
    $item = $grade_item->get_record_data();
    $parent_category = $grade_item->get_parent_category();
    $item->parentcategory = $parent_category->id;
} else {
    $heading = get_string('newitem', 'grades');
    $grade_item = new grade_item(array('courseid' => $courseid, 'itemtype' => 'manual'), false);
    $item = $grade_item->get_record_data();
    $parent_category = grade_category::fetch_course_category($courseid);
    $item->parentcategory = $parent_category->id;
}
$decimalpoints = $grade_item->get_decimals();
if ($item->hidden > 1) {
    $item->hiddenuntil = $item->hidden;
    $item->hidden = 0;
} else {
    $item->hiddenuntil = 0;
}
$item->locked = !empty($item->locked);
$item->grademax = format_float($item->grademax, $decimalpoints);
$item->grademin = format_float($item->grademin, $decimalpoints);
$item->gradepass = format_float($item->gradepass, $decimalpoints);
$item->multfactor = format_float($item->multfactor, 4);
Exemple #2
0
            // But if user does change aggregation method the default values should be used.
            // This does not apply to calculated category totals.
            $category->grademax = 100;
            $category->grade_item_grademax = 100;
            $category->grademin = 0;
            $category->grade_item_grademin = 0;
        }
    }
} else {
    $heading = get_string('newcategory', 'grades');
    $grade_category = new grade_category(array('courseid' => $courseid), false);
    $grade_category->apply_default_settings();
    $grade_category->apply_forced_settings();
    $category = $grade_category->get_record_data();
    $grade_item = new grade_item(array('courseid' => $courseid, 'itemtype' => 'manual'), false);
    foreach ($grade_item->get_record_data() as $key => $value) {
        $category->{"grade_item_{$key}"} = $value;
    }
}
$mform = new edit_category_form(null, array('current' => $category, 'gpr' => $gpr));
if ($mform->is_cancelled()) {
    redirect($returnurl);
} else {
    if ($data = $mform->get_data(false)) {
        // If no fullname is entered for a course category, put ? in the DB
        if (!isset($data->fullname) || $data->fullname == '') {
            $data->fullname = '?';
        }
        if (!isset($data->aggregateonlygraded)) {
            $data->aggregateonlygraded = 0;
        }
Exemple #3
0
 /**
  * Create a grade_item.
  *
  * @param array|stdClass $record
  * @return stdClass the grade item record
  */
 public function create_grade_item($record = null)
 {
     global $CFG;
     require_once "{$CFG->libdir}/gradelib.php";
     $this->gradeitemcounter++;
     if (!isset($record['itemtype'])) {
         $record['itemtype'] = 'manual';
     }
     if (!isset($record['itemname'])) {
         $record['itemname'] = 'Grade item ' . $this->gradeitemcounter;
     }
     if (isset($record['outcomeid'])) {
         $outcome = new grade_outcome(array('id' => $record['outcomeid']));
         $record['scaleid'] = $outcome->scaleid;
     }
     if (isset($record['scaleid'])) {
         $record['gradetype'] = GRADE_TYPE_SCALE;
     } else {
         if (!isset($record['gradetype'])) {
             $record['gradetype'] = GRADE_TYPE_VALUE;
         }
     }
     // Create new grade item in this course.
     $gradeitem = new grade_item($record, false);
     $gradeitem->insert();
     $gradeitem->update_from_db();
     return $gradeitem->get_record_data();
 }