Skip to content

Commit 8bcfa25

Browse files
authored
Merge pull request #346 from NationalSecurityAgency/4.3.X
4.3.x
2 parents d93b618 + 3eb53a7 commit 8bcfa25

13 files changed

Lines changed: 89 additions & 9 deletions

File tree

cypress/e2e/admin.cy.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,7 @@ context('Admin: Generate Screenshots', () => {
429429
})
430430

431431
it('Gen Expiration Settings page', () => {
432+
cy.intercept('/public/isFeatureSupported?feature=emailservice', 'true');
432433
cy.visit('/administrator/projects/movies/subjects/Action/skills/TheMatrix/config-expiration')
433434
cy.snap('page-expiration-config', '[data-cy="nav"]')
434435
})
@@ -755,11 +756,17 @@ context('Admin: Generate Screenshots', () => {
755756

756757
cy.get('[data-cy="userCell_bob1@email.org"]')
757758
cy.snap('page-global-badge-access')
759+
})
758760

761+
it('page - global badges users', () => {
762+
cy.intercept('/admin/badges/MoviesandShowsExpertBadge/users**').as('getUsers')
759763
cy.visit('/administrator/globalBadges/MoviesandShowsExpertBadge/users')
764+
cy.wait('@getUsers')
765+
cy.get('[data-cy="users-skillIdFilter"]').type('uid{enter}')
766+
cy.wait('@getUsers')
760767
cy.get('[data-cy="usersTable"]').contains('Levels')
761768
cy.get('[data-cy="usersTable"] [data-pc-name="pcrowperpagedropdown"]')
762-
.click().get('[data-pc-section="option"]').contains('5').click();
769+
.click().get('[data-pc-section="option"]').contains('5').click();
763770
cy.snap('page-global-badge-users')
764771
})
765772

cypress/e2e/progress-and-ranking.cy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ context('Progress and Ranking: Generate Screenshots', () => {
188188
cy.get('[data-cy="myQuizAttemptsTable"] [data-cy="skillsBTableTotalRows"]').should('have.text', '9')
189189
cy.snap('page-my-quiz-attempts');
190190

191-
cy.get('[data-cy="myQuizAttemptsTable"] [data-p-index="0"] a').click()
191+
cy.get('[data-cy="myQuizAttemptsTable"] [data-p-index="0"] [data-cy="viewQuizAttempt"]').click()
192192
cy.snap('page-my-quiz-single-attempt');
193193
})
194194

docs/dashboard/user-guide/global-badges.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,12 @@ The Badge Progress column shows:
5454
The User Progress Table offers filtering, sorting, and export capabilities to help you analyze user performance. You can:
5555
- Filter by user ID, first name, and last name using the User Filter
5656
- Sort any column by clicking its header
57-
-
57+
- Export table data to Excel by clicking the Export button in the top right
58+
59+
::: tip
60+
Filters are applied to the exported data.
61+
:::
62+
5863
## Creating Global Badges
5964

6065
### Step 1: Create a New Badge

docs/dashboard/user-guide/skills-catalog.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ To import skills please follow these steps:
3434

3535
1. **Import one or more skills** - skills will be disabled; disabled skills do not contribute to the overall points and skill occurrences do not propagate to the imported skills prior to import finalization (step 3)
3636
2. *(Optional)* **Adjust imported skills' ``Point Increment``** to match your project's point system/layout
37-
3. **Finalize imported skills** - user points from the original project are migrated and level achievements are calculated. After finalization, user points and achievements against the original exported skill will continue toi be propagated to the imported copy as they take place.
37+
3. **Finalize imported skills** - user points from the original project are migrated and level achievements are calculated. After finalization, user points and achievements against the original exported skill will continue to be propagated to the imported copy as they take place.
3838

3939
Catalog Skills can be easily imported by navigating to the subject's page (``Project -> Subject``)
4040
and clicking the ``Import`` button on the top right. The import dialog allows users to locate, select and
@@ -93,6 +93,13 @@ The Finalization process exists to protect importing projects from premature lev
9393
Please note that the finalization process is expensive and may take several minutes to complete.
9494
:::
9595

96+
::: tip User Progress Filtering
97+
After skills are finalized, user progress tables will feature an **"Exclude Users that only earned points in imported skills"** toggle switch.
98+
When enabled, only users who have earned at least one point in native (non-imported) skills will be displayed in the progress tables.
99+
This filtering capability allows administrators to easily distinguish between users who have made progress specifically in their project's original skills versus those whose progress comes from a combination of both local and imported achievements.
100+
The toggle switch state is saved in the browser's local storage and will persist as you navigate between user progress tables for the overall project, subjects, skills, or badges.
101+
:::
102+
96103
## Good To Know
97104

98105
This section will cover several features and inner-workings of the Skills Catalog.

docs/dashboard/user-guide/skills.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,30 @@ The default option for all skills is set to `Never`, so that the skill will neve
141141

142142
The `Yearly` and `Monthly` options allow for the skill to be configured to expire on a recurring basis. For example, you can configure a skill so that *all* user's points and achievements earned for this skill will be removed annually on December 31st.
143143

144-
The `Daily with the ability to retain` option allows for the skill to be configured to expire based on usage. This option requires the user to continue to exercise the skill after achieving it in order to avoid losing their points. Once a user achieves the skill,
145-
the user must perform the skill at least once within the number of days configured. After performing the skill, the "timer" will be reset and the user will once again be required to perform the skill within the configured number of days to avoid losing the points they have earned since achieving this skill.
144+
The `Daily with the ability to retain` option configures skills to expire based on user activity. After achieving this skill, users must continue performing it within the configured number of days to maintain their points. Each time the skill is performed, the timer resets, requiring users to repeat the skill within the specified timeframe to keep their earned points."
145+
146+
### Expiration Notifications
146147

