Skip to content

Commit cdebf63

Browse files
TD-4560 Change the Manage optional competencies view to allow selection of competencies by group
1 parent d78d8dd commit cdebf63

File tree

3 files changed

+93
-45
lines changed

3 files changed

+93
-45
lines changed

DigitalLearningSolutions.Web/Controllers/LearningPortalController/SelfAssessment.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,6 +1538,23 @@ ManageOptionalCompetenciesViewModel model
15381538
);
15391539
}
15401540
}
1541+
if (model.GroupOptionalCompetenciesChecked != null)
1542+
{
1543+
var optionalCompetencies =
1544+
selfAssessmentService.GetCandidateAssessmentOptionalCompetencies(selfAssessmentId, delegateUserId);
1545+
foreach (var competencyGroup in model.GroupOptionalCompetenciesChecked)
1546+
{
1547+
var IncludedSelfAssessmentStructureIds = optionalCompetencies.Where(x => x.CompetencyGroup == competencyGroup).Select(x => x.SelfAssessmentStructureId).ToList();
1548+
foreach (var selfAssessmentStructureId in IncludedSelfAssessmentStructureIds)
1549+
{
1550+
selfAssessmentService.UpdateCandidateAssessmentOptionalCompetencies(
1551+
selfAssessmentStructureId.Value,
1552+
delegateUserId
1553+
);
1554+
}
1555+
}
1556+
1557+
}
15411558

15421559
return RedirectToAction("SelfAssessmentOverview", new { selfAssessmentId, vocabulary });
15431560
}

