Skip to content

Commit 872033a

Browse files
authored
Merge pull request #3370 from TechnologyEnhancedLearning/Develop/Fix/TD-5616-Back-Button-And-Summary-Page
TD-5616-Added ActionConfirmed to MultiPageFormData to maintain form navigation.
2 parents 6501773 + e8ba969 commit 872033a

File tree

6 files changed

+88
-31
lines changed

6 files changed

+88
-31
lines changed

DigitalLearningSolutions.Data/Models/SessionData/Supervisor/SessionEnrolOnRoleProfile.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ public class SessionEnrolOnRoleProfile
66
public int? SelfAssessmentID { get; set; }
77
public DateTime? CompleteByDate { get; set; }
88
public int? SelfAssessmentSupervisorRoleId { get; set; }
9+
public bool ActionConfirmed { get; set; }
910
}
1011
}

DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs

Lines changed: 70 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ public IActionResult ReviewDelegateSelfAssessment(int supervisorDelegateId, int
391391
foreach (var competency in competencies)
392392
{
393393
competency.CompetencyFlags = flags.Where(f => f.CompetencyId == competency.Id);
394-
};
394+
}
395395

396396
if (superviseDelegate.DelegateUserID != null)
397397
{
@@ -784,48 +784,69 @@ public IActionResult EnrolSetRoleProfile(int supervisorDelegateId, int selfAsses
784784
};
785785
return View("EnrolDelegateOnProfileAssessment", model);
786786
}
787-
var retirementDate = selfAssessmentService.GetSelfAssessmentById(selfAssessmentID).RetirementDate;
788-
if (retirementDate?.Date is DateTime date && date >= DateTime.Today &&
789-
date <= DateTime.Today.AddDays(14))
790-
{
791-
var model = new RetiringSelfAssessmentViewModel()
792-
{
793-
SelfAssessmentID = selfAssessmentID,
794-
SupervisorDelegateID = supervisorDelegateId,
795-
RetirementDate = retirementDate
796-
};
797-
return View("ConfirmRetiringSelfAssessment", model);
798-
}
799787

800788
sessionEnrolOnRoleProfile.SelfAssessmentID = selfAssessmentID;
801789
multiPageFormService.SetMultiPageFormData(
802790
sessionEnrolOnRoleProfile,
803791
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
804792
TempData
805793
);
794+
795+
var retirementDate = selfAssessmentService.GetSelfAssessmentById(selfAssessmentID).RetirementDate;
796+
if (CheckRetirementDate(retirementDate))
797+
{
798+
return RedirectToAction("ConfirmRetiringSelfAssessment", "Supervisor", new { supervisorDelegateId });
799+
}
800+
806801
return RedirectToAction(
807802
"EnrolDelegateCompleteBy",
808803
"Supervisor",
809804
new { supervisorDelegateId = supervisorDelegateId }
810805
);
811806
}
812807

813-
[HttpPost]
814-
public IActionResult RetiringSelfAssessmentConfirmed(RetiringSelfAssessmentViewModel retiringSelfAssessment)
808+
[Route("/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/Confirm")]
809+
public IActionResult ConfirmRetiringSelfAssessment(int supervisorDelegateId)
815810
{
816-
if (ModelState.IsValid && retiringSelfAssessment.ActionConfirmed)
811+
var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData<SessionEnrolOnRoleProfile>(
812+
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
813+
TempData
814+
).GetAwaiter().GetResult();
815+
816+
var retirementDate = selfAssessmentService.GetSelfAssessmentById((int)sessionEnrolOnRoleProfile.SelfAssessmentID).RetirementDate;
817+
if (!CheckRetirementDate((retirementDate)))
817818
{
818-
var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData<SessionEnrolOnRoleProfile>(
819+
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 410 });
820+
}
821+
var model = new RetiringSelfAssessmentViewModel()
822+
{
823+
SelfAssessmentID = (int)sessionEnrolOnRoleProfile.SelfAssessmentID,
824+
SupervisorDelegateID = supervisorDelegateId,
825+
RetirementDate = retirementDate,
826+
ActionConfirmed = sessionEnrolOnRoleProfile.ActionConfirmed
827+
};
828+
return View("ConfirmRetiringSelfAssessment", model);
829+
}
830+
831+
[HttpPost]
832+
[Route("/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/Confirm")]
833+
public IActionResult ConfirmRetiringSelfAssessment(RetiringSelfAssessmentViewModel retiringSelfAssessment)
834+
{
835+
var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData<SessionEnrolOnRoleProfile>(
819836
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
820837
TempData
821838
).GetAwaiter().GetResult();
822839

823-
sessionEnrolOnRoleProfile.SelfAssessmentID = retiringSelfAssessment.SelfAssessmentID;
824-
multiPageFormService.SetMultiPageFormData(
825-
sessionEnrolOnRoleProfile,
826-
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
827-
TempData
828-
);
840+
sessionEnrolOnRoleProfile.SelfAssessmentID = retiringSelfAssessment.SelfAssessmentID;
841+
sessionEnrolOnRoleProfile.ActionConfirmed = retiringSelfAssessment.ActionConfirmed;
842+
multiPageFormService.SetMultiPageFormData(
843+
sessionEnrolOnRoleProfile,
844+
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
845+
TempData
846+
);
847+
848+
if (ModelState.IsValid && retiringSelfAssessment.ActionConfirmed)
849+
{
829850
return RedirectToAction(
830851
"EnrolDelegateCompleteBy",
831852
"Supervisor",
@@ -850,19 +871,21 @@ public IActionResult EnrolDelegateCompleteBy(int supervisorDelegateId, int? day,
850871
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
851872
TempData
852873
).GetAwaiter().GetResult();
853-
multiPageFormService.SetMultiPageFormData(
854-
sessionEnrolOnRoleProfile,
855-
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
856-
TempData
857-
);
874+
875+
var retirementDate = selfAssessmentService.GetSelfAssessmentById((int)sessionEnrolOnRoleProfile.SelfAssessmentID).RetirementDate;
876+
if (CheckRetirementDate(retirementDate) && !sessionEnrolOnRoleProfile.ActionConfirmed)
877+
{
878+
return RedirectToAction("ConfirmRetiringSelfAssessment", "Supervisor", new { supervisorDelegateId });
879+
}
858880
var supervisorDelegate =
859881
supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, GetAdminId(), 0);
860882
var roleProfile = supervisorService.GetRoleProfileById((int)sessionEnrolOnRoleProfile.SelfAssessmentID);
861883
var model = new EnrolDelegateSetCompletByDateViewModel()
862884
{
863885
SupervisorDelegateDetail = supervisorDelegate,
864886
RoleProfile = roleProfile,
865-
CompleteByDate = sessionEnrolOnRoleProfile.CompleteByDate
887+
CompleteByDate = sessionEnrolOnRoleProfile.CompleteByDate,
888+
ActionConfirmed = sessionEnrolOnRoleProfile.ActionConfirmed
866889
};
867890
if (day != null && month != null && year != null)
868891
{
@@ -1008,6 +1031,13 @@ public IActionResult EnrolDelegateSummary(int supervisorDelegateId)
10081031
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
10091032
TempData
10101033
);
1034+
1035+
var retirementDate = selfAssessmentService.GetSelfAssessmentById((int)sessionEnrolOnRoleProfile.SelfAssessmentID).RetirementDate;
1036+
if (CheckRetirementDate(retirementDate) && !sessionEnrolOnRoleProfile.ActionConfirmed)
1037+
{
1038+
return RedirectToAction("ConfirmRetiringSelfAssessment", "Supervisor", new { supervisorDelegateId });
1039+
}
1040+
10111041
var supervisorDelegate =
10121042
supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, GetAdminId(), 0);
10131043
var roleProfile = supervisorService.GetRoleProfileById((int)sessionEnrolOnRoleProfile.SelfAssessmentID);
@@ -1035,6 +1065,7 @@ public IActionResult EnrolDelegateSummary(int supervisorDelegateId)
10351065
ViewBag.completeByMonth = TempData["completeByMonth"];
10361066
ViewBag.completeByYear = TempData["completeByYear"];
10371067
ViewBag.navigatedFrom = TempData["navigatedFrom"];
1068+
ViewBag.actionConfirmed = sessionEnrolOnRoleProfile.ActionConfirmed;
10381069
return View("EnrolDelegateSummary", model);
10391070
}
10401071