147148
Skills that are configured to expire will have warnings visualized in the Skills Display, letting the user know when the skill will is set to expire.
148149

150+
Additionally, you can enable email notifications to alert users when their skills are about to expire or have expired. The `Email Notifications Enabled` checkbox allows you to:
151+
152+
- Send automatic email notifications to users when their skills are approaching expiration
153+
- Provide users with advance warning so they can take action to maintain their skill achievements
154+
- Ensure users stay informed about the status of their expiring skills
155+
156+
When enabled, users will receive different types of email notifications based on the expiration configuration:
157+
158+
For skills configured with `Monthly` or `Yearly` expiration, users receive notifications **after** their achievements have expired. These notifications inform users that their skill achievements have been removed and provide information about the next scheduled expiration date.
159+
160+
For skills configured with `Daily with ability to retain`, users receive **warning notifications** before their achievements expire. These notifications:
161+
- Are sent when a user's achievement is approaching expiration
162+
- Include the number of days remaining until expiration
163+
- Provide a retention deadline so users can take action to maintain their achievements
164+
- Are only sent once per expiration cycle to avoid notification fatigue
165+
166+
This differentiated approach ensures users receive timely and relevant notifications based on their skill expiration configuration.
167+
149168
### Expiration History
150169

151170
A history of skills that have been expired can be viewed from the `Skill Expiration History` table on the `Project` page.
@@ -337,7 +356,7 @@ to learn more please visit the [Self Reporting](/dashboard/user-guide/self-repor
337356
## Move Skills
338357
Move Skills is a feature that allows project administrators to move skills to other subjects or skill groups within the same project.
339358
When skills are moved, users' points are preserved for those skills and level-based achievements are
340-
properly re-calculted for both origination and destination subject/group.
359+
properly re-calculated for both origination and destination subject/group.
341360

342361
::: tip
343362
The ability to move skills between subjects gives project administrators gives project administrators the ability to refine their training profile after the initial creation of skills.

docs/dashboard/user-guide/users.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,26 @@ The User Progress Table offers filtering, sorting, and export capabilities to he
2525

2626
- Filter by user ID, first name, and last name using the User Filter
2727
- Filter by minimum and maximum user progress percentage using the User Progress filter
28+
- *"Exclude Users that only earned points in imported skills"* toggle switch - only shown when there are [Skill Catalog](/dashboard/user-guide/skills-catalog.html#importing-skills) imported skills.
2829
- Sort any column by clicking its header
2930
- Export table data to Excel by clicking the Export button in the top right
3031

3132
::: tip
3233
Note that the export will respect any currently applied filters.
3334
:::
3435

36+
##### Progress Table with Imported Skills
37+
38+
If the project has imported and finalized skills from the [Skill Catalog](/dashboard/user-guide/skills-catalog.html#importing-skills), user progress tables will feature an **"Exclude Users that only earned points in imported skills"** toggle switch.
39+
When enabled, only users who have earned at least one point in native (non-imported) skills will be displayed in the progress tables.
40+
41+
This filtering capability allows administrators to easily distinguish between users who have made progress specifically in their project's original skills versus those whose progress comes from a combination of both local and imported achievements.
42+
43+
::: tip
44+
The toggle switch state is saved in the browser's local storage and will persist as you navigate between user progress tables for the overall project, subjects, skills, or badges.
45+
:::
46+
47+
3548
### Users Archive
3649

3750
Users can be archived and restored in batches or individually. Archived users are excluded from project visualizations, metrics, and tables.

docs/release-notes/skills-service.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,19 @@ To obtain deployable artifacts please visit [Distributions](/dashboard/install-g
88

99
</conditional>
1010

11+
## 4.3
12+
<release-date date="April 2026" />
13+
- **Quiz Experience Enhancements**
14+
- **[Project Association Visibility](/training-participation/training-portfolio.html#quizzes-and-surveys-history)** - Enhanced My Quiz Attempts table and single attempt pages to display project associations with navigation back to the originating skill
15+
- **Try Again Functionality** - Added "Try Again" button on quiz-attempt pages when quizzes are failed and additional attempts remain available
16+
- **[Native Skills Filter](/dashboard/user-guide/users.html#progress-table-with-imported-skills)** - Added filter to project Users pages to display only users with points from native (non-imported) skills, with toggle option to show/hide imported points and achievements
17+
- **[Automated Email Notifications](/dashboard/user-guide/skills.html#expiration-notifications)**
18+
- **Expiration Reminders** - Automated email notifications to remind users when skills with daily expiration settings are approaching expiration
19+
- **Expiration Notifications** - Email notifications to inform users when monthly or yearly expiration skills have passed their expiration date and achievements were removed
20+
- **Skill Page Navigation** - Added Previous/Next skill navigation buttons to the bottom of trainee skill pages for easier progression through training content
21+
- **[Global Badge Export](/dashboard/user-guide/global-badges.html#filters-sorting-and-export)** - Implemented Excel export functionality for the Global Badge users table, including all visible columns and respecting applied filters
22+
- **Character Limit Indicators** - Added character limit feedback for better user experience when entering plain multi-line text content
23+
- **Bug Fixes**
1124

1225
## 4.2
1326
<release-date date="March 2026" />
8.18 KB
Loading
-8.04 KB
Loading
55.5 KB
Loading

0 commit comments

Comments
 (0)