-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(Peer Group): Add teacher endpoint to get work for peer group #50
Merged
geoffreykwan
merged 2 commits into
issue-37-peer-interaction
from
issue-49-add-teacher-endpoint-to-get-work-for-peer-group
Nov 2, 2021
Merged
feat(Peer Group): Add teacher endpoint to get work for peer group #50
geoffreykwan
merged 2 commits into
issue-37-peer-interaction
from
issue-49-add-teacher-endpoint-to-get-work-for-peer-group
Nov 2, 2021
Conversation
This file contains 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
- Extract common test methods to AbstractPeerGroupAPIControllerTest
geoffreykwan
approved these changes
Nov 2, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
geoffreykwan
deleted the
issue-49-add-teacher-endpoint-to-get-work-for-peer-group
branch
November 2, 2021 16:34
geoffreykwan
pushed a commit
that referenced
this pull request
May 13, 2022
* Create domain objects and dao's for PeerGroup #38 (#39) Requires creating new tables in the database (see wise_db_init.sql). Domain objects include PeerGroupActivity and PeerGroup. Add unit tests. * feat(Peer Interaction): Add service method to get PeerGroupActivity (#41) - Add PeerGroupActivityService and getByComponent() method to return PeerGroupActivity for a specific component. - Add supporting classes (ProjectContent, ProjectNode, ProjectComponent) to parse the project JSON. - PeerGroupActivityNotFoundException is thrown if a PeerGroupActivity for the component cannot be found in the database and curriculum content. * feat(Peer Group): Add service method to get/create PeerGroup #42 (#43) - Assumes PeerGrouping logic looks at the same nodeId/componentId - Extracted common hibernate/service test methods to parent. * feat(Peer Group): Add endpoint for getting Peer Group (#45) * feat(Peer Group): Add endpoint to get PeerGroup - Ensure there are at least 2 submissions before pairing * feat(Peer Group): Add endpoint to get PeerGroup - Threshold not met now throws an exception instead of returning null. - Throws PeerGroupCreationException when there are other workgroups to wait for. - Fix issue calculating completion percentage by using float instead of int. * feat(Peer Group): Add endpoint to get PeerGroup - Add id equality test to WorkgroupImpl and PersistentGroup - Changed getNumWorkgroupsInPeerGroup() to get PeerGroup for activity component instead of logic component - Return exception key in ResponseBody * feat(Peer Group): Add endpoint to get StudentWork for PeerGroup (#48) - Also change URL to get PeerGroup to /{runId}/{workgroupId}/{nodeId}/{componentId} * feat(Peer Group): Add teacher endpoint to get work for peer group (#50) * refactor(Peer Group): Move PeerGroupWork api to new class * feat(Peer Group): Add teacher endpoint to get work for PeerGroup - Extract common test methods to AbstractPeerGroupAPIControllerTest * feat(Peer Group): Make PeerGroup with remaining students (#53) - When maxMembershipCount + 1 students have not been pair yet, and everybody else have completed the logic activity, we put them all into the same peer group. - Also updated code to ensure that we only look for workgroups in the same period when pairing students into PeerGroups. * feat(Peer Group): Add teacher endpoint to get PeerGroup info for activity (#58) * feat(Peer Group): Add teacher endpoint to get PeerGroups for activity Requires database change: add periodId bigint field to peer_groups table Closes #57 * feat(PeerGroup): Add teacher endpoint to get PeerGroup info - url: /api/teacher/peer-group-info returns a Map of PeerGroups and workgroups that don't belong in PeerGroups for the specified PeerGroupActivity * Remove PeerGroupActivity from PeerGroup serialization #57 * Exclude HibernateStudentAttendaceDao unit test This test has been known to be finicky, so we decided to exclude from running until we can find time to look into the root cause. * feat(Get Classmate Work): Create endpoint for Peer Chat other work (#63) The other work is the work from a previous component that is shown at the top of the Peer Chat component. Closes #62 * feat(Peer-Chat): Add endpoint to get latest student work for other component * test(Peer-Chat): Fix PeerChatDataControllerTest * feat(Peer-Group): Add teacher endpoint to create peer group * feat(Group): Add GroupRepository * feat(PeerGroup): Add teacher endpoint for creating PeerGroup - Needed to edit APIControllerTest to use the PersistentGroup class type now that we are using DomainConverter to directly pass in objects instead of Long * feat(PeerGroup): Add teacher endpoint for creating PeerGroup - Ensure that requested period is in requested run. - Modified test's period name to distinguish from other periods * feat(Peer-Group): Add teacher endpoint to add member to peer group * feat(Group): Add GroupRepository * feat(PeerGroup): Add teacher endpoint for creating PeerGroup - Needed to edit APIControllerTest to use the PersistentGroup class type now that we are using DomainConverter to directly pass in objects instead of Long * feat(Peer-Chat): Add endpoint to add member to PeerGroup - Added PeerGroupRepository to convert PeerGroupId PathVariables to PeerGroup objects and updated tests to use impl classes. * feat(Peer-Chat): Add endpoint to add member to PeerGroup - Don't allow addMember if requested workgroup does not belong in the run. * fix(Test): Fix a test that was not compiling * feat(Peer Group): Add ability to get manually assigned peer group (#77) * feat(Peer Group): Add ability to get manually assigned peer group If a Peer Activity uses auto assignment and a Peer Group is requested and the Peer Group does not exist, it will automatically be created. If a Peer Activity uses manual assignment and a Peer Group is requested and the Peer Group does not exist, it will not be automatically created. * refactor(PeerGroup): Change PeerGroupServiceHelperTest to extend WISEServiceTest - Renamed PeerGroupServiceHelperTest to PeerGroupServiceTest * feat(PeerGroup): Add teacher endpoint to remove member from PeerGroup * Merge branch: 'get-peer-group-by-tag' into issue-37-peer-interaction * feat(PeerGroup): Add endpoint to get by Tag * feat(PeerGroup): Create PeerGroupActivity from tag in project When a peerGroupActivityTag is added in the project in the authoring tool or if a new run is created from the project that contains the tag, PeerGroupActivities are created for each tag. * refactor(PeerGroup): Use PeerGroupActivityTag to get PeerGroup (#96) * refactor(PeerGroup): Use PeerGroupActivityTag to get PeerGroup - Switch to using the new PeerGroupActivityTag to lookup the PeerGroupActrivity instead of nodeId/componentId. - Add tag column to db init sql - Clean up code * Remove unused exceptions * feat(PeerChat): Group students randomly (#94) * feat(PeerChat): Group students randomly * Improve addMembersRandomly efficiency Removed randomly chosen members from future consideration. * Optimize addMembersRandomly method * refactor(PeerGroup): Pass in domain objects to controllers (#99) * feat(PeerChat): Allow teacher participation - Add endpoint at /api/teacher/run/{runId}/work for teachers to POST work - Add PeerGroupId to StudentWork (requires db update, see below) * refactor(PeerGroupActivity): Remove nodeId and componentId fields - Remove nodeId, componentId fields from PeerGroupActivity - Set PeerGroupActivity.logic field's default value to [{"name":"manual"}] - Remove PeerGroupActivityDao.getByComponent() * feat(Peer Group Activity): Move settings to project level (#108) * refactor(PeerGroupActivityDao): Remove getByComponent() Layers above should now be using getByTag() to look up the PeerGroupActivity. * refactor(PeerGroupActivityImpl): Remove nodeId, componentId fields Also set logic field's default value to [{"name":"manual"}] * Remove nodeId/componentId fields from db init sql * refactor(PeerGroupActivity): Change logic field from JSON array to string (#107) Instead of expressing the logic entirely in the logic field, use the logic field to only store a string from the following: "manual", "random", "custom". * feat(Peer Group Activity): Move settings to project-level - Introduce new "peerGroupActivity" project level field, an array to store PeerGroupActivities in the unit * refactor(Peer Group API): Remove getPeerGroup by component (#110) - This API endpoint has been replaced by getting PeerGroup by Tag * feat(Peer Group Settings): Add endpoint to create and edit (#113) * feat(ACL): Add support for parsing permission string * feat(Peer Group Settings): Add endpoint to create/edit * feat(Peer Group Settings): Remove scan for tags on project save * chore(Peer Grouping): Rename Peer Group Activity to Peer Grouping (#115) * fix(PeerGrouping): Random pairing (#120) - Also remove completion requirement before pairing - Fix tests * fix(Peer Grouping): Create run with Peer Groupings with correct fields (#121) * fix(Peer Grouping): Return bad request when creating duplicate tag * fix(PeerGroup): Don't pair with empty workgroups * fix(Peer Group): Don't count empty workgroups when check if can create
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.
Changes
Note
Test
/api/peer-group/{runId}/{workgroupId}/{nodeId}/{componentId}/student-work
Closes #49