function fn_all_mandatory_completed($courseid, &$mods)
{
    global $USER;
    if (isteacheredit($courseid)) {
        return true;
    }
    foreach ($mods as $mod) {
        if ($mod->mandatory && $mod->visible && is_activity_complete($mod, $USER->id) === false) {
            return false;
        }
    }
    return true;
}
 function is_section_finished(&$section)
 {
     global $USER;
     if ($modnums = explode(',', $section->sequence)) {
         foreach ($modnums as $modnum) {
             if (isset($this->mods[$modnum]) && $this->mods[$modnum]->visible) {
                 $act_compl = is_activity_complete($this->mods[$modnum], $USER->id);
                 if ($act_compl === false || is_int($act_compl) && $act_compl < 50 || $act_compl == 'submitted') {
                     return false;
                 }
             }
         }
     }
     return true;
 }