From ac266d9f690097f7f18725b679e700c4be6045d8 Mon Sep 17 00:00:00 2001 From: sherif-olaboye <123654949+sherif-olaboye@users.noreply.github.com> Date: Tue, 28 Apr 2026 09:13:38 +0100 Subject: [PATCH] TD-6954 Resolving issue observed during testing --- .../CompetencyAssessments.cs | 16 ++++++++-------- .../SelectOptionalCompetenciesViewModel.cs | 12 ++++++++++++ .../ManageCompetencyAssessment.cshtml | 2 +- .../ManageOptionalCompetencies.cshtml | 8 ++++---- .../SelectOptionalCompetencies.cshtml | 10 +++------- .../SetMinimumOptionalCompetencies.cshtml | 3 ++- .../SetOptionalCompetencyLearnerPrompt.cshtml | 2 +- 7 files changed, 31 insertions(+), 22 deletions(-) diff --git a/DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessments.cs b/DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessments.cs index db3602b90c..44f03b0bf7 100644 --- a/DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessments.cs +++ b/DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessments.cs @@ -638,7 +638,7 @@ public IActionResult ViewSelectedCompetencies(ViewSelectedCompetenciesFormData m return RedirectToAction("ManageCompetencyAssessment", new { competencyAssessmentId = model.ID }); } [HttpGet] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/Manage")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/Manage")] public IActionResult ManageOptionalCompetencies(int competencyAssessmentId) { var adminId = GetAdminID(); @@ -656,7 +656,7 @@ public IActionResult ManageOptionalCompetencies(int competencyAssessmentId) return View(model); } [HttpPost] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/Manage")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/Manage")] public IActionResult ManageOptionalCompetencies(ViewSelectedCompetenciesFormData model) { if (model.TaskStatus == null) @@ -667,7 +667,7 @@ public IActionResult ManageOptionalCompetencies(ViewSelectedCompetenciesFormData return RedirectToAction("ManageCompetencyAssessment", new { competencyAssessmentId = model.ID }); } [HttpGet] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/Select")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/Select")] public IActionResult SelectOptionalCompetencies(int competencyAssessmentId) { var adminId = GetAdminID(); @@ -685,7 +685,7 @@ public IActionResult SelectOptionalCompetencies(int competencyAssessmentId) return View(model); } [HttpPost] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/Select")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/Select")] public IActionResult SelectOptionalCompetencies(SelectOptionalCompetenciesFormData model) { if (!ModelState.IsValid) @@ -704,7 +704,7 @@ public IActionResult SelectOptionalCompetencies(SelectOptionalCompetenciesFormDa return RedirectToAction("ManageOptionalCompetencies", new { competencyAssessmentId = model.ID }); } [HttpGet] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/SetMinimum")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/SetMinimum")] public IActionResult SetMinimumOptionalCompetencies(int competencyAssessmentId) { var adminId = GetAdminID(); @@ -717,7 +717,7 @@ public IActionResult SetMinimumOptionalCompetencies(int competencyAssessmentId) return View("SetMinimumOptionalCompetencies", viewModel); } [HttpPost] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/SetMinimum")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/SetMinimum")] public IActionResult SetMinimumOptionalCompetencies(SetMinimumOptionalCompetenciesFormData model) { if (!ModelState.IsValid) @@ -732,7 +732,7 @@ public IActionResult SetMinimumOptionalCompetencies(SetMinimumOptionalCompetenci return RedirectToAction("ManageOptionalCompetencies", new { competencyAssessmentId = model.ID }); } [HttpGet] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/LearnerPrompt")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/LearnerPrompt")] public IActionResult SetOptionalCompetencyLearnerPrompt(int competencyAssessmentId) { var adminId = GetAdminID(); @@ -745,7 +745,7 @@ public IActionResult SetOptionalCompetencyLearnerPrompt(int competencyAssessment return View("SetOptionalCompetencyLearnerPrompt", viewModel); } [HttpPost] - [Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Optional/LearnerPrompt")] + [Route("/CompetencyAssessments/{competencyAssessmentId}/{vocabularyPlural}/Optional/LearnerPrompt")] public IActionResult SetOptionalCompetencyLearnerPrompt(SetOptionalCompetencyLearnerPromptFormData model) { if (!ModelState.IsValid) diff --git a/DigitalLearningSolutions.Web/ViewModels/CompetencyAssessments/SelectOptionalCompetenciesViewModel.cs b/DigitalLearningSolutions.Web/ViewModels/CompetencyAssessments/SelectOptionalCompetenciesViewModel.cs index 351758007d..a9ffbffecd 100644 --- a/DigitalLearningSolutions.Web/ViewModels/CompetencyAssessments/SelectOptionalCompetenciesViewModel.cs +++ b/DigitalLearningSolutions.Web/ViewModels/CompetencyAssessments/SelectOptionalCompetenciesViewModel.cs @@ -25,5 +25,17 @@ public SelectOptionalCompetenciesViewModel(CompetencyAssessmentBase competencyAs public string VocabularySingular { get; set; } public string VocabularyPlural { get; set; } public IEnumerable>? CompetencyGroups { get; set; } + public string GetGroupLabel(string? key) + { + if (string.IsNullOrWhiteSpace(key)) return ""; + + if (string.IsNullOrWhiteSpace(VocabularyPlural)) + return key; + var keyLower = key.ToLower(); + var vocab = VocabularyPlural.ToLower(); + if (keyLower.Contains(vocab) || keyLower.Contains("proficiencies")) + return key; + return $"{key} {vocab}"; + } } } diff --git a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageCompetencyAssessment.cshtml b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageCompetencyAssessment.cshtml index 3bf534a2c7..f2352da936 100644 --- a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageCompetencyAssessment.cshtml +++ b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageCompetencyAssessment.cshtml @@ -178,7 +178,7 @@ else {
- + Manage optional @Model.VocabularyPlural.ToLower()
diff --git a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageOptionalCompetencies.cshtml b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageOptionalCompetencies.cshtml index 16847d0bab..9a86061d83 100644 --- a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageOptionalCompetencies.cshtml +++ b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/ManageOptionalCompetencies.cshtml @@ -15,7 +15,7 @@
  1. Self-assessments
  2. Manage self-assessment
  3. -
  4. Optional Competencies
  5. +
  6. Optional @Model.VocabularyPlural.ToLower()

Back to manage self-assessment

@@ -62,7 +62,7 @@ @if (Model.UserRole > 1) {
- Change optional @Model.VocabularyPlural.ToLower() + Change optional @Model.VocabularyPlural.ToLower()
} @@ -78,7 +78,7 @@ @if (Model.UserRole > 1) {
- Change minimum optional @Model.VocabularyPlural.ToLower() + Change minimum optional @Model.VocabularyPlural.ToLower()
} @@ -92,7 +92,7 @@ @if (Model.UserRole > 1) {
- Change learner prompt + Change learner prompt
} diff --git a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SelectOptionalCompetencies.cshtml b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SelectOptionalCompetencies.cshtml index 3a25a712f8..3192a51ca8 100644 --- a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SelectOptionalCompetencies.cshtml +++ b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SelectOptionalCompetencies.cshtml @@ -15,7 +15,7 @@
  1. Self-assessments
  2. Manage self-assessment
  3. -
  4. Optional Competencies
  5. +
  6. Optional @Model.VocabularyPlural.ToLower()

Back to manage self-assessment

@@ -27,7 +27,7 @@ @Model.CompetencyAssessmentName - Select optional competencies + Select optional @Model.VocabularyPlural.ToLower()

@@ -49,15 +49,11 @@ @competencyGroup.Key - -

- @competencyGroup.Key -

@foreach (var competency in competencyGroup) diff --git a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetMinimumOptionalCompetencies.cshtml b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetMinimumOptionalCompetencies.cshtml index 50f889e42f..8d671f073a 100644 --- a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetMinimumOptionalCompetencies.cshtml +++ b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetMinimumOptionalCompetencies.cshtml @@ -15,7 +15,7 @@
  1. Self-assessments
  2. Manage self-assessment
  3. -
  4. Optional Competencies
  5. +
  6. Optional @Model.VocabularyPlural.ToLower()

Back to manage self-assessment

@@ -45,6 +45,7 @@ +
diff --git a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetOptionalCompetencyLearnerPrompt.cshtml b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetOptionalCompetencyLearnerPrompt.cshtml index b12274d2bf..9c6c27728c 100644 --- a/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetOptionalCompetencyLearnerPrompt.cshtml +++ b/DigitalLearningSolutions.Web/Views/CompetencyAssessments/SetOptionalCompetencyLearnerPrompt.cshtml @@ -16,7 +16,7 @@
  1. Self-assessments
  2. Manage self-assessment
  3. -
  4. Optional Competencies
  5. +
  6. Optional @Model.VocabularyPlural.ToLower()

Back to manage self-assessment