Skip to content

Conversation

@mannat2634
Copy link

Description

This PR migrates the student Groups List state from legacy CoffeeScript/AngularJS to TypeScript/Angular. This move completes the transition of the student-facing group management interface to the modern Angular framework.

The state has been updated to sit under the projects2 parent state, inheriting the project data via the standard project$ observable pattern used across the repository. This resolved initial TypeError issues by ensuring that the component only renders once the unit data has been successfully resolved.

Key Changes:

  • Removed legacy projects/states/groups/groups.coffee and groups.tpl.html.
  • Defined the projects/groups state in doubtfire.states.ts as a child of projects2.
  • Updated ProjectGroupsComponent and its template to handle the project$ observable resolve, matching the architecture of the ProjectDashboardComponent.
  • Unlinked the doubtfire.projects.states.groups module from the AngularJS bootstrap process.

Fixes # (migration)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

The migration was verified by testing the end-to-end workflow between Staff and Student roles:

  1. Admin Setup: Logged in as a Convenor, navigated to Unit Administration -> Groups, and created a new Group Set with student-creation enabled.
  2. Student Navigation: Logged in as a Student, selected the subject from the Home Page, and used the header task dropdown to select Groups List.
  3. Data Verification: Confirmed the new Angular route loaded correctly at #/projects2/:id/groups.
  4. Functional Testing: Verified the student can see existing groups, create a new group, and click Join to successfully enter a group.
  5. Edge Case Testing: Navigated to a unit with no Group Sets enabled and verified the "No Group Work" placeholder message and icon were displayed.

Screenshots

Before Migration (AngularJS)

image

After Migration (Angular) - Groups Enabled

image image

After Migration (Angular) - No Groups

image

Testing Checklist:

  • Tested in latest Chrome
  • Tested in latest Safari
  • Tested in latest Firefox

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code in hard-to-understand areas
  • My changes generate no new warnings
  • I have requested a review from @macite and @jakerenzella on the Pull Request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant