Repository navigation
feat(TeacherPresentation): Ideas and Discussions - #365
Merged
Merged
Conversation
… handling and configuration methods
…acher presentation config
This was referenced Oct 19, 2026
… IDs in DAO and service layer
… DiscussionItem objects
…pes and validation
…initial table creation schema (V3)
hirokiterashima
marked this pull request as ready for review
October 20, 2026 18:58
breity
approved these changes
Oct 20, 2026
Member
Author
|
🎉 This PR is included in version 1.27.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
Overview
This PR adds backend support and persistence for the Teacher Presentation classroom display feature (WISE-Client #2359).
It provides endpoints, domain entities, and polymorphic payload validation to persist teachers' curated presentation configurations across runs, periods, nodes, and components for both Discussion and Student Ideas (Open Response and Dialog Guidance).
Key Features & Changes
1. Database Migrations
V3__create_teacher_presentation_tables.sql: Createsteacher_presentation_configtable with unique constraint on(runId, periodId, nodeId, componentId).2. Domain Model (
TeacherPresentationConfig.java)runId,periodId,nodeId,componentId,componentTypetype:DiscussionorIdeas(@Column(name = "\type`")`)items: JSON array storing either Discussion work IDs ([{"studentWorkId": 101}]) or categorized Ideas ([{"ideaId": "...", "responses": [...]}])studentNamesDisplay:show,hide, oranonymizeshowComponentPrompt:boolean(toggle display of original question)prompt: Custom presentation prompt override (nullable)updatedByWorkgroup,createdAt,updatedAt3. Service Layer (
TeacherPresentationConfigService)validateAndNormalizeDiscussionItems: Validates student work IDs against database and verifies run/period ownership.validateAndNormalizeIdeasItems: Validates idea IDs (<= 100 chars), total responses (<= 500), student work ownership, and text snapshot lengths (truncated to 2,000 chars).TypeReference.4. REST Controller (
TeacherPresentationConfigAPIController)GET /api/teacher/presentation-config: Retrieves existing configuration for a period component, or returns sensible defaults if unconfigured.PUT /api/teacher/presentation-config: Saves updated presentation settings.isAllowedToViewStudentWork,isAllowedToGradeStudentWork).ConfigRequestandConfigResponsetyped withString type.Testing & Verification
TeacherPresentationConfigAPIControllerTest: Covers authorization, validation, Discussion payloads, Ideas payloads, default fallbacks, and error scenarios.TeacherPresentationConfigServiceImplTest: Covers item limits, prompt length validation, student work run/period checks, and Ideas response normalization.HibernateTeacherPresentationConfigDaoTest: Verifies DB query semantics and constraints.mvn clean compile test-compile).