Я нашел этот трекер проблем 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.