Ejemplo n.º 1
0
/**
 * 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;
         }
     }
 }