Skip to content

Commit b556f01

Browse files
committed
Implemented Complete By date edit link
1 parent 5517ff9 commit b556f01

File tree

6 files changed

+55
-5
lines changed

6 files changed

+55
-5
lines changed

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,8 @@ int GetSelfAssessmentActivityDelegatesExportCount(string searchString, string so
163163
void RemoveDelegateSelfAssessment(int candidateAssessmentsId);
164164
int? GetSupervisorsCountFromCandidateAssessmentId(int candidateAssessmentsId);
165165
bool CheckForSameCentre(int centreId, int candidateAssessmentsId);
166+
int? GetDelegateUserId(int CandidateAssessmentId, int selfAssessmentId);
167+
int? GetDelegateAccountId(int centreId, int delegateUserId);
166168
int CheckDelegateSelfAssessment(int candidateAssessmentsId);
167169
}
168170

@@ -684,6 +686,22 @@ public bool CheckForSameCentre(int centreId, int candidateAssessmentsId)
684686
);
685687
return ResultCount == 1 ? true : false;
686688
}
689+
public int? GetDelegateUserId(int CandidateAssessmentId, int selfAssessmentId)
690+
{
691+
return connection.QueryFirstOrDefault<int>(
692+
@"SELECT DelegateUserID FROM CandidateAssessments
693+
WHERE (SelfAssessmentID = @selfAssessmentId) AND ( ID =@CandidateAssessmentId)",
694+
new { CandidateAssessmentId, selfAssessmentId}
695+
);
696+
}
697+
public int? GetDelegateAccountId(int centreId, int delegateUserId)
698+
{
699+
return connection.QueryFirstOrDefault<int>(
700+
@"SELECT ID FROM DelegateAccounts
701+
WHERE (CentreID = @centreId) AND ( UserId =@delegateUserId)",
702+
new { centreId, delegateUserId }
703+
);
704+
}
687705
public int CheckDelegateSelfAssessment(int candidateAssessmentsId)
688706
{
689707
return connection.QueryFirstOrDefault<int>(

DigitalLearningSolutions.Data/Models/SelfAssessments/CurrentSelfAssessment.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ public class CurrentSelfAssessment : SelfAssessment
2222
public bool NonReportable { get; set; }
2323
public int? SupervisorCount { get; set; }
2424
public bool IsSameCentre { get; set; }
25+
public int? DelegateUserId { get; set; }
2526
}
2627
}

DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/ActivityDelegatesController.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using DigitalLearningSolutions.Web.Models.Enums;
1515
using DigitalLearningSolutions.Web.ServiceFilter;
1616
using DigitalLearningSolutions.Web.Services;
17+
using DigitalLearningSolutions.Web.ViewModels.Supervisor;
1718
using DigitalLearningSolutions.Web.ViewModels.TrackingSystem.Delegates;
1819
using DigitalLearningSolutions.Web.ViewModels.TrackingSystem.Delegates.CourseDelegates;
1920
using Microsoft.AspNetCore.Authorization;
@@ -544,8 +545,17 @@ DelegateAccessRoute accessedVia
544545
ReturnPageQuery? returnPageQuery = formData.ReturnPageQuery;
545546
var routeData = returnPageQuery!.Value.ToRouteDataDictionary();
546547
routeData.Add("selfAssessmentId", selfAssessmentId.ToString());
547-
548-
return RedirectToAction("Index", "ActivityDelegates", routeData, returnPageQuery.Value.ItemIdToReturnTo);
548+
549+
if (accessedVia.Id==1 && accessedVia.Name == "ViewDelegate")
550+
{
551+
var centreId = User.GetCentreIdKnownNotNull();
552+
var delegateAccountId = selfAssessmentService.GetDelegateAccountId(centreId, delegateUserId);
553+
return RedirectToAction("Index", "ViewDelegate", new { delegateId = delegateAccountId });
554+
}
555+
else
556+
{
557+
return RedirectToAction("Index", "ActivityDelegates", routeData, returnPageQuery.Value.ItemIdToReturnTo);
558+
}
549559
}
550560
}
551561
}

DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/ViewDelegateController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public IActionResult Index(int delegateId, string? callType)
9090
{
9191
selfassessment.SupervisorCount = selfAssessmentService.GetSupervisorsCountFromCandidateAssessmentId(selfassessment.CandidateAssessmentId);
9292
selfassessment.IsSameCentre = selfAssessmentService.CheckForSameCentre(centreId, selfassessment.CandidateAssessmentId);
93+
selfassessment.DelegateUserId = selfAssessmentService.GetDelegateUserId(selfassessment.CandidateAssessmentId, selfassessment.Id);
9394
}
9495

9596
var model = new ViewDelegateViewModel(delegateUserCard, customFields, delegateCourses, selfAssessments);

DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ public int GetSelfAssessmentActivityDelegatesExportCount(string searchString, s
138138
RemoveSelfAssessmentDelegate GetDelegateSelfAssessmentByCandidateAssessmentsId(int candidateAssessmentsId);
139139
void RemoveDelegateSelfAssessment(int candidateAssessmentsId);
140140
public int? GetSupervisorsCountFromCandidateAssessmentId(int candidateAssessmentsId);
141-
public bool CheckForSameCentre(int centreId, int candidateAssessmentsId);
141+
public bool CheckForSameCentre(int centreId, int candidateAssessmentsId);
142+
public int? GetDelegateUserId(int CandidateAssessmentId, int selfAssessmentId);
143+
public int? GetDelegateAccountId(int centreId, int delegateUserId);
142144
int CheckDelegateSelfAssessment(int candidateAssessmentsId);
143145
}
144146

@@ -504,6 +506,14 @@ public bool CheckForSameCentre(int centreId, int candidateAssessmentsId)
504506
{
505507
return selfAssessmentDataService.CheckForSameCentre(centreId, candidateAssessmentsId);
506508
}
509+
public int? GetDelegateUserId(int CandidateAssessmentId, int selfAssessmentId)
510+
{
511+
return selfAssessmentDataService.GetDelegateUserId(CandidateAssessmentId, selfAssessmentId);
512+
}
513+
public int? GetDelegateAccountId(int centreId, int delegateUserId)
514+
{
515+
return selfAssessmentDataService.GetDelegateAccountId(centreId, delegateUserId);
516+
}
507517
public int CheckDelegateSelfAssessment(int candidateAssessmentsId)
508518
{
509519
return selfAssessmentDataService.CheckDelegateSelfAssessment(candidateAssessmentsId);

DigitalLearningSolutions.Web/Views/TrackingSystem/Delegates/Shared/_DelegateSelfAssessmentProgressDetails.cshtml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,19 @@
2727
Complete by
2828
</dt>
2929
<dd class="nhsuk-summary-list__value" data-name-for-sorting="complete-by-date">
30-
@Model.CompleteByDate
30+
@(Model.CompleteByDate != null ? Model.CompleteByDate : "-")
31+
</dd>
32+
<dd class="nhsuk-summary-list__actions">
33+
<a data-return-page-enabled="true"
34+
asp-controller="ActivityDelegates"
35+
asp-action="EditCompleteByDate"
36+
asp-route-delegateUserId="@Model.DelegateUserId"
37+
asp-route-selfAssessmentId="@Model.Id"
38+
asp-route-accessedVia="ViewDelegate"
39+
asp-route-returnPageQuery="null">
40+
Edit<span class="nhsuk-u-visually-hidden"> complete by date</span>
41+
</a>
3142
</dd>
32-
<dd class="nhsuk-summary-list__actions"></dd>
3343
</div>
3444

3545
<div class="nhsuk-summary-list__row details-list-with-button__row">

0 commit comments

Comments
 (0)