mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-10 14:43:34 +00:00
Add countsonly option to gam print courses to get student/teacher counts without full profiles (#473)
* Add countsonly option to gam print courses * When countsonly is true, only get ids, not full profile * Update documentation
This commit is contained in:
17
src/gam.py
17
src/gam.py
@ -2064,6 +2064,8 @@ def doPrintCourses():
|
||||
jcount = len(participants)
|
||||
course[role] = jcount
|
||||
addTitlesToCSVfile([role], titles)
|
||||
if countsOnly:
|
||||
return
|
||||
j = 0
|
||||
for member in participants:
|
||||
memberTitles = []
|
||||
@ -2096,6 +2098,7 @@ def doPrintCourses():
|
||||
teacherId = None
|
||||
studentId = None
|
||||
showAliases = False
|
||||
countsOnly = False
|
||||
delimiter = u' '
|
||||
showMembers = u''
|
||||
i = 3
|
||||
@ -2113,6 +2116,9 @@ def doPrintCourses():
|
||||
elif myarg in [u'alias', u'aliases']:
|
||||
showAliases = True
|
||||
i += 1
|
||||
elif myarg == u'countsonly':
|
||||
countsOnly = True
|
||||
i += 1
|
||||
elif myarg == u'delimiter':
|
||||
delimiter = sys.argv[i+1]
|
||||
i += 2
|
||||
@ -2144,6 +2150,13 @@ def doPrintCourses():
|
||||
if showAliases or showMembers:
|
||||
if showAliases:
|
||||
titles.append(u'Aliases')
|
||||
if showMembers:
|
||||
if countsOnly:
|
||||
teachersFields = u'nextPageToken,teachers(profile(id))'
|
||||
studentsFields = u'nextPageToken,students(profile(id))'
|
||||
else:
|
||||
teachersFields = u'nextPageToken,teachers(profile)'
|
||||
studentsFields = u'nextPageToken,students(profile)'
|
||||
i = 0
|
||||
count = len(csvRows)
|
||||
for course in csvRows:
|
||||
@ -2160,13 +2173,13 @@ def doPrintCourses():
|
||||
teacher_message = u' got %%%%num_items%%%% teachers for course %s%s' % (courseId, currentCount(i, count))
|
||||
results = callGAPIpages(croom.courses().teachers(), u'list', u'teachers',
|
||||
page_message=teacher_message,
|
||||
courseId=courseId, fields=u'nextPageToken,teachers(profile)')
|
||||
courseId=courseId, fields=teachersFields)
|
||||
_saveParticipants(course, results, u'teachers')
|
||||
if showMembers != u'teachers':
|
||||
student_message = u' got %%%%num_items%%%% students for course %s%s' % (courseId, currentCount(i, count))
|
||||
results = callGAPIpages(croom.courses().students(), u'list', u'students',
|
||||
page_message=student_message,
|
||||
courseId=courseId, fields=u'nextPageToken,students(profile)')
|
||||
courseId=courseId, fields=studentsFields)
|
||||
_saveParticipants(course, results, u'students')
|
||||
sortCSVTitles([u'id', u'name'], titles)
|
||||
writeCSVfile(csvRows, titles, u'Courses', todrive)
|
||||
|
Reference in New Issue
Block a user