/** * To Know status of the activity * * @param mod object * @param userid * @return saved or submitted * @todo Finish documenting this function */ function get_activities_status($course, $section, $resubmission = false) { global $CFG, $USER; require_once $CFG->libdir . '/completionlib.php'; require_once $CFG->dirroot . '/course/lib.php'; $complete = 0; $incomplete = 0; $saved = 0; $notattempted = 0; $waitingforgrade = 0; if ($section->visible) { $modules = get_course_section_mods($course->id, $section->id); $completion = new completion_info($course); if (isset($CFG->enablecompletion) && !empty($completion)) { foreach ($modules as $module) { if (!$module->visible) { continue; } if ($completion->is_enabled($course = null, $module)) { $data = $completion->get_data($module, false, $USER->id, null); $completionstate = $data->completionstate; //grab assignment status $assignement_status = is_saved_or_submitted($module, $USER->id, $resubmission); if ($completionstate == 0) { // if completion=0 then it may be saved or submitted if ($module->module == '1' && ($module->modname == 'assignment' || $module->modname == 'assign') && $module->completion == '2' && $assignement_status) { if (isset($assignement_status)) { if ($assignement_status == 'saved') { $saved++; } else { if ($assignement_status == 'submitted') { $notattempted++; } else { if ($assignement_status == 'waitinggrade') { $waitingforgrade++; } } } } else { $notattempted++; } } else { $notattempted++; } } elseif ($completionstate == 1 || $completionstate == 2) { if ($module->module == 1 && ($module->modname == 'assignment' || $module->modname == 'assign') && $module->completion == 2 && $assignement_status) { if (isset($assignement_status)) { if ($assignement_status == 'saved') { $saved++; } else { if ($assignement_status == 'submitted') { $complete++; } else { if ($assignement_status == 'waitinggrade') { $waitingforgrade++; } } } } else { $complete++; } } else { $complete++; } } elseif ($completionstate == 3) { if ($module->module == 1 && ($module->modname == 'assignment' || $module->modname == 'assign') && $module->completion == 2 && $assignement_status) { if (isset($assignement_status)) { if ($assignement_status == 'saved') { $saved++; } else { if ($assignement_status == 'submitted') { $incomplete++; } else { if ($assignement_status == 'waitinggrade') { $waitingforgrade++; } } } } else { $incomplete++; } } else { $incomplete++; } } } } $array["complete"] = "{$complete}"; $array["incomplete"] = "{$incomplete}"; $array["saved"] = "{$saved}"; $array["notattempted"] = "{$notattempted}"; $array["waitngforgrade"] = "{$waitingforgrade}"; return $array; } } }
function is_section_finished(&$section, $mods) { global $USER, $course; $completioninfo = new completion_info($course); $modules = get_course_section_mods($course->id, $section->id); $count = 0; if (count($modules) >= 1) { foreach ($modules as $modu) { $completiondata = $completioninfo->get_data($modu, true); // oncampus if ($completiondata->completionstate == 1 || $completiondata->completionstate == 2) { if ($modu->id == 15) { //print_object($modu); //echo 'completionstate: '.$completiondata->completionstate; } if ($completiondata->completionstate == 2) { $count++; } } if ($count == count($modules)) { return true; } else { return false; } } }