Skip to content

Commit cbd0dff

Browse files
TD-4427 Check the minimum optional competencies have been added before enabling Request Sign-off
1 parent e6e21e5 commit cbd0dff

File tree

6 files changed

+16
-7
lines changed

6 files changed

+16
-7
lines changed

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ FROM SelfAssessmentSupervisorRoles AS SelfAssessmentSupervisorRoles_1
137137
SA.SignOffRequestorStatement,
138138
SA.ManageSupervisorsDescription,
139139
CA.NonReportable,
140-
U.FirstName +' '+ U.LastName AS DelegateName
140+
U.FirstName +' '+ U.LastName AS DelegateName,
141+
SA.MinimumOptionalCompetencies
141142
FROM CandidateAssessments CA
142143
JOIN SelfAssessments SA
143144
ON CA.SelfAssessmentID = SA.ID
@@ -162,7 +163,7 @@ GROUP BY
162163
CA.LaunchCount, CA.SubmittedDate, SA.LinearNavigation, SA.UseDescriptionExpanders,
163164
SA.ManageOptionalCompetenciesPrompt, SA.SupervisorSelfAssessmentReview, SA.SupervisorResultsReview,
164165
SA.ReviewerCommentsLabel,SA.EnforceRoleRequirementsForSignOff, SA.ManageSupervisorsDescription,CA.NonReportable,
165-
U.FirstName , U.LastName",
166+
U.FirstName , U.LastName,SA.MinimumOptionalCompetencies",
166167
new { delegateUserId, selfAssessmentId }
167168
);
168169
}
@@ -335,7 +336,7 @@ FROM CandidateAssessments
335336
new { selfAssessmentId, delegateUserId }
336337
);
337338
}
338-
public CompetencySelfAssessmentCertificate GetCompetencySelfAssessmentCertificate(int candidateAssessmentID)
339+
public CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int candidateAssessmentID)
339340
{
340341
return connection.QueryFirstOrDefault<CompetencySelfAssessmentCertificate>(
341342
@"SELECT
@@ -423,7 +424,7 @@ LEFT OUTER JOIN SelfAssessmentSupervisorRoles AS sasr
423424
new { selfAssessmentId, delegateUserID }
424425
);
425426
}
426-
public ActivitySummaryCompetencySelfAssesment GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId)
427+
public ActivitySummaryCompetencySelfAssesment? GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId)
427428
{
428429
return connection.QueryFirstOrDefault<ActivitySummaryCompetencySelfAssesment>(
429430
@"SELECT ca.ID AS CandidateAssessmentID, ca.SelfAssessmentID, sa.Name AS RoleName, casv.ID AS CandidateAssessmentSupervisorVerificationId,

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,9 @@ int GetSelfAssessmentActivityDelegatesExportCount(string searchString, string so
166166
int? GetDelegateAccountId(int centreId, int delegateUserId);
167167
int CheckDelegateSelfAssessment(int candidateAssessmentsId);
168168
IEnumerable<CompetencyCountSelfAssessmentCertificate> GetCompetencyCountSelfAssessmentCertificate(int candidateAssessmentID);
169-
CompetencySelfAssessmentCertificate GetCompetencySelfAssessmentCertificate(int candidateAssessmentID);
169+
CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int candidateAssessmentID);
170170
IEnumerable<Accessor> GetAccessor(int selfAssessmentId, int delegateUserID);
171-
ActivitySummaryCompetencySelfAssesment GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId);
171+
ActivitySummaryCompetencySelfAssesment? GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId);
172172
bool IsUnsupervisedSelfAssessment(int selfAssessmentId);
173173
}
174174

DigitalLearningSolutions.Data/Models/SelfAssessments/SelfAssessment.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ public class SelfAssessment : CurrentLearningItem
44
{
55
public string Description { get; set; } = string.Empty;
66
public int NumberOfCompetencies { get; set; }
7+
public int MinimumOptionalCompetencies { get; set; }
78
public bool LinearNavigation { get; set; }
89
public bool HasDelegateNominatedRoles { get; set; }
910
public bool UseDescriptionExpanders { get; set; }

DigitalLearningSolutions.Web/Controllers/LearningPortalController/SelfAssessment.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,7 @@ public IActionResult SelfAssessmentOverview(int selfAssessmentId, string vocabul
468468
CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup),
469469
PreviousCompetencyNumber = Math.Max(competencies.Count(), 1),
470470
NumberOfOptionalCompetencies = optionalCompetencies.Count(),
471+
NumberOfAssignOptionalCompetencies = optionalCompetencies.Count(x => x.IncludedInSelfAssessment ) ,
471472
SupervisorSignOffs = supervisorSignOffs,
472473
SearchViewModel = searchViewModel
473474
};

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public class SelfAssessmentOverviewViewModel
1313
public IEnumerable<SupervisorSignOff>? SupervisorSignOffs { get; set; }
1414
public int PreviousCompetencyNumber { get; set; }
1515
public int NumberOfOptionalCompetencies { get; set; }
16+
public int NumberOfAssignOptionalCompetencies { get; set; }
17+
1618
public bool AllQuestionsVerifiedOrNotRequired { get; set; }
1719
public SearchSelfAssessmentOverviewViewModel SearchViewModel { get; set; }
1820
public string VocabPlural()

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@
159159
<h2>@Model.SelfAssessment.SignOffRoleName Sign-off</h2>
160160
<partial name="../../Supervisor/Shared/_SupervisorSignOffSummary.cshtml" model="Model.SupervisorSignOffs"
161161
view-data="@(new ViewDataDictionary(ViewData) { { "IsAllCompetencyConfirmed", competencySummaries.Sum(c => (int)c["questionsCount"]) == competencySummaries.Sum(c => (int)c["verifiedCount"]) }})" />
162-
@if (Model.AllQuestionsVerifiedOrNotRequired)
162+
@if ((Model.AllQuestionsVerifiedOrNotRequired) && (Model.NumberOfAssignOptionalCompetencies >= Model.SelfAssessment.MinimumOptionalCompetencies) )
163163
{
164164
@if (!Model.SupervisorSignOffs.Any())
165165
{
@@ -199,6 +199,10 @@
199199
All required @Model.SelfAssessment.Vocabulary.ToLower() self-assessments must be completed and confirmed,
200200
before requesting @Model.SelfAssessment.SignOffRoleName sign off of the @Model.SelfAssessment.Name.
201201
</p>
202+
<p class="nhsuk-body-l">
203+
Your self assessment does not contain enough optional proficiencies to request sign off.
204+
Go to Manage Optional Competencies to choose the optional competencies that you wish to include..
205+
</p>
202206
}
203207
</div>
204208
}

0 commit comments

Comments
 (0)