Skip to content

Commit d456967

Browse files
committed
TD-483 Begins to implement the select framework page
1 parent caacce6 commit d456967

File tree

6 files changed

+108
-6
lines changed

6 files changed

+108
-6
lines changed

DigitalLearningSolutions.Data/DataServices/CompetencyAssessmentDataService.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,15 @@ FROM SelfAssessmentStructure AS sas INNER JOIN
655655
public IEnumerable<BaseFramework> GetLinkedFrameworksForCompetencyAssessment(int competencyAssessmentId)
656656
{
657657
return connection.Query<BaseFramework>(
658-
@"SELECT f.ID, f.FrameworkName, f.OwnerAdminID, f.Owner, f.BrandID, f.CategoryID, f.TopicID, f.CreatedDate, f.PublishStatusID, f.UpdatedByAdminID, f.UpdatedBy, f.UserRole, f.FrameworkReviewID
658+
@"SELECT f.ID,
659+
FrameworkName,
660+
f.OwnerAdminID,
661+
f.BrandID,
662+
f.CategoryID,
663+
f.TopicID,
664+
f.CreatedDate,
665+
f.PublishStatusID,
666+
f.UpdatedByAdminID
659667
FROM SelfAssessmentFrameworks saf INNER JOIN
660668
Frameworks AS f ON saf.FrameworkId = f.ID
661669
WHERE (saf.SelfAssessmentId = @competencyAssessmentId) AND (saf.RemovedDate IS NULL)

DigitalLearningSolutions.Data/Models/Frameworks/BaseFramework.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public class BaseFramework : BaseSearchableItem
2222
public string? UpdatedBy { get; set; }
2323
public int UserRole { get; set; }
2424
public int? FrameworkReviewID { get; set; }
25-
2625
public override string SearchableName
2726
{
2827
get => SearchableNameOverrideForFuzzySharp ?? FrameworkName;

DigitalLearningSolutions.Web/Controllers/CompetencyAssessmentsController/CompetencyAssessments.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,8 +507,25 @@ public IActionResult SelectCompetencies(int competencyAssessmentId)
507507
[Route("/CompetencyAssessments/{competencyAssessmentId}/Competencies/Add/SelectFramework")]
508508
public IActionResult AddCompetenciesSelectFramework(int competencyAssessmentId)
509509
{
510+
var linkedFrameworks = competencyAssessmentService.GetLinkedFrameworksForCompetencyAssessment(competencyAssessmentId);
511+
if (!linkedFrameworks.Any())
512+
{
513+
return RedirectToAction("SelectFrameworkSources", new { competencyAssessmentId, actionName = "AddFramework" });
514+
}
515+
var adminId = GetAdminID();
516+
var competencyAssessmentBase = competencyAssessmentService.GetCompetencyAssessmentBaseById(competencyAssessmentId, adminId);
517+
if (competencyAssessmentBase == null)
518+
{
519+
logger.LogWarning($"Failed to load Competencies page for competencyAssessmentId: {competencyAssessmentId} adminId: {adminId}");
520+
return StatusCode(500);
521+
}
522+
if (competencyAssessmentBase.UserRole < 2)
523+
{
524+
return StatusCode(403);
525+
}
510526

511-
return View();
527+
var model = new AddCompetenciesSelectFrameworkViewModel(competencyAssessmentBase, linkedFrameworks);
528+
return View(model);
512529
}
513530
}
514531
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
namespace DigitalLearningSolutions.Web.ViewModels.CompetencyAssessments
2+
{
3+
using DigitalLearningSolutions.Data.Models.CompetencyAssessments;
4+
using DigitalLearningSolutions.Data.Models.Frameworks;
5+
using DigitalLearningSolutions.Web.Helpers;
6+
using System.Collections.Generic;
7+
8+
public class AddCompetenciesSelectFrameworkViewModel
9+
{
10+
public AddCompetenciesSelectFrameworkViewModel(
11+
CompetencyAssessmentBase competencyAssessmentBase,
12+
IEnumerable<BaseFramework> linkedFrameworks
13+
)
14+
{
15+
ID = competencyAssessmentBase.ID;
16+
CompetencyAssessmentName = competencyAssessmentBase.CompetencyAssessmentName;
17+
LinkedFrameworks = linkedFrameworks;
18+
UserRole = competencyAssessmentBase.UserRole;
19+
VocabularySingular = FrameworkVocabularyHelper.VocabularySingular(competencyAssessmentBase.Vocabulary);
20+
VocabularyPlural = FrameworkVocabularyHelper.VocabularyPlural(competencyAssessmentBase.Vocabulary);
21+
}
22+
public int ID { get; set; }
23+
public string? CompetencyAssessmentName { get; set; }
24+
public int UserRole { get; set; }
25+
public string VocabularySingular { get; set; }
26+
public string VocabularyPlural { get; set; }
27+
public int FrameworkId { get; set; }
28+
public IEnumerable<BaseFramework> LinkedFrameworks { get; set; }
29+
}
30+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
@using DigitalLearningSolutions.Web.ViewModels.CompetencyAssessments
2+
@model AddCompetenciesSelectFrameworkViewModel;
3+
@{
4+
ViewData["Title"] = "Select Framework Source";
5+
ViewData["Application"] = "Framework Service";
6+
}
7+
<link rel="stylesheet" href="@Url.Content("~/css/frameworks/frameworksShared.css")" asp-append-version="true">
8+
@section NavMenuItems {
9+
<partial name="~/Views/Frameworks/Shared/_NavMenuItems.cshtml" />
10+
}
11+
12+
@section NavBreadcrumbs {
13+
<nav class="nhsuk-breadcrumb" aria-label="Breadcrumb">
14+
<div class="nhsuk-width-container">
15+
<ol class="nhsuk-breadcrumb__list">
16+
<li class="nhsuk-breadcrumb__item"><a class="nhsuk-breadcrumb__link trigger-loader" asp-action="ViewCompetencyAssessments" asp-route-tabname="Mine">Competency Assessments</a></li>
17+
<li class="nhsuk-breadcrumb__item"><a class="nhsuk-breadcrumb__link trigger-loader" asp-action="ManageCompetencyAssessment" asp-route-competencyAssessmentId="@Model.ID">Manage Competency Assessment</a></li>
18+
<li class="nhsuk-breadcrumb__item">Select @Model.VocabularyPlural.ToLower() to assess</li>
19+
</ol>
20+
<p class="nhsuk-breadcrumb__back"><a class="nhsuk-breadcrumb__backlink" asp-action="ManageCompetencyAssessment" asp-route-competencyAssessmentId="@Model.ID">Back to manage competency assessment</a></p>
21+
</div>
22+
</nav>
23+
}
24+
<h1>Select Framework Source</h1>
25+
<form>
26+
<div class="nhsuk-form-group">
27+
28+
<fieldset class="nhsuk-fieldset">
29+
<legend class="nhsuk-fieldset__legend nhsuk-fieldset__legend--l">
30+
<h2 class="nhsuk-fieldset__heading">
31+
Select the framework source you would like to use to add @Model.VocabularyPlural.ToLower() to this competency assessment.
32+
</h2>
33+
</legend>
34+
<div class="nhsuk-radios">
35+
@foreach (var framework in Model.LinkedFrameworks)
36+
{
37+
<div class="nhsuk-radios__item">
38+
<input class="nhsuk-radios__input" asp-for="@Model.FrameworkId" type="radio" value="@framework.ID">
39+
<label class="nhsuk-label nhsuk-radios__label" for="example-hints-1">
40+
@framework.FrameworkName
41+
</label>
42+
</div>
43+
}
44+
</div>
45+
</fieldset>
46+
</div>
47+
<button type="submit" class="nhsuk-button" asp-action="AddCompetenciesSelectCompetencies" asp-route-competencyAssessmentId="@Model.ID">Next</button>
48+
</form>

DigitalLearningSolutions.Web/Views/CompetencyAssessments/SelectCompetencies.cshtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@using DigitalLearningSolutions.Web.ViewModels.CompetencyAssessments
22
@model SelectCompetenciesViewModel;
33
@{
4-
ViewData["Title"] = "Select Framework Sources";
4+
ViewData["Title"] = "Select Competencies";
55
ViewData["Application"] = "Framework Service";
66
}
77
<link rel="stylesheet" href="@Url.Content("~/css/frameworks/frameworksShared.css")" asp-append-version="true">
@@ -35,8 +35,8 @@
3535
@foreach (var competency in Model.Competencies)
3636
{
3737
<tr class="nhsuk-table__row">
38-
<td class="nhsuk-table__cell">Blisters on lips or around the mouth</td>
39-
<td class="nhsuk-table__cell">Cold sores</td>
38+
<td class="nhsuk-table__cell"></td>
39+
<td class="nhsuk-table__cell"></td>
4040
</tr>
4141
}
4242
</tbody>

0 commit comments

Comments
 (0)