DigitalLearningSolutions.Web/ViewModels/LearningPortal/SelfAssessments/ManageOptionalCompetenciesViewModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class ManageOptionalCompetenciesViewModel
1010
public CurrentSelfAssessment? SelfAssessment { get; set; }
1111
public IEnumerable<IGrouping<string, Competency>>? CompetencyGroups { get; set; }
1212
public List<int>? IncludedSelfAssessmentStructureIds { get; set; }
13+
public List<string>? GroupOptionalCompetenciesChecked { get; set; }
1314
public string VocabPlural()
1415
{
1516
return FrameworkVocabularyHelper.VocabularyPlural(SelfAssessment.Vocabulary);

DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/ManageOptionalCompetencies.cshtml

Lines changed: 75 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
ViewData["SelfAssessmentTitle"] = @Model.SelfAssessment.Name;
99
var backLinkData = Html.GetRouteValues();
1010
}
11+
<style>
12+
.nhsuk-details__summary-text {
13+
padding: 10px;
14+
}
15+
</style>
1116
@if (ViewBag.FromAddOptionalPage != null)
1217
{
1318
@section breadcrumbs {
@@ -89,60 +94,85 @@ else
8994
</legend>
9095
@if (competencyGroup.Count() > 1)
9196
{
92-
<div class="nhsuk-grid-row nhsuk-u-margin-top-3 nhsuk-u-margin-bottom-1 js-only-block">
93-
<div class="nhsuk-grid-column-full">
94-
<a class="nhsuk-button select-all-button select-all status-tag nhsuk-u-margin-bottom-1" role="button" data-group="@competencyGroup.Key" name="selectAll" value="true">Select all @Model.VocabPlural().ToLower()</a>
95-
<a class="nhsuk-button select-all-button deselect-all status-tag nhsuk-u-margin-bottom-1" role="button" data-group="@competencyGroup.Key" id="" name="selectAll" value="false">Deselect all @Model.VocabPlural().ToLower()</a>
96-
</div>
97-
</div>
98-
}
99-
100-
<div class="nhsuk-checkboxes">
101-
@foreach (var competency in competencyGroup)
97+
@if (competencyGroup.Any(x => x.GroupOptionalCompetencies))
10298
{
103-
@if (competency.GroupOptionalCompetencies)
104-
{
105-
<div class="nhsuk-checkboxes__item">
106-
107-
<input data-group="@competencyGroup.Key" class="nhsuk-checkboxes__input select-all-checkbox" id="[email protected]" name="resultChecked" type="checkbox" value="@competency.SelfAssessmentStructureId">
108-
<label class="nhsuk-label nhsuk-checkboxes__label nhsuk-u-font-size-16" for="[email protected]">
109-
<h3 class="nhsuk-details__summary-text nhsuk-u-margin-bottom-0"> @competencyGroup.Key</h3>
110-
</label>
111-
</div>
99+
<div class="nhsuk-grid-row nhsuk-u-margin-top-3 nhsuk-u-margin-bottom-1 js-only-block">
100+
<div class="nhsuk-grid-column-full">
112101

113-
<details class="nhsuk-details">
114-
<summary class="nhsuk-details__summary nhsuk-u-padding-0">
115-
<span class="nhsuk-u-margin-bottom-0">
116-
<span class="nhsuk-details__summary-text"> &nbsp;&nbsp; What&rsquo;s included in the @competency.CompetencyGroup </span>
117-
</span>
118-
</summary>
102+
<div class="nhsuk-checkboxes__item">
119103

120-
<div class="nhsuk-details__text nhsuk-u-margin-left-6 nhsuk-u-margin-top-2">
121-
@(Html.Raw(@competency.Name))
104+
<input data-group="@competencyGroup.Key" class="nhsuk-checkboxes__input select-all-checkbox" id="[email protected]" name="groupOptionalCompetenciesChecked" checked="@(competencyGroup.Any(x => x.IncludedInSelfAssessment == true) ? true : false)" type="checkbox" value="@competencyGroup.Key">
105+
<label class="nhsuk-label nhsuk-checkboxes__label nhsuk-u-font-size-16" for="[email protected]">
106+
<h3 class="nhsuk-details__summary-text nhsuk-u-margin-bottom-0"> Select all @Model.VocabPlural().ToLower()</h3>
107+
</label>
122108
</div>
123-
</details>
124-
<br />
125-
}
126-
else
127-
{
128-
<div class="nhsuk-checkboxes__item">
129-
<input class="nhsuk-checkboxes__input select-all-checkbox" data-group="@competencyGroup.Key" id="[email protected]" name="IncludedSelfAssessmentStructureIds" checked="@(Model.IncludedSelfAssessmentStructureIds != null ? Model.IncludedSelfAssessmentStructureIds.Contains((int)competency.SelfAssessmentStructureId) : false)" type="checkbox" value="@competency.SelfAssessmentStructureId">
130-
<label class="nhsuk-label nhsuk-checkboxes__label" for="[email protected]">
131-
@foreach (var flag in competency.CompetencyFlags)
132-
{
133-
<span class="nhsuk-u-padding-right-2 @(ViewData["cssClass"]?.ToString())">
134-
<strong class="nhsuk-tag @flag.FlagTagClass">
135-
@flag.FlagName
136-
</strong>
109+
110+
</div>
111+
</div>
112+
<details class="nhsuk-details">
113+
<summary class="nhsuk-details__summary nhsuk-u-padding-0">
114+
<h3 class="nhsuk-details__summary-text nhsuk-u-margin-bottom-0">
115+
<span class="nhsuk-u-margin-bottom-0">
116+
<span class="nhsuk-details__summary-text" id="@competencyGroup.Key">
117+
What&rsquo;s included in the @competencyGroup.Key </span>
137118
</span>
119+
120+
</h3>
121+
</summary>
122+
123+
<div class="nhsuk-details__text nhsuk-card">
124+
<dl class="nhsuk-summary-list">
125+
126+
@foreach (var competency in competencyGroup)
127+
{
128+
<div class="nhsuk-summary-list__row">
129+
<dd class="nhsuk-summary-list__value">
130+
@competency.Name
131+
</dd>
132+
</div>
138133
}
134+
</dl>
135+
139136

140-
@competency.Name
141-
</label>
142137
</div>
143-
}
138+
139+
140+
</details>
141+
}
142+
else
143+
{
144+
<div class="nhsuk-grid-row nhsuk-u-margin-top-3 nhsuk-u-margin-bottom-1 js-only-block">
145+
<div class="nhsuk-grid-column-full">
146+
<a class="nhsuk-button select-all-button select-all status-tag nhsuk-u-margin-bottom-1" role="button" data-group="@competencyGroup.Key" name="selectAll" value="true">Select all @Model.VocabPlural().ToLower()</a>
147+
<a class="nhsuk-button select-all-button deselect-all status-tag nhsuk-u-margin-bottom-1" role="button" data-group="@competencyGroup.Key" id="" name="selectAll" value="false">Deselect all @Model.VocabPlural().ToLower()</a>
148+
</div>
149+
</div>
150+
<div class="nhsuk-checkboxes">
151+
@foreach (var competency in competencyGroup)
152+
{
153+
154+
155+
156+
<div class="nhsuk-checkboxes__item">
157+
<input class="nhsuk-checkboxes__input select-all-checkbox" data-group="@competencyGroup.Key" id="[email protected]" name="IncludedSelfAssessmentStructureIds" checked="@(Model.IncludedSelfAssessmentStructureIds != null ? Model.IncludedSelfAssessmentStructureIds.Contains((int)competency.SelfAssessmentStructureId) : false)" type="checkbox" value="@competency.SelfAssessmentStructureId">
158+
<label class="nhsuk-label nhsuk-checkboxes__label" for="[email protected]">
159+
@foreach (var flag in competency.CompetencyFlags)
160+
{
161+
<span class="nhsuk-u-padding-right-2 @(ViewData["cssClass"]?.ToString())">
162+
<strong class="nhsuk-tag @flag.FlagTagClass">
163+
@flag.FlagName
164+
</strong>
165+
</span>
166+
}
167+
168+
@competency.Name
169+
</label>
170+
</div>
171+
172+
}
173+
</div>
144174
}
145-
</div>
175+
}
146176
</fieldset>
147177
}
148178
</nhs-form-group>

0 commit comments

Comments
 (0)