Пример #1
0
	function getCourseGrade($studentId,$courseId)
	{
$resultkrb = grade_get_course_grades(4, $userid_or_ids=null);
var_dump($resultkb);
//$grd = $resultkrb->grades[$user->id]; 
//echo $grd->str_grade;
	}
Пример #2
0
//get student enrolled courses

//checking if the user is a student,then getting enrolled courses
if(user_has_role_assignment($USER->id, 5)){

    $enrolledcourses =enrol_get_users_courses($USER->id);
    $no_courses=count($enrolledcourses);

    $totalgrade=0;
    $total_watchlisted=getAllWatchlistCountByUser($USER->id);

    //var_dump($enrolledcourses);
    foreach($enrolledcourses as $key => $value){
        if(is_object($value)){
            $studentenrolledcourses[$value->id]=$value->fullname;
            $c_grade = grade_get_course_grades($value->id, $USER->id);
//var_dump($resultkrb);
            $grd = $c_grade->grades[$USER->id];
            $grd=$grd->grade;
            $totalgrade=$totalgrade+$grd;
//Watchlist
//$watchlist=getStatus($USER->id,$value->id);
//$total_watchlisted=$total_watchlisted+$watchlist;
        }
    }
    /************* FINDING MEAN GRADE ****************/
    if($totalgrade!=0)
    {
        $meangrade= $totalgrade/$no_courses;
    }
Пример #3
0
 /**
  * Returns student course total grade and grades for activities.
  * This function does not return category or manual items.
  * This function is suitable for managers or teachers not students.
  *
  * @param  int $courseid        Course id
  * @param  string $component    Component name
  * @param  int $activityid      Activity id
  * @param  array  $userids      Array of user ids
  * @return array                Array of grades
  * @since Moodle 2.7
  * @deprecated Moodle 3.2 MDL-51373 - Please do not call this function any more.
  * @see gradereport_user_external::get_grade_items for a similar function
  */
 public static function get_grades($courseid, $component = null, $activityid = null, $userids = array())
 {
     global $CFG, $USER, $DB;
     $params = self::validate_parameters(self::get_grades_parameters(), array('courseid' => $courseid, 'component' => $component, 'activityid' => $activityid, 'userids' => $userids));
     $gradesarray = array('items' => array(), 'outcomes' => array());
     $coursecontext = context_course::instance($params['courseid']);
     try {
         self::validate_context($coursecontext);
     } catch (Exception $e) {
         $exceptionparam = new stdClass();
         $exceptionparam->message = $e->getMessage();
         $exceptionparam->courseid = $params['courseid'];
         throw new moodle_exception('errorcoursecontextnotvalid', 'webservice', '', $exceptionparam);
     }
     require_capability('moodle/grade:viewhidden', $coursecontext);
     $course = $DB->get_record('course', array('id' => $params['courseid']), '*', MUST_EXIST);
     $access = false;
     if (has_capability('moodle/grade:viewall', $coursecontext)) {
         // Can view all user's grades in this course.
         $access = true;
     } else {
         if ($course->showgrades && count($params['userids']) == 1) {
             // Course showgrades == students/parents can access grades.
             if ($params['userids'][0] == $USER->id and has_capability('moodle/grade:view', $coursecontext)) {
                 // Student can view their own grades in this course.
                 $access = true;
             } else {
                 if (has_capability('moodle/grade:viewall', context_user::instance($params['userids'][0]))) {
                     // User can view the grades of this user. Parent most probably.
                     $access = true;
                 }
             }
         }
     }
     if (!$access) {
         throw new moodle_exception('nopermissiontoviewgrades', 'error');
     }
     $itemtype = null;
     $itemmodule = null;
     $iteminstance = null;
     if (!empty($params['component'])) {
         list($itemtype, $itemmodule) = normalize_component($params['component']);
     }
     $cm = null;
     if (!empty($itemmodule) && !empty($params['activityid'])) {
         if (!($cm = get_coursemodule_from_id($itemmodule, $params['activityid']))) {
             throw new moodle_exception('invalidcoursemodule');
         }
         $iteminstance = $cm->instance;
     }
     // Load all the module info.
     $modinfo = get_fast_modinfo($params['courseid']);
     $activityinstances = $modinfo->get_instances();
     $gradeparams = array('courseid' => $params['courseid']);
     if (!empty($itemtype)) {
         $gradeparams['itemtype'] = $itemtype;
     }
     if (!empty($itemmodule)) {
         $gradeparams['itemmodule'] = $itemmodule;
     }
     if (!empty($iteminstance)) {
         $gradeparams['iteminstance'] = $iteminstance;
     }
     if ($activitygrades = grade_item::fetch_all($gradeparams)) {
         $canviewhidden = has_capability('moodle/grade:viewhidden', context_course::instance($params['courseid']));
         foreach ($activitygrades as $activitygrade) {
             if ($activitygrade->itemtype != 'course' and $activitygrade->itemtype != 'mod') {
                 // This function currently only supports course and mod grade items. Manual and category not supported.
                 continue;
             }
             $context = $coursecontext;
             if ($activitygrade->itemtype == 'course') {
                 $item = grade_get_course_grades($course->id, $params['userids']);
                 $item->itemnumber = 0;
                 $grades = new stdClass();
                 $grades->items = array($item);
                 $grades->outcomes = array();
             } else {
                 $cm = $activityinstances[$activitygrade->itemmodule][$activitygrade->iteminstance];
                 $instance = $cm->instance;
                 $context = context_module::instance($cm->id, IGNORE_MISSING);
                 $grades = grade_get_grades($params['courseid'], $activitygrade->itemtype, $activitygrade->itemmodule, $instance, $params['userids']);
             }
             // Convert from objects to arrays so all web service clients are supported.
             // While we're doing that we also remove grades the current user can't see due to hiding.
             foreach ($grades->items as $gradeitem) {
                 // Switch the stdClass instance for a grade item instance so we can call is_hidden() and use the ID.
                 $gradeiteminstance = self::get_grade_item($course->id, $activitygrade->itemtype, $activitygrade->itemmodule, $activitygrade->iteminstance, 0);
                 if (!$canviewhidden && $gradeiteminstance->is_hidden()) {
                     continue;
                 }
                 // Format mixed bool/integer parameters.
                 $gradeitem->hidden = empty($gradeitem->hidden) ? 0 : $gradeitem->hidden;
                 $gradeitem->locked = empty($gradeitem->locked) ? 0 : $gradeitem->locked;
                 $gradeitemarray = (array) $gradeitem;
                 $gradeitemarray['grades'] = array();
                 if (!empty($gradeitem->grades)) {
                     foreach ($gradeitem->grades as $studentid => $studentgrade) {
                         if (!$canviewhidden) {
                             // Need to load the grade_grade object to check visibility.
                             $gradegradeinstance = grade_grade::fetch(array('userid' => $studentid, 'itemid' => $gradeiteminstance->id));
                             // The grade grade may be legitimately missing if the student has no grade.
                             if (!empty($gradegradeinstance) && $gradegradeinstance->is_hidden()) {
                                 continue;
                             }
                         }
                         // Format mixed bool/integer parameters.
                         $studentgrade->hidden = empty($studentgrade->hidden) ? 0 : $studentgrade->hidden;
                         $studentgrade->locked = empty($studentgrade->locked) ? 0 : $studentgrade->locked;
                         $studentgrade->overridden = empty($studentgrade->overridden) ? 0 : $studentgrade->overridden;
                         if ($gradeiteminstance->itemtype != 'course' and !empty($studentgrade->feedback)) {
                             list($studentgrade->feedback, $studentgrade->feedbackformat) = external_format_text($studentgrade->feedback, $studentgrade->feedbackformat, $context->id, $params['component'], 'feedback', null);
                         }
                         $gradeitemarray['grades'][$studentid] = (array) $studentgrade;
                         // Add the student ID as some WS clients can't access the array key.
                         $gradeitemarray['grades'][$studentid]['userid'] = $studentid;
                     }
                 }
                 if ($gradeiteminstance->itemtype == 'course') {
                     $gradesarray['items']['course'] = $gradeitemarray;
                     $gradesarray['items']['course']['activityid'] = 'course';
                 } else {
                     $gradesarray['items'][$cm->id] = $gradeitemarray;
                     // Add the activity ID as some WS clients can't access the array key.
                     $gradesarray['items'][$cm->id]['activityid'] = $cm->id;
                 }
             }
             foreach ($grades->outcomes as $outcome) {
                 // Format mixed bool/integer parameters.
                 $outcome->hidden = empty($outcome->hidden) ? 0 : $outcome->hidden;
                 $outcome->locked = empty($outcome->locked) ? 0 : $outcome->locked;
                 $gradesarray['outcomes'][$cm->id] = (array) $outcome;
                 $gradesarray['outcomes'][$cm->id]['activityid'] = $cm->id;
                 $gradesarray['outcomes'][$cm->id]['grades'] = array();
                 if (!empty($outcome->grades)) {
                     foreach ($outcome->grades as $studentid => $studentgrade) {
                         if (!$canviewhidden) {
                             // Need to load the grade_grade object to check visibility.
                             $gradeiteminstance = self::get_grade_item($course->id, $activitygrade->itemtype, $activitygrade->itemmodule, $activitygrade->iteminstance, $activitygrade->itemnumber);
                             $gradegradeinstance = grade_grade::fetch(array('userid' => $studentid, 'itemid' => $gradeiteminstance->id));
                             // The grade grade may be legitimately missing if the student has no grade.
                             if (!empty($gradegradeinstance) && $gradegradeinstance->is_hidden()) {
                                 continue;
                             }
                         }
                         // Format mixed bool/integer parameters.
                         $studentgrade->hidden = empty($studentgrade->hidden) ? 0 : $studentgrade->hidden;
                         $studentgrade->locked = empty($studentgrade->locked) ? 0 : $studentgrade->locked;
                         if (!empty($studentgrade->feedback)) {
                             list($studentgrade->feedback, $studentgrade->feedbackformat) = external_format_text($studentgrade->feedback, $studentgrade->feedbackformat, $context->id, $params['component'], 'feedback', null);
                         }
                         $gradesarray['outcomes'][$cm->id]['grades'][$studentid] = (array) $studentgrade;
                         // Add the student ID into the grade structure as some WS clients can't access the key.
                         $gradesarray['outcomes'][$cm->id]['grades'][$studentid]['userid'] = $studentid;
                     }
                 }
             }
         }
     }
     return $gradesarray;
 }
Пример #4
0
    <tbody>
END;
$html='';
//summary report
foreach($studentenrolledcourses as $courseid => $coursename)
{
    $html.=html_writer::start_tag('tr');
    $html.=html_writer::start_tag('td',array('align'=>'left'));
    $html.=$coursename;
    $html.=html_writer::end_tag('td');
    $html.=html_writer::start_tag('td',array('align'=>'center'));
    //
    $activities=get_array_of_activities($courseid) ;
    /***** GETTING GRADE OF STUDENT BASED **/
    $grade_r = grade_get_course_grades($courseid, $USER->id);
//var_dump($resultkrb);
    $grdc = $grade_r->grades[$USER->id];
    $coursegrd=$grdc->grade+0.00;

    // var_dump($activities);
    foreach($activities as $key1 => $value1){
        if(is_object($value1)){
            if (($value1->mod == 'vpl') || ($value1->mod == 'quiz')) {
                $act[$value1->name] = $value1->mod;
                $actid[$value1->name] = $value1->cm;
            }
        }
    }
    // var_dump($act);
Пример #5
0
function getGradeByCourse($students,$courseId,$rank)
 {

           global $DB;  
               
             
                        $result= array( );
                                 //    var_dump($students);
                        foreach ($students as $student) 
                        {
                            
                      

$grade_r = grade_get_course_grades($courseId, $student->id);
//var_dump($resultkrb);
$grd = $grade_r->grades[$student->id]; 
$grd=$grd->grade;

$watchlist=getStatus($student->id,$courseId);
if(empty($watchlist)){
$watchlist=0;
}
                                          
                                            $userobj = get_complete_user_data(id, $student->id);

if(empty($userobj->profile['rollno']))
$userobj->profile['rollno']="--";
if(empty($userobj->firstname))
$userobj->firstname="--";
if(empty($userobj->profile['eamcetrank']))
$userobj->profile['eamcetrank']="--";
if(empty($userobj->profile['dept']))
$userobj->profile['dept']="--";
if(empty($userobj->profile['section']))
$userobj->profile['section']="--";



      /*******************geting students only based on rank
      **************************************************/

                                            if(empty($rank)){//if he didnt select rank
                                                if ($grd==null||$grd=="") {

                                                            // $result['a']="hii";

$result[$userobj->profile['rollno']]=array( 'rollno'=>$userobj->profile['rollno'],

'firstname'=> $userobj->firstname,
'grade'=>"No grade",
'gt'=>"notgraded",

'rank'=>$userobj->profile['eamcetrank'],
'dept'=>$userobj->profile['dept'] ,
'section'=>$userobj->profile['section'] ,

'watchlist'=>$watchlist );

                                 }                    
 else
                                                      {
//$result['b']="hii";

$result[$userobj->profile['rollno']]=array( 'rollno'=>$userobj->profile['rollno'],
'firstname'=> $userobj->firstname,
'grade'=>$grd+0,
'gt'=>"graded",
'rank'=>$userobj->profile['eamcetrank'],

'dept'=>$userobj->profile['dept'] ,
'section'=>$userobj->profile['section'] ,

'watchlist'=>$watchlist);

                                                      }
                                                                                             
                        
                                                        
                                     
                        
                                            }
                                            else
                                              //selects a rank range
                                            {
                                            $rankArr= explode(":", $rank);
for ($i=1;$i<count($rankArr);$i++)
{
 $rankRange=explode("-", $rankArr[$i]);
  $r=$userobj->profile['eamcetrank'];
if($rankRange[1]=='above')
{
$con=$r>=$rankRange[0];
}
else
{
$con=($r>=$rankRange[0])&&($r<=$rankRange[1]);
}
  if($con) // true
  {
                                                if ($grd==null||$grd=="") {

                                                            // $result['a']="hii";


$result[$userobj->profile['rollno']]=array( 'rollno'=>$userobj->profile['rollno'],

'firstname'=> $userobj->firstname,
'grade'=>"No grade",
'gt'=>"notgraded",

'rank'=>$userobj->profile['eamcetrank'],
'dept'=>$userobj->profile['dept'] ,
'section'=>$userobj->profile['section'] ,

'watchlist'=>$watchlist );

                                 }                    
 else
                                                      {
//$result['b']="hii";

$result[$userobj->profile['rollno']]=array( 'rollno'=>$userobj->profile['rollno'],
'firstname'=> $userobj->firstname,
'grade'=>$grd+0,
'gt'=>"graded",
'rank'=>$userobj->profile['eamcetrank'],

'dept'=>$userobj->profile['dept'] ,
'section'=>$userobj->profile['section'] ,

'watchlist'=>$watchlist );

                                                      }
                                                                                             
                        
                                                        
                                     
                        }
                        }}
                        }
                         return $result;
}
Пример #6
0
                    $html.=$course->fullname;
                    $html.=html_writer::end_tag('td');
                    $activities=get_array_of_activities($course->id) ;

      foreach($activities as $key1 => $value1){
        if(is_object($value1)){
            if (($value1->mod == 'vpl') || ($value1->mod == 'quiz')) {
                $act[$value1->name] = $value1->mod;
                $actid[$value1->name] = $value1->cm;
            }
        }
    }
                    

                    // getting course average grade
                    $grade_r = grade_get_course_grades($course->id, $USER->id);// courseid studentid
                    $grd = $grade_r->grades[$USER->id]; //student id
                    $cgrd=$grd->str_grade;
                    $tgrade+=$cgrd;
                    $vpl=0;$quiz=0;
                    foreach($act as $key2 => $value2){
        if($value2=='vpl'){
            $countlabs=$countlabs+1;
            $getvplinstance=$DB->get_field_sql("SELECT `instance`
FROM `mdl_course_modules`
WHERE `id` ='$actid[$key2]'
AND `course` ='$courseid'");

            $submissions=$DB->get_fieldset_sql("SELECT  `datesubmitted`
FROM `mdl_vpl_submissions`
WHERE `vpl` ='$getvplinstance'
Пример #7
0
 public static function get_final_grade_by_course_id($courseId, $roleId)
 {
     // no MOODLE não temos factories
     // obtemos os acessores diretamente via variaveis globais
     global $CFG;
     require_once $CFG->dirroot . '/grade/lib.php';
     require_once $CFG->dirroot . '/grade/querylib.php';
     require_once $CFG->dirroot . '/user/lib.php';
     // para trabalhar com as grades de notas precisa-se ter
     // as seguintes habilidades:
     // * moodle/grade:export
     // * gradeexprt/txt:view
     // primeiro pego o contexto do sistema com base no usuário corrente
     $context = get_context_instance(CONTEXT_SYSTEM);
     // então verifico as abilidades uma a uma
     require_capability('moodle/grade:export', $context);
     require_capability('gradeexport/txt:view', $context);
     // neste ponto se verifica os parametros informados estão corretos
     // e dentro do exigido pela função
     // observe que solicitei os parametros como sendo do tipo inteiro
     // diretamente sem que sejam algum tipo de estrutura. Isto facilita
     // o acesso aos parametros,
     $funcParams = self::validate_parameters(self::get_final_grade_by_course_id_parameters(), array('courseId' => $courseId, 'roleId' => $roleId));
     if (MDEBUG) {
         mDebug_log($funcParams, 'Parametros da Função');
     }
     $usersIds = array();
     $context = get_context_instance(CONTEXT_COURSE, $funcParams['courseId']);
     $role = new stdClass();
     $role->id = $roleId;
     $users = get_users_from_role_on_context($role, $context);
     if (MDEBUG) {
         mDebug_log($users);
     }
     $usersIds = array();
     foreach ($users as $user) {
         $usersIds[] = $user->userid;
     }
     if (MDEBUG) {
         mDebug_log($usersIds, 'Ids dos Usuários');
     }
     // OK, agora que está tudo ok, consulto no banco de dados a nota
     // do usuário conforme o curso
     $grades = grade_get_course_grades($funcParams['courseId'], $usersIds);
     if (MDEBUG) {
         mDebug_log($grades, 'Grades');
     }
     // TODO, estudar melhorias neste retorno.
     foreach ($grades->grades as $userId => $grade) {
         $result = array();
         if ($grade === false) {
             $result['grade'] = grade_floatval(-9999);
         } else {
             if ($grade === null) {
                 $result['grade'] = grade_floatval(-8888);
             } else {
                 $result['grade'] = grade_floatval($grade->grade);
             }
         }
         $result['userId'] = $userId;
         $results[] = $result;
     }
     if (MDEBUG) {
         mDebug_log($results, 'Grades finais a serem enviadas');
     }
     return $results;
 }