ресурс для общей взвешенной оценки или категории присвоения не может быть найден - PullRequest
0 голосов
/ 06 января 2020

Я просмотрел различные ресурсы для курсовой работы и не могу найти указанные c категории. WorkType просто вернет, что это задание, но нет категории, которую я настроил для этого задания, чтобы присвоить оценки.

Также я попытался проверить, есть ли сохраненное значение для общей взвешенной оценки для каждого учащегося, но также не могу найти эту запись. Это может быть автоматически сгенерировано на основе расчетов категории / класса и помещено в каждый слот при загрузке страницы.

Любая помощь с этим будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 января 2020

Я нашел этот трекер проблем post , нет прямой функции для получения средней оценки для каждого учащегося. Как вы можете прочитать в ответе Google, это можно сделать путем программирования с помощью API.

В этом случае оно заключается в переборе courseWork.studentSubmissions . Ответ возвращает, помимо прочего, ресурс studentSubmissions, который сгруппирован по каждому заданию и их соответствующие submissionHistory.

. Вы должны получить каждый assignedGrade и сделать среднее для каждого учащегося. Например:

  var courseWorks = Classroom.Courses.CourseWork.list(courseId);
  var courseWorkIds = [], list_Grades = [];

  var list_Students = Classroom.Courses.Students.list(courseId).students;
  var list_Topics = Classroom.Courses.Topics.list(courseId).topic;

  for (var i = 0; i < courseWorks.courseWork.length; i++){

    courseWorkIds.push(courseWorks.courseWork[i].id);  

    var topicId = courseWorks.courseWork[i].topicId;
    getSubmissions(courseId, courseWorks.courseWork[i].id, list_Grades, topicId);

  }
 getAverage(list_Grades, list_Students, list_Topics);
}  

function getAverage(list_Grades, list_Students, list_Topics){

  for (var r = 0; r < list_Students.length; r++){

    Logger.log("===================================");
    Logger.log("Student: " + list_Students[r].userId);
    Logger.log("===================================");
    for (var s = 0; s < list_Topics.length; s++){
      var total = 0;
      var counter = 0;
      Logger.log("Topic: " + list_Topics[s].name);

      for (var t = 0; t < list_Grades.length; t++){

        if (list_Topics[s].topicId == list_Grades[t].topicId && list_Students[r].userId == list_Grades[t].studentId){

          total += list_Grades[t].grade;
          counter++;
        }

      }
      Logger.log("Average: " + (total / counter));
    }
  }
}

function getSubmissions(courseId, courseWorkId, list_Grades, topicId){

  var list_submissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, courseWorkId).studentSubmissions;

  for (var j = 0; j < list_submissions.length; j++){

    var subs = Classroom.Courses.CourseWork.StudentSubmissions.get(courseId, courseWorkId, list_submissions[j].id);

    list_Grades.push(new Grades(topicId, subs.assignedGrade, subs.userId));

  }
}

function Grades(topicId, grade, studentId){
  this.topicId = topicId;
  this.grade = grade;
  this.studentId = studentId;

}

С помощью идентификатора учащегося вы можете получить остальную информацию, например, имя или адрес электронной почты.

Вам также необходимо авторизовать области действия: https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/classroom.topics.readonly https://www.googleapis.com/auth/classroom.rosters

Ссылки:

Примечание: Это создает среднюю оценку для каждого ученика и топи c.

...