Status Update
Comments
ro...@gmail.com <ro...@gmail.com> #2
cb...@google.com <cb...@google.com> #3
In my opinion, at least one of the two should change with regards to the behavior of Excusing an assignment:
1. Any original score returned to the student should be erased from the submission entirely. This should make the returned grade empty/null, so the API response does not need any special indicator for an excused grade.
2. If a returned grade should still be associated with a submission (but not count towards the overall grade like the Google Classroom UI calculates), then this same flag/indicator should be exposed via the API so that a similar overall grade calculation can be performed from the API response.
ro...@gmail.com <ro...@gmail.com> #4
Thanks for providing feedback around supporting excused assignments in the Classroom API! I've made a note of your comments and transferred them internally. Any updates about this will be communicated here.
db...@gmail.com <db...@gmail.com> #5
We are an SIS that consumes Classroom data via the API.
What we are observing:
- we don't get StudentSubmissions where student was never scored and was excused, so parents are confused thinking that work is not done when it should be excused when looking in our platform.
- When a student is scored, grades are synced, then excused, we don't get the update that the assignment was excused. So now the student has a score (0 or otherwise) that doesn't reflect what's in Google Classroom, creating discrepancies between Classroom assignment grades and SIS assignment grades.
sa...@gmail.com <sa...@gmail.com> #6
Thanks for providing supporting feedback. I'd love to learn a bit more about your comment:
"we don't get StudentSubmissions where student was never scored and was excused, so parents are confused thinking that work is not done when it should be excused when looking in our platform."
Can you provide more information on the API call you are making here so I can try to figure out the issue? I'm not able to reproduce this at the moment; when reading student submissions by calling ListStudentSubmissions, I'm able to retrieve submissions that are marked as excused in the UI.
"When a student is scored, grades are synced, then excused, we don't get the update that the assignment was excused. So now the student has a score (0 or otherwise) that doesn't reflect what's in Google Classroom, creating discrepancies between Classroom assignment grades and SIS assignment grades."
Trying to understand this issue a bit further - if I understand correctly, there may be grade discrepancies between Classroom and SIS in the event that a teacher modifies a grade after the grades have been synced with the SIS. Do you have a mechanism today by which you monitor these types of grade changes? If not, is being alerted about excused assignments more important than other types of submission changes?
cb...@google.com <cb...@google.com> #7
We use a platform (Schoolytics) that mines the data from Classroom via the API to give parents and students updates and reports about their students' progress. Unfortunately, excused assignments (e.g. because the student was not yet enrolled at our school) are being misidentified as missing.
We use Aeries as our SIS and gradebooks.
au...@gmail.com <au...@gmail.com> #8
However, I am not sure if there is some other situation when {} gets added to the `submissionHistory` as well and thus breaking this workaround. I did not encounter any other situation when this happens.
UPDATE: As noticed by 34...@gmail.com, marking solution as complete by the teacher also adds empty object which breaks this solution unfortunately.
sa...@gmail.com <sa...@gmail.com> #9
ne...@gmail.com <ne...@gmail.com> #10
pa...@gmail.com <pa...@gmail.com> #11
To revive it, I had ChatGPT look at this important issue, and effectively stumped it. Specifically, I gave it quite a bit of output from the log consisting of paired assignment/submission objects in JSON. I manually marked the EXCUSED entries and asked it to compare these to the unmarked ones to find patterns helpful for detecting excused assignments programmatically. I thought ChatGPT's (rather bleak) assessment was pretty spot on, so I'll share:
Short Answer: Unfortunately, Google Classroom’s API does not expose “Excused” in its returned data, even though Classroom’s front-end UI does let a teacher mark certain student assignments “Excused.” There is no separate field
excused
in the JSON you receive.Because of that, there’s no sure-fire pattern in the API data alone (e.g. grade = 0 or missing) that tells you “this was marked as Excused in Classroom.” The only way to see that directly is from the teacher’s perspective in the web UI, or by manually adding your own flag in any software you build around the Classroom API.
Why We Can’t Detect “Excused” from the Classroom API
- Google’s Docs Omit Excused The official Classroom API docs don’t mention any field to store or return an “Excused” status. The states we can see are things like
CREATED
,TURNED_IN
, orRETURNED
, plus numeric grades ordraftGrade
, but “Excused” never appears as a separate field.- No Hints in the JSON If you look over the raw JSON for each submission, you’ll notice no consistent or even hidden property that flips from false to true for “excused.” Some submissions have no grades, others do. Some are turned in, others aren’t—none of it correlates reliably to “excused.”
- Google’s UI vs. Under-the-Hood The Classroom GUI is effectively toggling an internal “excused” marker that Google does not share in the public API. This is similar to how some SIS features in Classroom do not appear in the standard data feed.
Bottom Line
Right now, the official Classroom API simply does not expose the “Excused” status. Your only options are to keep tagging “excused” in your own records—or file a feature request with Google to add it to the Classroom API. But there is no built-in field or pattern in the raw submission JSON that reveals whether a teacher checked the “Excused” box in the Classroom web interface.`
My bottom line: Seems like a pretty simple solution to add a boolean attribute to the submission object called Excused
.
ed...@gmail.com <ed...@gmail.com> #12
sb...@fss.cc <sb...@fss.cc> #13
lm...@google.com <lm...@google.com> #14
See information about Stroke Type in the Shapes Guide here:
See the release notes here:
See the blog post here:
sb...@fss.cc <sb...@fss.cc> #15
Do you plan add spans style like in iOS SDK?
lm...@google.com <lm...@google.com> #16
Also, please follow along on the existing feature request for spans:
ya...@gmail.com <ya...@gmail.com> #17
ma...@gmail.com <ma...@gmail.com> #18
Turned up build output to verbose and seeing something now.
Still not seeing anything _useful_ in the Console though...
Really I am just saying - aapt DOES CRASH on my very vanilla Win XP ADT setup. (As in Windows XP pops a dialogue and tries to send an Error Report to Microsoft).
I can reproduce it if anyone wants me to try anything further.
With verbose build output, below is the last bit of what I see:
Notice the fragmented output line "(new"
Interestingly, it seems to process the implicated menu fine earlier, but blows later amidst unrelated .wav files...
<Lots before this, then: >
...
[2013-11-21 17:39:55 - MyApp] (new resource id say50 from C:\AndroidDev\EclipseWorkspace\MyApp\res\raw\say50.wav)
[2013-11-21 17:39:57 - MyApp] (new
[2013-11-21 17:39:57 - MyApp] 'aapt' error. Pre Compiler Build aborted.
[2013-11-21 17:39:57 - MyApp] Starting full Package build.
[2013-11-21 17:39:57 - MyApp] Using default Build Tools revision 19.0.0
Description