mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-10 14:43:34 +00:00
Add owneremail option to print courses (#757)
This commit is contained in:
@ -64,7 +64,7 @@ If an item contains spaces, it should be surrounded by ".
|
|||||||
Google-Coordinate|
|
Google-Coordinate|
|
||||||
Google-Drive-storage|
|
Google-Drive-storage|
|
||||||
Google-Vault|
|
Google-Vault|
|
||||||
101031
|
101001|101005|101031
|
||||||
<SKUID> ::=
|
<SKUID> ::=
|
||||||
cloudidentity|identity|1010010001|
|
cloudidentity|identity|1010010001|
|
||||||
cloudidentitypremium|identitypremium|1010050001|
|
cloudidentitypremium|identitypremium|1010050001|
|
||||||
@ -1013,8 +1013,9 @@ gam create course id|alias <CourseAlias> <CourseAttributes>*
|
|||||||
gam update course <CourseID> <CourseAttributes>+
|
gam update course <CourseID> <CourseAttributes>+
|
||||||
gam delete course <CourseID>
|
gam delete course <CourseID>
|
||||||
gam info course <CourseID>
|
gam info course <CourseID>
|
||||||
gam print courses [todrive] [teacher <UserItem>] [student <UserItem>] [states <CourseStateList>] [alias|aliases] [delimiter <Character>]
|
gam print courses [todrive] [teacher <UserItem>] [student <UserItem>] [states <CourseStateList>]
|
||||||
[show all|students|teachers] [countsonly] [fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>]
|
[owneremail] [alias|aliases] [delimiter <Character>] [show all|students|teachers] [countsonly]
|
||||||
|
[fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>]
|
||||||
|
|
||||||
gam course <CourseID> add alias <CourseAlias>
|
gam course <CourseID> add alias <CourseAlias>
|
||||||
gam course <CourseID> delete alias <CourseAlias>
|
gam course <CourseID> delete alias <CourseAlias>
|
||||||
|
17
src/gam.py
17
src/gam.py
@ -2493,11 +2493,9 @@ def doPrintCourses():
|
|||||||
skipFieldsList = []
|
skipFieldsList = []
|
||||||
titles = [u'id',]
|
titles = [u'id',]
|
||||||
csvRows = []
|
csvRows = []
|
||||||
teacherId = None
|
ownerEmails = studentId = teacherId = None
|
||||||
studentId = None
|
|
||||||
courseStates = []
|
courseStates = []
|
||||||
showAliases = False
|
countsOnly = showAliases = False
|
||||||
countsOnly = False
|
|
||||||
delimiter = u' '
|
delimiter = u' '
|
||||||
showMembers = u''
|
showMembers = u''
|
||||||
i = 3
|
i = 3
|
||||||
@ -2537,13 +2535,24 @@ def doPrintCourses():
|
|||||||
elif myarg == u'skipfields':
|
elif myarg == u'skipfields':
|
||||||
_processFieldsList(myarg, i, skipFieldsList)
|
_processFieldsList(myarg, i, skipFieldsList)
|
||||||
i += 2
|
i += 2
|
||||||
|
elif myarg == u'owneremail':
|
||||||
|
ownerEmails = {}
|
||||||
|
cd = buildGAPIObject(u'directory')
|
||||||
|
i += 1
|
||||||
else:
|
else:
|
||||||
systemErrorExit(2, '%s is not a valid argument for "gam print courses"' % sys.argv[i])
|
systemErrorExit(2, '%s is not a valid argument for "gam print courses"' % sys.argv[i])
|
||||||
|
if ownerEmails is not None and fieldsList:
|
||||||
|
fieldsList.append(u'ownerId')
|
||||||
fields = u'nextPageToken,courses({0})'.format(u','.join(set(fieldsList))) if fieldsList else None
|
fields = u'nextPageToken,courses({0})'.format(u','.join(set(fieldsList))) if fieldsList else None
|
||||||
printGettingAllItems(u'Courses', None)
|
printGettingAllItems(u'Courses', None)
|
||||||
page_message = u'Got %%num_items%% Courses...\n'
|
page_message = u'Got %%num_items%% Courses...\n'
|
||||||
all_courses = callGAPIpages(croom.courses(), u'list', u'courses', page_message=page_message, teacherId=teacherId, studentId=studentId, courseStates=courseStates, fields=fields)
|
all_courses = callGAPIpages(croom.courses(), u'list', u'courses', page_message=page_message, teacherId=teacherId, studentId=studentId, courseStates=courseStates, fields=fields)
|
||||||
for course in all_courses:
|
for course in all_courses:
|
||||||
|
if ownerEmails is not None:
|
||||||
|
ownerId = course[u'ownerId']
|
||||||
|
if ownerId not in ownerEmails:
|
||||||
|
ownerEmails[ownerId] = convertUIDtoEmailAddress(u'uid:%s' % ownerId, cd=cd)
|
||||||
|
course[u'ownerEmail'] = ownerEmails[ownerId]
|
||||||
for field in skipFieldsList:
|
for field in skipFieldsList:
|
||||||
course.pop(field, None)
|
course.pop(field, None)
|
||||||
addRowTitlesToCSVfile(flatten_json(course), csvRows, titles)
|
addRowTitlesToCSVfile(flatten_json(course), csvRows, titles)
|
||||||
|
Reference in New Issue
Block a user