mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-03 22:01:39 +00:00
Display course updates, create group updates
This commit is contained in:
@@ -131,6 +131,7 @@ gam user user@domain.com check|update serviceaccount
|
||||
name|
|
||||
owneremail|
|
||||
ownerid|
|
||||
ownername|
|
||||
room|
|
||||
section|
|
||||
teacherfolder|
|
||||
@@ -431,14 +432,16 @@ gam courses <CourseEntity> update topic <CourseTopicIDEntity> <CourseTopic>
|
||||
|
||||
## Display courses
|
||||
```
|
||||
gam info course <CourseID> [owneremail] [alias|aliases] [show all|students|teachers] [countsonly]
|
||||
gam info course <CourseID>
|
||||
[owneremail] [ownername] [alias|aliases] [show all|students|teachers] [countsonly]
|
||||
[fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>] [formatjson]
|
||||
gam info courses <CourseEntity> [owneremail] [alias|aliases] [show all|students|teachers] [countsonly]
|
||||
gam info courses <CourseEntity>
|
||||
[owneremail] [ownername] [alias|aliases] [show all|students|teachers] [countsonly]
|
||||
[fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>] [formatjson]
|
||||
|
||||
gam print courses [todrive <ToDriveAttribute>*]
|
||||
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] [states <CourseStateList>])
|
||||
[owneremail] [owneremailmatchpattern <REMatchPattern>]
|
||||
[owneremail] [owneremailmatchpattern <REMatchPattern>] [ownername]
|
||||
[alias|aliases|aliasesincolumns [delimiter <Character>]]
|
||||
[show all|students|teachers] [countsonly]
|
||||
[timefilter creationtime|updatetime] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
|
||||
@@ -471,7 +474,9 @@ To get information about courses created/updated within a particular time frame,
|
||||
For the filter to apply, `timefilter` and at least one of `start|starttime` and `end|endtime` must be specified.
|
||||
|
||||
By default, all basic course fields are displayed; use the following options to modify the output.
|
||||
* `owneremail` - Display course owner email; requires an additional API call per course.
|
||||
* `owneremail` - Display course owner email.
|
||||
* `ownername` - Display course owner name.
|
||||
* These options require an additional API call per course.
|
||||
* `alias|aliases` - Display course aliases; all aliases are in the single column `Aliases` separated by a delimiter; requires an additional API call per course.
|
||||
* `delimiter <Character>` - Delimiter between aliases with `print` command.
|
||||
* `aliasesincolumn` - Display course aliases; the `Aliases` column contains the number of aliases and `Aliases.0`, `Aliases.1`, ... contain the individual aliases; requires an additional API call per course.
|
||||
@@ -525,7 +530,8 @@ gam print course-announcements [todrive <ToDriveAttribute>*]
|
||||
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] states <CourseStateList>])
|
||||
(courseannouncementids <CourseAnnouncementIDEntity>)|(announcementstates <CourseAnnouncementStateList>)*
|
||||
(orderby <CourseAnnouncementOrderByFieldName> [ascending|descending])*)
|
||||
[creatoremail] [fields <CourseAnnouncementFieldNameList>]
|
||||
[showcreatoremails|creatoremail] [showcreatornames|creatorname]
|
||||
[fields <CourseAnnouncementFieldNameList>]
|
||||
[timefilter creationtime|updatetime|scheduledtime] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
|
||||
[countsonly] [formatjson [quotechar <Character>]]
|
||||
```
|
||||
@@ -553,7 +559,10 @@ To get information about course announcements created/updated/scheduled within a
|
||||
For the filter to apply, `timefilter` and at least one of `start|starttime` and `end|endtime` must be specified.
|
||||
|
||||
By default, all course announcement fields are displayed; use the following options to modify the output.
|
||||
* `creatoremail` - Display course announcement creator email; requires an additional API call per course announcement.
|
||||
* `creatoremail` - Display course announcement creator email.
|
||||
* `creatorname` - Display course announcement creator name.
|
||||
* These options require an additional API call per course.
|
||||
* `alias|aliases` - Display course aliases; all aliases are in the single column `Aliases` separated by a delimiter; requires an additional API call per course.
|
||||
* `fields <CourseAnnouncementFieldNameList>` - Select specific fields to display.
|
||||
|
||||
Use the `countsonly` option to display the number of announcements in a course but not their details.
|
||||
@@ -573,7 +582,8 @@ gam print course-materials [todrive <ToDriveAttribute>*]
|
||||
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] states <CourseStateList>])
|
||||
(materialids <CourseMaterialIDEntity>)|(materialstates <CourseMaterialStateList>)*
|
||||
(orderby <CourseMaterialOrderByFieldName> [ascending|descending])*)
|
||||
[showcreatoremails|creatoremail] [showtopicnames] [fields <CourseMaterialFieldNameList>]
|
||||
[showcreatoremails|creatoremail] [showcreatornames|creatorname] [showtopicnames]
|
||||
[fields <CourseMaterialFieldNameList>]
|
||||
[timefilter creationtime|updatetime|scheduledtime] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
|
||||
[oneitemperrow]
|
||||
[countsonly] [formatjson [quotechar <Character>]]
|
||||
@@ -602,8 +612,10 @@ By default, all published course materials for a course are displayed; use the f
|
||||
* `materialsstates <CourseMaterialsStateList>` - Display course materials with any of the specified states.
|
||||
|
||||
By default, all course materials fields are displayed; use the following options to modify the output.
|
||||
* `showcreatoremails` - Display course materials creator email; requires an additional API call per course materials.
|
||||
* `showtopicnames` - Display topic names; requires and additional API call per course.
|
||||
* `showcreatoremails|creatoremail` - Display course materials creator email.
|
||||
* `showcreatornames|creatorname` - Display course materials creator name.
|
||||
* These options require an additional API call per course.
|
||||
* `showtopicnames` - Display topic names; requires an additional API call per course.
|
||||
* `fields <CourseMaterialsFieldNameList>` - Select specific fields to display.
|
||||
|
||||
With `print course-materials`, the materials selected for display are all output on one row/line as a repeating item with the other course fields.
|
||||
@@ -669,7 +681,8 @@ gam print course-work [todrive <ToDriveAttribute>*]
|
||||
(course|class <CourseEntity>)*|([teacher <UserItem>] [student <UserItem>] states <CourseStateList>])
|
||||
(workids <CourseWorkIDEntity>)|(workstates <CourseWorkStateList>)*
|
||||
(orderby <CourseWorkOrderByFieldName> [ascending|descending])*)
|
||||
[showcreatoremails] [showtopicnames] [fields <CourseWorkFieldNameList>]
|
||||
[showcreatoremails|creatoremail] [showcreatornames|creatorname] [showtopicnames]
|
||||
[fields <CourseWorkFieldNameList>]
|
||||
[showstudentsaslist [<Boolean>]] [delimiter <Character>]
|
||||
[timefilter creationtime|updatetime|scheduledtime] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>]
|
||||
[oneitemperrow]
|
||||
@@ -699,8 +712,10 @@ By default, all published course work for a course is displayed; use the followi
|
||||
* `workstates <CourseWorkStateList>` - Display course work with any of the specified states.
|
||||
|
||||
By default, all course work fields are displayed; use the following options to modify the output.
|
||||
* `showcreatoremails` - Display course work creator email; requires an additional API call per course work.
|
||||
* `showtopicnames` - Display topic names; requires and additional API call per course.
|
||||
* `showcreatoremails|creatoremail` - Display course materials creator email.
|
||||
* `showcreatornames|creatorname` - Display course materials creator name.
|
||||
* These options require an additional API call per course.
|
||||
* `showtopicnames` - Display topic names; requires an additional API call per course.
|
||||
* `fields <CourseWorkFieldNameList>` - Select specific fields to display.
|
||||
|
||||
By default, when course work is assigned to individual students, the student IDs are displayed in multiple indexed columns.
|
||||
|
||||
@@ -10,6 +10,34 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
||||
|
||||
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
||||
|
||||
### 7.41.02
|
||||
|
||||
Added option `ownername` to `gam info|print courses` to have GAM display the course owners full name;
|
||||
there is an extra API call per course to get the name.
|
||||
|
||||
Added option `creatorname` to `gam print course-announcements|course-materials|course-works` to have
|
||||
GAM display the item creators full name; there is an extra API call per course to get the name.
|
||||
|
||||
After creating a group, it may be sometime, e.g. 30-45 seconds, before members can
|
||||
successfully be added to the group even though the API reported that the group was created.
|
||||
The following options can be used with `gam create group` to verify that the group is actually ready to be updated.
|
||||
This will be most useful in scripts that are used to create and then populate groups.
|
||||
```
|
||||
verifycreationretries <Integer> - Verify group creation, defaults to 0, no verification performed, range 0-20
|
||||
verifycreationinitialdelay <Integer> - Number of seconds to delay before first verification performed, defaults to 5, range 0-60
|
||||
verifycreationretrydelay <Integer> - Number of seconds to delay between verificaton retries, defaults to 5, range 1-60
|
||||
```
|
||||
|
||||
If you have a script that deletes a group and then immediately tries to create a new group with the same email address,
|
||||
you may run into issues. There seems to be a 30-45 second window after the deletion in which a couple
|
||||
of strange errors can occur on the creation: `Resource not found` and `Duplicate`.
|
||||
The following options can be used with `gam create group` to handle these errors. This will be most useful
|
||||
in scripts that are used to delete and then immediately recreate groups.
|
||||
```
|
||||
recentdeleteretries <Integer> - Handle group delete/create errors, defaults to 0, no errors handled, range 0-20
|
||||
recentdeleteretrydelay <Integer> - Number of seconds to delay between retries, defaults to 5, range 1-60
|
||||
```
|
||||
|
||||
### 7.41.01
|
||||
|
||||
Fixed bug in `gam print cigroups members managers owners countsonly totalcount internal external` that caused a trap.
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
- [GUI API Group access type settings mapping](#gui-api-group-access-type-settings-mapping)
|
||||
- [whoCanViewMembership and whoCanDiscoverGroup interactions](#whocanviewmembership-and-whocandiscovergroup-interactions)
|
||||
- [Manage groups](#manage-groups)
|
||||
- [Handle group deletion and immediate recreation](#handle-group-deletion-and-immediate-recreation)
|
||||
- [Verify group creation](#verify-group-creation)
|
||||
- [Update a group's primary email address](#update-a-groups-primary-email-address)
|
||||
- [Update a group's settings with JSON data](#update-a-groups-settings-with-json-data)
|
||||
- [Display information about specific groups](#display-information-about-specific-groups)
|
||||
@@ -350,6 +352,8 @@ These commands allow you to create, update and delete groups.
|
||||
gam create group <EmailAddress>
|
||||
[copyfrom <GroupItem>] <GroupAttribute>*
|
||||
[verifynotinvitable]
|
||||
[recentdeleteretries <Integer>] [recentdeleteretrydelay <Integer>]
|
||||
[verifycreationretries <Integer>] [verifycreationinitialdelay <Integer>] [verifycreationretrydelay <Integer>]
|
||||
gam update group|groups <GroupEntity> [email <EmailAddress>]
|
||||
[updateprimaryemail <RESearchPattern> <RESubstitution> [preview]]
|
||||
[copyfrom <GroupItem>] <GroupAttribute>*
|
||||
@@ -367,6 +371,28 @@ You can update a group to a security group with the `makesecuritygroup` option.
|
||||
|
||||
When deleting and `noactionifalias` is specified, no action is performed if `<GroupEntity>` specifies an alias rather than a primary email address.
|
||||
|
||||
## Handle group deletion and immediate recreation
|
||||
If you have a script that deletes a group and then immediately tries to create a new group with the same email address,
|
||||
you may run into issues. There seems to be a 30-45 second window after the deletion in which a couple
|
||||
of strange errors can occur on the creation: `Resource not found` and `Duplicate`.
|
||||
The following options can be used with `gam create group` to handle these errors. This will be most useful
|
||||
in scripts that are used to delete and then immediately recreate groups.
|
||||
```
|
||||
recentdeleteretries <Integer> - Handle group delete/create errors, defaults to 0, no errors handled, range 0-20
|
||||
recentdeleteretrydelay <Integer> - Number of seconds to delay between retries, defaults to 5, range 1-60
|
||||
```
|
||||
|
||||
## Verify group creation
|
||||
After creating a group, it may be sometime, e.g. 30-45 seconds, before members can
|
||||
successfully be added to the group even though the API reported that the group was created.
|
||||
The following options can be used with `gam create group` to verify that the group is actually ready to be updated.
|
||||
This will be most useful in scripts that are used to create and then populate groups.
|
||||
```
|
||||
verifycreationretries <Integer> - Verify group creation, defaults to 0, no verification performed, range 0-20
|
||||
verifycreationinitialdelay <Integer> - Number of seconds to delay before first verification performed, defaults to 5, range 0-60
|
||||
verifycreationretrydelay <Integer> - Number of seconds to delay between verificaton retries, defaults to 5, range 1-60
|
||||
```
|
||||
|
||||
## Update a group's primary email address
|
||||
You can simply update a group's primary email address with the `email` option.
|
||||
```
|
||||
|
||||
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
|
||||
```
|
||||
gamteam@server:/Users/gamteam$ rm -f /Users/gamteam/GAMConfig/oauth2.txt
|
||||
gamteam@server:/Users/gamteam$ gam version
|
||||
GAM 7.41.01 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM 7.41.02 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.14.4 64-bit final
|
||||
macOS Tahoe 26.4.1 arm64
|
||||
@@ -1034,7 +1034,7 @@ writes the credentials into the file oauth2.txt.
|
||||
```
|
||||
C:\>del C:\GAMConfig\oauth2.txt
|
||||
C:\>gam version
|
||||
GAM 7.41.01 - https://github.com/GAM-team/GAM - pythonsource
|
||||
GAM 7.41.02 - https://github.com/GAM-team/GAM - pythonsource
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.14.4 64-bit final
|
||||
Windows 11 10.0.26200 AMD64
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Print the current version of Gam with details
|
||||
```
|
||||
gam version
|
||||
GAM 7.41.01 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM 7.41.02 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.14.4 64-bit final
|
||||
macOS Tahoe 26.4.1 arm64
|
||||
@@ -15,7 +15,7 @@ Time: 2026-02-15T07:51:00-08:00
|
||||
Print the current version of Gam with details and time offset information
|
||||
```
|
||||
gam version timeoffset
|
||||
GAM 7.41.01 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM 7.41.02 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.14.4 64-bit final
|
||||
macOS Tahoe 26.4.1 arm64
|
||||
@@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second
|
||||
Print the current version of Gam with extended details and SSL information
|
||||
```
|
||||
gam version extended
|
||||
GAM 7.41.01 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM 7.41.02 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.14.4 64-bit final
|
||||
macOS Tahoe 26.4.1 arm64
|
||||
@@ -68,7 +68,7 @@ MacOS High Sierra 10.13.6 x86_64
|
||||
Path: /Users/gamteam/bin/gam7
|
||||
Version Check:
|
||||
Current: 5.35.08
|
||||
Latest: 7.41.01
|
||||
Latest: 7.41.02
|
||||
echo $?
|
||||
1
|
||||
```
|
||||
@@ -76,7 +76,7 @@ echo $?
|
||||
Print the current version number without details
|
||||
```
|
||||
gam version simple
|
||||
7.41.01
|
||||
7.41.02
|
||||
```
|
||||
In Linux/MacOS you can do:
|
||||
```
|
||||
@@ -86,7 +86,7 @@ echo $VER
|
||||
Print the current version of Gam and address of this Wiki
|
||||
```
|
||||
gam help
|
||||
GAM 7.41.01 - https://github.com/GAM-team/GAM
|
||||
GAM 7.41.02 - https://github.com/GAM-team/GAM
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.14.4 64-bit final
|
||||
macOS Tahoe 26.4.1 arm64
|
||||
|
||||
Reference in New Issue
Block a user