mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-05 12:13:34 +00:00
Merge pull request #250 from taers232c/branch-3.63
Clean up gam print guardians
This commit is contained in:
@ -647,7 +647,8 @@ gam print course-participants [todrive](course <CourseID>)* [teacher] [student]
|
|||||||
|
|
||||||
gam create guardian|guardianinvite|inviteguardian <EmailAddress> <UserItem>
|
gam create guardian|guardianinvite|inviteguardian <EmailAddress> <UserItem>
|
||||||
gam delete guardian|guardians <GuardianID <UserItem>
|
gam delete guardian|guardians <GuardianID <UserItem>
|
||||||
gam print guardian|guardians [nocsv] [todrive] [invitedguardian <GuardianID>] [student <UserItem>] [invitations] [states <GuardianStateList>] [<UserTypeEntity>]
|
gam show guardian|guardians [invitedguardian <GuardianID>] [student <UserItem>] [invitations] [states <GuardianStateList>] [<UserTypeEntity>]
|
||||||
|
gam print guardian|guardians [todrive] [invitedguardian <GuardianID>] [student <UserItem>] [invitations] [states <GuardianStateList>] [<UserTypeEntity>]
|
||||||
|
|
||||||
gam printer register
|
gam printer register
|
||||||
gam update printer <PrinterID> <PrinterAttributes>+
|
gam update printer <PrinterID> <PrinterAttributes>+
|
||||||
|
81
src/gam.py
81
src/gam.py
@ -2282,72 +2282,71 @@ def doGetDataTransferInfo():
|
|||||||
print u' None'
|
print u' None'
|
||||||
print
|
print
|
||||||
|
|
||||||
def doPrintGuardians():
|
def doPrintShowGuardians(csvFormat):
|
||||||
croom = buildGAPIObject(u'classroom')
|
croom = buildGAPIObject(u'classroom')
|
||||||
invitedEmailAddress = None
|
invitedEmailAddress = None
|
||||||
studentIds = [u'-',]
|
studentIds = [u'-',]
|
||||||
states = None
|
states = None
|
||||||
service = croom.userProfiles().guardians()
|
service = croom.userProfiles().guardians()
|
||||||
items = u'guardians'
|
items = u'guardians'
|
||||||
guardians = []
|
itemName = 'Guardians'
|
||||||
show_csv = True
|
if csvFormat:
|
||||||
csvRows = []
|
csvRows = []
|
||||||
todrive = False
|
todrive = False
|
||||||
titles = []
|
titles = [u'studentEmail', u'studentId', u'invitedEmailAddress', u'guardianId']
|
||||||
i = 3
|
i = 3
|
||||||
while i < len(sys.argv):
|
while i < len(sys.argv):
|
||||||
if sys.argv[i].lower() == u'invitedguardian':
|
myarg = sys.argv[i].lower()
|
||||||
invitedEmailAddress = sys.argv[i+1]
|
if csvFormat and myarg == u'todrive':
|
||||||
i += 2
|
|
||||||
elif sys.argv[i].lower() == u'nocsv':
|
|
||||||
show_csv = False
|
|
||||||
i += 1
|
|
||||||
elif sys.argv[i].lower() == u'todrive':
|
|
||||||
todrive = True
|
todrive = True
|
||||||
i += 1
|
i += 1
|
||||||
elif sys.argv[i].lower() == u'student':
|
elif myarg == u'invitedguardian':
|
||||||
|
invitedEmailAddress = sys.argv[i+1]
|
||||||
|
i += 2
|
||||||
|
elif myarg == u'student':
|
||||||
studentIds = [sys.argv[i+1],]
|
studentIds = [sys.argv[i+1],]
|
||||||
i += 2
|
i += 2
|
||||||
elif sys.argv[i].lower() == u'invitations':
|
elif myarg == u'invitations':
|
||||||
service = croom.userProfiles().guardianInvitations()
|
service = croom.userProfiles().guardianInvitations()
|
||||||
items = u'guardianInvitations'
|
items = u'guardianInvitations'
|
||||||
|
itemName = 'Guardian Invitations'
|
||||||
|
titles = [u'studentEmail', u'studentId', u'invitedEmailAddress', u'invitationId']
|
||||||
if states == None:
|
if states == None:
|
||||||
states = [u'COMPLETE', u'PENDING', u'GUARDIAN_INVITATION_STATE_UNSPECIFIED']
|
states = [u'COMPLETE', u'PENDING', u'GUARDIAN_INVITATION_STATE_UNSPECIFIED']
|
||||||
i += 1
|
i += 1
|
||||||
elif sys.argv[i].lower() == u'states':
|
elif myarg == u'states':
|
||||||
states = sys.argv[i+1].upper().replace(u',', u' ').split()
|
states = sys.argv[i+1].upper().replace(u',', u' ').split()
|
||||||
i += 2
|
i += 2
|
||||||
elif sys.argv[i].lower() in usergroup_types:
|
elif myarg in usergroup_types:
|
||||||
studentIds = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1])
|
studentIds = getUsersToModify(entity_type=myarg, entity=sys.argv[i+1])
|
||||||
i += 2
|
i += 2
|
||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam print guardians"' % sys.argv[i]
|
print u'ERROR: %s is not a valid argument for "gam %s guardians"' % (sys.argv[i], [u'show', u'print'][csvFormat])
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
n = 1
|
i = 0
|
||||||
|
count = len(studentIds)
|
||||||
for studentId in studentIds:
|
for studentId in studentIds:
|
||||||
|
i += 1
|
||||||
kwargs = {u'invitedEmailAddress': invitedEmailAddress, u'studentId': studentId}
|
kwargs = {u'invitedEmailAddress': invitedEmailAddress, u'studentId': studentId}
|
||||||
if items == u'guardianInvitations':
|
if items == u'guardianInvitations':
|
||||||
kwargs[u'states'] = states
|
kwargs[u'states'] = states
|
||||||
if studentId != u'-':
|
if studentId != u'-':
|
||||||
sys.stderr.write('\r')
|
if csvFormat:
|
||||||
sys.stderr.flush()
|
sys.stderr.write('\r')
|
||||||
sys.stderr.write(u'Getting guardians for %s (%s/%s)%s' % (studentId, n, len(studentIds), u' ' * 40))
|
sys.stderr.flush()
|
||||||
student_guardians = callGAPIpages(service, u'list', items=items, soft_errors=True, **kwargs)
|
sys.stderr.write(u'Getting %s for %s%s%s' % (itemName, studentId, currentCount(i, count), u' ' * 40))
|
||||||
# add student email to results since API does not return it
|
guardians = callGAPIpages(service, u'list', items=items, soft_errors=True, **kwargs)
|
||||||
i = 0
|
if not csvFormat:
|
||||||
while i < len(student_guardians):
|
print u'Student: {0}, {1}:{2}'.format(studentId, itemName, currentCount(i, count))
|
||||||
student_guardians[i][u'studentEmail'] = studentId
|
for guardian in guardians:
|
||||||
i += 1
|
print_json(None, guardian, spacing=u' ')
|
||||||
guardians = guardians + student_guardians
|
else:
|
||||||
n += 1
|
for guardian in guardians:
|
||||||
sys.stderr.write(u'\n')
|
guardian[u'studentEmail'] = studentId
|
||||||
if show_csv:
|
addRowTitlesToCSVfile(flatten_json(guardian), csvRows, titles)
|
||||||
for guardian in guardians:
|
if csvFormat:
|
||||||
addRowTitlesToCSVfile(flatten_json(guardian), csvRows, titles)
|
sys.stderr.write(u'\n')
|
||||||
writeCSVfile(csvRows, titles, u'Guardians', todrive)
|
writeCSVfile(csvRows, titles, itemName, todrive)
|
||||||
else:
|
|
||||||
for guardian in guardians:
|
|
||||||
print_json(None, guardian)
|
|
||||||
|
|
||||||
def doInviteGuardian():
|
def doInviteGuardian():
|
||||||
croom = buildGAPIObject(u'classroom')
|
croom = buildGAPIObject(u'classroom')
|
||||||
@ -10817,7 +10816,7 @@ def ProcessGAMCommand(args):
|
|||||||
elif argument in [u'roles', u'adminroles']:
|
elif argument in [u'roles', u'adminroles']:
|
||||||
doPrintAdminRoles()
|
doPrintAdminRoles()
|
||||||
elif argument in [u'guardian', u'guardians']:
|
elif argument in [u'guardian', u'guardians']:
|
||||||
doPrintGuardians()
|
doPrintShowGuardians(True)
|
||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam print"' % argument
|
print u'ERROR: %s is not a valid argument for "gam print"' % argument
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
@ -10826,6 +10825,8 @@ def ProcessGAMCommand(args):
|
|||||||
argument = sys.argv[2].lower()
|
argument = sys.argv[2].lower()
|
||||||
if argument in [u'schema', u'schemas']:
|
if argument in [u'schema', u'schemas']:
|
||||||
doPrintShowUserSchemas(False)
|
doPrintShowUserSchemas(False)
|
||||||
|
elif argument in [u'guardian', u'guardians']:
|
||||||
|
doPrintShowGuardians(False)
|
||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam show"' % argument
|
print u'ERROR: %s is not a valid argument for "gam show"' % argument
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
Reference in New Issue
Block a user