-
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 support for Peer Group activities #111
Merged
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
) - 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 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
- Also change URL to get PeerGroup to /{runId}/{workgroupId}/{nodeId}/{componentId}
* 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
- 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.
…vity (#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.
The other work is the work from a previous component that is shown at the top of the Peer Chat component. Closes #62
* 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(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 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.
…ServiceTest - Renamed PeerGroupServiceHelperTest to PeerGroupServiceTest
* 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 - 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 * Improve addMembersRandomly efficiency Removed randomly chosen members from future consideration. * Optimize addMembersRandomly method
- Add endpoint at /api/teacher/run/{runId}/work for teachers to POST work - Add PeerGroupId to StudentWork (requires db update, see below)
- Remove nodeId, componentId fields from PeerGroupActivity - Set PeerGroupActivity.logic field's default value to [{"name":"manual"}] - Remove PeerGroupActivityDao.getByComponent()
* 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
- This API endpoint has been replaced by getting PeerGroup by Tag
* 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 #112 Co-authored-by: Geoffrey Kwan <[email protected]>
- Also remove completion requirement before pairing - Fix tests
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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.
DB Changes
(These changes are reflected in wise_db_init.sql)