Skip to content

Commit b5e18ce

Browse files
authored
Merge pull request #2905 from TechnologyEnhancedLearning/Develop/Features/TD-4881-LimitthesupervisorMyStaffviewselfassessmentcountstoincludeonlythoseintheirassignedcategory
TD-4881 Limit the supervisor My Staff view self assessment counts to include only those in their assigned category
2 parents df38a7c + 82e5631 commit b5e18ce

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface ISupervisorDataService
1414
{
1515
//GET DATA
1616
DashboardData? GetDashboardDataForAdminId(int adminId);
17-
IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId);
17+
IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId, int? adminIdCategoryID);
1818
SupervisorDelegateDetail GetSupervisorDelegateDetailsById(int supervisorDelegateId, int adminId, int delegateUserId);
1919
SupervisorDelegate GetSupervisorDelegate(int adminId, int delegateUserId);
2020
int? ValidateDelegate(int centreId, string delegateEmail);
@@ -158,7 +158,7 @@ FROM CandidateAssessmentSupervisors AS cas INNER JOIN
158158
).FirstOrDefault();
159159
}
160160

161-
public IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId)
161+
public IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId, int? adminIdCategoryID)
162162
{
163163
return connection.Query<SupervisorDelegateDetail>(
164164
$@"SELECT sd.ID,
@@ -177,7 +177,9 @@ FROM CandidateAssessments AS ca LEFT JOIN
177177
CandidateAssessmentSupervisors AS cas ON cas.CandidateAssessmentID = ca.ID AND cas.Removed IS NULL AND cas.SupervisorDelegateId = sd.ID INNER JOIN
178178
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID
179179
WHERE (ca.RemovedDate IS NULL) AND (ca.DelegateUserID=sd.DelegateUserID) AND (cas.SupervisorDelegateId = sd.ID OR (cas.CandidateAssessmentID IS NULL)
180-
AND ((sa.SupervisorSelfAssessmentReview = 1) OR (sa.SupervisorResultsReview = 1)))) AS CandidateAssessmentCount,
180+
AND ((sa.SupervisorSelfAssessmentReview = 1) OR (sa.SupervisorResultsReview = 1)))
181+
AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryID)
182+
) AS CandidateAssessmentCount,
181183
CAST(COALESCE (au2.IsNominatedSupervisor, 0) AS Bit) AS DelegateIsNominatedSupervisor,
182184
CAST(COALESCE (au2.IsSupervisor, 0) AS Bit) AS DelegateIsSupervisor,
183185
da.ID AS Expr1
@@ -210,7 +212,7 @@ LEFT OUTER JOIN AdminAccounts AS au2
210212
WHERE (sd.SupervisorAdminID = @adminId) AND (sd.Removed IS NULL) AND
211213
(u.ID = da.UserID OR sd.DelegateUserID IS NULL)
212214
ORDER BY u.LastName, COALESCE (u.FirstName, sd.DelegateEmail)
213-
", new { adminId }
215+
", new { adminId, adminIdCategoryID }
214216
);
215217
}
216218

DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public IActionResult MyStaffList(
5959
var supervisorEmail = GetUserEmail();
6060
var loggedInAdminUser = userService.GetAdminUserById(adminId);
6161
var centreRegistrationPrompts = centreRegistrationPromptsService.GetCentreRegistrationPromptsByCentreId(centreId);
62-
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId);
62+
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId, loggedInAdminUser.CategoryId);
6363
var isSupervisor = User.GetCustomClaimAsBool(CustomClaimTypes.IsSupervisor) ?? false;
6464
var allSupervisorDelegateDetailViewModels = supervisorDelegateDetails.Select(
6565
supervisor =>
@@ -337,8 +337,9 @@ public IActionResult AllStaffList()
337337
var adminId = GetAdminId();
338338
var centreId = GetCentreId();
339339
var loggedInUserId = User.GetUserId();
340+
var loggedInAdminUser = userService.GetAdminUserById(adminId);
340341
var centreCustomPrompts = centreRegistrationPromptsService.GetCentreRegistrationPromptsByCentreId(centreId);
341-
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId)
342+
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId,loggedInAdminUser.CategoryId)
342343
.Select(supervisor =>
343344
{
344345
return supervisor;
@@ -1382,12 +1383,13 @@ public IActionResult CompetencySelfAssessmentCertificatesupervisor(int candidate
13821383
{
13831384
var adminId = User.GetAdminId();
13841385
User.GetUserIdKnownNotNull();
1386+
var loggedInAdminUser = userService.GetAdminUserById(adminId.Value);
13851387
var competencymaindata = selfAssessmentService.GetCompetencySelfAssessmentCertificate(candidateAssessmentId);
13861388
if ((competencymaindata == null) || (candidateAssessmentId == 0))
13871389
{
13881390
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
13891391
}
1390-
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId.Value);
1392+
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId.Value,loggedInAdminUser.CategoryId);
13911393
var checkSupervisorDelegate = supervisorDelegateDetails.Where(x => x.DelegateUserID == competencymaindata.LearnerId).FirstOrDefault();
13921394
if ((checkSupervisorDelegate == null))
13931395
{
@@ -1418,14 +1420,17 @@ public async Task<IActionResult> DownloadCertificate(int candidateAssessmentId)
14181420
PdfReportStatusResponse pdfReportStatusResponse = new PdfReportStatusResponse();
14191421
var delegateId = User.GetCandidateIdKnownNotNull();
14201422
var adminId = User.GetAdminId();
1423+
var loggedInAdminUser = userService.GetAdminUserById(adminId.Value);
14211424
var competencymaindata = selfAssessmentService.GetCompetencySelfAssessmentCertificate(candidateAssessmentId);
14221425
if (competencymaindata == null || candidateAssessmentId == 0 || adminId == 0)
14231426
{
14241427
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
14251428
}
1426-
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId.Value);
1427-
var checkSupervisorDelegate = supervisorDelegateDetails.Where(x => x.DelegateUserID == competencymaindata.LearnerId).FirstOrDefault();
1428-
if (checkSupervisorDelegate == null) return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
1429+
1430+
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId.Value, loggedInAdminUser.CategoryId);
1431+
var checkSupervisorDelegate = supervisorDelegateDetails.Where(x => x.DelegateUserID == competencymaindata.LearnerId).FirstOrDefault();
1432+
if (checkSupervisorDelegate == null) return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
1433+
14291434
var delegateUserId = competencymaindata.LearnerId;
14301435
var competencycount = selfAssessmentService.GetCompetencyCountSelfAssessmentCertificate(candidateAssessmentId);
14311436
var accessors = selfAssessmentService.GetAccessor(competencymaindata.SelfAssessmentID, competencymaindata.LearnerId);

DigitalLearningSolutions.Web/Services/SupervisorService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public interface ISupervisorService
1111
{
1212
//GET DATA
1313
DashboardData? GetDashboardDataForAdminId(int adminId);
14-
IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId);
14+
IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId, int? adminIdCategoryID);
1515
SupervisorDelegateDetail GetSupervisorDelegateDetailsById(int supervisorDelegateId, int adminId, int delegateUserId);
1616
SupervisorDelegate GetSupervisorDelegate(int adminId, int delegateUserId);
1717
int? ValidateDelegate(int centreId, string delegateEmail);
@@ -167,9 +167,9 @@ public SupervisorDelegateDetail GetSupervisorDelegateDetailsById(int supervisorD
167167
return supervisorDataService.GetSupervisorDelegateDetailsById(supervisorDelegateId, adminId, delegateUserId);
168168
}
169169

170-
public IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId)
170+
public IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminId(int adminId, int? adminIdCategoryID)
171171
{
172-
return supervisorDataService.GetSupervisorDelegateDetailsForAdminId(adminId);
172+
return supervisorDataService.GetSupervisorDelegateDetailsForAdminId(adminId, adminIdCategoryID);
173173
}
174174

175175
public IEnumerable<SupervisorForEnrolDelegate> GetSupervisorForEnrolDelegate(int CentreID, int CategoryID)

0 commit comments

Comments
 (0)