Skip to content

Commit 87c4db7

Browse files
committed
Applies design based on Framework developer structure interface
1 parent daad7ed commit 87c4db7

File tree

3 files changed

+65
-23
lines changed

3 files changed

+65
-23
lines changed

DigitalLearningSolutions.Data/DataServices/CompetencyAssessmentDataService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ public bool UpdateRoleRequirementsTaskStatus(int assessmentId, bool taskStatus,
640640
public IEnumerable<Competency> GetCompetenciesForCompetencyAssessment(int competencyAssessmentId)
641641
{
642642
return connection.Query<Competency>(
643-
@"SELECT sas.ID AS StructureId, sas.CompetencyID, f.FrameworkName, cg.Name AS GroupName, c.Name AS CompetencyName, c.Description AS CompetencyDescription, sas.Optional
643+
@"SELECT sas.ID AS StructureId, sas.CompetencyID, f.ID AS FrameworkId, f.FrameworkName, cg.ID AS GroupId, cg.Name AS GroupName, c.Name AS CompetencyName, c.Description AS CompetencyDescription, sas.Optional
644644
FROM SelfAssessmentStructure AS sas INNER JOIN
645645
Competencies AS c ON sas.CompetencyID = c.ID INNER JOIN
646646
CompetencyGroups AS cg ON sas.CompetencyGroupID = cg.ID INNER JOIN

DigitalLearningSolutions.Data/Models/CompetencyAssessments/Competency.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ public class Competency
1010
{
1111
public int StructureId { get; set; }
1212
public int CompetencyID { get; set; }
13+
public int FrameworkId { get; set; }
1314
public string? FrameworkName { get; set; }
1415
public string? GroupName { get; set; }
16+
public int GroupId { get; set; }
1517
public string? CompetencyName { get; set; }
1618
public string? CompetencyDescription { get; set; }
1719
public bool Optional { get; set; }

DigitalLearningSolutions.Web/Views/CompetencyAssessments/ViewSelectedCompetencies.cshtml

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,66 @@
2222
</nav>
2323
}
2424
<h1>@Model.VocabularyPlural to assess for @Model.CompetencyAssessmentName</h1>
25-
<table class="nhsuk-table">
26-
<caption class="nhsuk-table__caption">@Model.VocabularyPlural</caption>
27-
<thead class="nhsuk-table__head">
28-
<tr>
29-
<th scope="col" class="nhsuk-table__header">Framework</th>
30-
<th scope="col" class="nhsuk-table__header">Group</th>
31-
<th scope="col" class="nhsuk-table__header">Competency</th>
32-
<th scope="col" class="nhsuk-table__header">Action</th>
33-
</tr>
34-
</thead>
35-
<tbody class="nhsuk-table__body">
36-
@foreach (var competency in Model.Competencies)
37-
{
38-
<tr class="nhsuk-table__row">
39-
<td class="nhsuk-table__cell">@competency.FrameworkName</td>
40-
<td class="nhsuk-table__cell">@competency.GroupName</td>
41-
<td class="nhsuk-table__cell">@competency.CompetencyName</td>
42-
<td class="nhsuk-table__cell"></td>
43-
</tr>
44-
}
45-
</tbody>
46-
</table>
25+
26+
@foreach (var group in Model.Competencies
27+
.GroupBy(c => new { c.FrameworkId, c.FrameworkName, c.GroupId, c.GroupName }))
28+
{
29+
<details id="[email protected]" class="nhsuk-details nhsuk-expander nhsuk-u-margin-bottom-3" @(group.Count() == 1 ? "open" : (ViewContext.RouteData.Values.ContainsKey("GroupId") ? (ViewContext.RouteData.Values["GroupId"].Equals(group.Key.GroupId.ToString()) ? "open" : "") : ""))>
30+
<summary class="nhsuk-details__summary">
31+
<span class="nhsuk-details__summary-text">
32+
33+
@group.Key.GroupName (@group.Key.FrameworkName)
34+
</span>
35+
@if (Model.UserRole > 1)
36+
{
37+
<div class="nhsuk-grid-row nhsuk-u-margin-top-3">
38+
<div class="nhsuk-grid-column-full">
39+
<a class="nhsuk-button nhsuk-button--secondary small-edit-button nhsuk-u-margin-right-1" role="button" asp-action="MoveCompetencyGroup" asp-route-step="true" asp-route-direction="UP" asp-route-selfAssessmentId="@(ViewContext.RouteData.Values["ID"])" asp-route-competencyGroupId="@group.Key.GroupId">Move <span class="visually-hidden">@group.Key.GroupName</span>up </a>
40+
<a class="nhsuk-button nhsuk-button--secondary small-edit-button nhsuk-u-margin-right-1" role="button" asp-action="MoveCompetencyGroup" asp-route-step="true" asp-route-direction="DOWN" asp-route-selfAssessmentId="@(ViewContext.RouteData.Values["ID"])" asp-route-competencyGroupId="@group.Key.GroupId">Move <span class="visually-hidden">@group.Key.GroupName</span>down </a>
41+
<a class="nhsuk-button nhsuk-button--secondary delete-button small-edit-button nhsuk-u-margin-right-1" role="button" asp-action="CompetencyGroupRemoveConfirm" asp-route-selfAssessmentId="@(ViewContext.RouteData.Values["ID"])" asp-route-competencyGroupId="@group.Key.GroupId" asp-route-competencyCount="@group.Count()">Remove <span class="visually-hidden">@group.Key.GroupName</span></a>
42+
</div>
43+
</div>
44+
}
45+
</summary>
46+
<div class="nhsuk-details__text">
47+
@if (group.Any())
48+
{
49+
foreach (var competency in group)
50+
{
51+
<div id="[email protected]" class="nhsuk-card nhsuk-u-margin-bottom-5 nhsuk-u-margin-left-3">
52+
<div class="nhsuk-card__content">
53+
@* <partial name="_CompetencyFlags" model="Model.CompetencyFlags" /> *@
54+
@if (competency.CompetencyDescription != null)
55+
{
56+
@competency.CompetencyName
57+
<p class="nhsuk-body">
58+
@(Html.Raw(competency.CompetencyDescription))
59+
</p>
60+
}
61+
else
62+
{
63+
@competency.CompetencyName
64+
}
65+
66+
<div class="nhsuk-grid-row">
67+
<div class="nhsuk-grid-column-three-quarters">
68+
@if (Model.UserRole > 1)
69+
{
70+
<a class="nhsuk-button nhsuk-button--secondary small-edit-button nhsuk-u-margin-right-1" role="button" asp-action="MoveCompetency" asp-route-competencyGroupId="@group.Key.GroupId" asp-route-step="true" asp-route-direction="UP" asp-route-selfAssessmentId="@(ViewContext.RouteData.Values["ID"])" asp-route-competencyId="@competency.CompetencyID">Move <span class="visually-hidden">@competency.CompetencyName</span>up </a>
71+
<a class="nhsuk-button nhsuk-button--secondary small-edit-button nhsuk-u-margin-right-1" role="button" asp-action="MoveCompetency" asp-route-competencyGroupId="@group.Key.GroupId" asp-route-step="true" asp-route-direction="DOWN" asp-route-selfAssessmentId="@(ViewContext.RouteData.Values["ID"])" asp-route-competencyId="@competency.CompetencyID">Move <span class="visually-hidden">@competency.CompetencyName</span>down </a>
72+
<a class="nhsuk-button nhsuk-button--secondary delete-button small-edit-button nhsuk-u-margin-right-1" role="button" asp-action="DeleteCompetency" asp-route-competencyGroupId="@group.Key.GroupId" asp-route-selfAssessmentId="@(ViewContext.RouteData.Values["ID"])" asp-route-competencyId="@competency.CompetencyID">Remove <span class="visually-hidden">@competency.CompetencyName</span></a>
73+
}
74+
</div>
75+
</div>
76+
</div>
77+
</div>
78+
}
79+
}
80+
else
81+
{
82+
<p>No @ViewData["VocabPlural"].ToString().ToLower() in this group.</p>
83+
}
84+
</div>
85+
</details>
86+
}
4787

0 commit comments

Comments
 (0)