@@ -1558,5 +1589,15 @@ private static string RenderRazorViewToString(Controller controller, string view
15581589
return sw.GetStringBuilder().ToString();
15591590
}
15601591
}
1592+
1593+
private bool CheckRetirementDate(DateTime? date)
1594+
{
1595+
if (date == null)
1596+
return false;
1597+
1598+
DateTime retirementOffsetDate = DateTime.Today.AddDays(14);
1599+
DateTime today = DateTime.Today;
1600+
return (date >= today && date <= retirementOffsetDate);
1601+
}
15611602
}
15621603
}

DigitalLearningSolutions.Web/ViewModels/Supervisor/EnrolDelegateSetCompletByDateViewModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ public class EnrolDelegateSetCompletByDateViewModel
1111
public RoleProfile RoleProfile { get; set; }
1212
public DateTime? CompleteByDate { get; set; }
1313
public OldDateValidator.ValidationResult? CompleteByValidationResult { get; set; }
14+
public bool ActionConfirmed { get; set; }
1415
}
1516
}

DigitalLearningSolutions.Web/Views/Supervisor/ConfirmRetiringSelfAssessment.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
label=" I understand this self-assessment is being retired and I still want to enrol learners."
3737
hint-text="" />
3838
</div>
39-
<button type="submit" class="nhsuk-button nhsuk-button nhsuk-u-margin-top-4" asp-action="RetiringSelfAssessmentConfirmed">
39+
<button type="submit" class="nhsuk-button nhsuk-button nhsuk-u-margin-top-4" asp-action="ConfirmRetiringSelfAssessment">
4040
Continue
4141
</button>
4242
@Html.HiddenFor(m => m.SelfAssessmentID)

DigitalLearningSolutions.Web/Views/Supervisor/EnrolDelegateSetCompleteBy.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@
120120
</div>
121121
</fieldset>
122122
<div class=" nhsuk-u-margin-top-5">
123-
<a class="nhsuk-button nhsuk-button--secondary" role="button" asp-action="EnrolDelegateOnProfileAssessment" asp-route-supervisorDelegateId="@Model.SupervisorDelegateDetail.ID">
123+
<a class="nhsuk-button nhsuk-button--secondary" role="button" asp-action="@(Model.ActionConfirmed ? "ConfirmRetiringSelfAssessment" : "EnrolDelegateOnProfileAssessment")" asp-route-supervisorDelegateId="@Model.SupervisorDelegateDetail.ID">
124124
Back
125125
</a>
126126
<button class="nhsuk-button" id="save-button" type="submit">Next</button>

DigitalLearningSolutions.Web/Views/Supervisor/EnrolDelegateSummary.cshtml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,20 @@
8181
</dd>
8282

8383
</div>
84+
@if (ViewBag.actionConfirmed)
85+
{
86+
<div class="nhsuk-summary-list__row">
87+
<dt class="nhsuk-summary-list__key">
88+
Retiring confirmed
89+
</dt>
90+
<dd class="nhsuk-summary-list__value">
91+
Yes
92+
</dd>
93+
<dd class="nhsuk-summary-list__actions">
94+
</dd>
95+
96+
</div>
97+
}
8498

8599
<div class="nhsuk-summary-list__row">
86100
<dt class="nhsuk-summary-list__key">

0 commit comments

Comments
 (0)