Say which class a text came from, and which texts a class hides - #719
Merged
Conversation
Two halves of the same gap, found when our pilot teacher asked whether he had to leave one class in order to see another's texts. He did not -- but nothing in the app told him that, because a student's classroom is a merged list with no provenance. - cohort_articles_for_user tags each text with the classes it came from. A text shared with two of the student's classes still appears once, naming both. The client shows the tag only to a student who has more than one class. - /cohort_text_overview reports the languages its texts are in again. Nothing stops a text in another language being shared with a class, and its students then never see it: they only ever get the texts in the language they are learning. Seven classes are in that state today, holding 32 texts between them, and 54 students have texts in their class they cannot open. The teacher is the one who can fix it, so the count goes to them rather than to the students. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
ArchLens - No architecturally relevant changes to the existing views |
get_cohort_info stringified it, alone among the endpoints that carry a cohort
id -- Article's `shared_with` and the classroom's `from_classes` both send an
int. So the same class arrived with two different identifiers depending on
which endpoint you asked, and code that matched one against the other silently
matched nothing.
That was not hypothetical: the share dialog builds its {id, name} objects from
/cohorts_info while a reloaded texts list gets them from /teacher_texts, so a
class shared during a session and the same class after a refresh produced two
separate filter chips.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two halves of the same gap, found when our pilot teacher asked whether he had to leave one class in order to see another's texts. He didn't — but nothing in the app told him so, because a student's classroom is a merged list with no provenance.
cohort_articles_for_usertags each text with its classfrom_classes: [{id, name}]per article. A text shared with two of the student's classes still appears once, naming both. The client shows the tag only to a student who has more than one class (zeeguu/web#PENDING)./cohort_text_overviewreports its texts' languages againNothing stops a text in another language being shared with a class, and its students then never see it — they only ever get the texts in the language they're learning.
Checked against production:
So it's latent rather than burning — but it is silent in both directions today. The teacher is the only person who can fix it, so the count goes to them (on the class Texts tab) rather than to the students, whose only "fix" would be to switch out of the language they chose.
Tests
3 new (
test_cohort_article_attribution.py), covering the tag, a text in two of the student's classes appearing once with both names, and off-language texts still being filtered out.Deploy before the web side; without it
from_classesis absent and the tag simply doesn't render.