Skip to content

Commit 9a12aae

Browse files
committed
TD-5638 - 'Assessor', 'Educator/Manager' have been changed to 'Supervisor', 'Nominated Supervisor' respectively. Changes have been made to the view, backend, stored procedure.
1 parent 56fa4e1 commit 9a12aae

19 files changed

+289
-63
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
namespace DigitalLearningSolutions.Data.Migrations
2+
{
3+
using FluentMigrator;
4+
5+
[Migration(202508261415)]
6+
public class RemoveCustomAdminTitlesAddSupervisorNominatedSupervisor : ForwardOnlyMigration
7+
{
8+
public override void Up()
9+
{
10+
Execute.Sql($@"
11+
-- 1. Drop old FK
12+
ALTER TABLE [dbo].[SelfAssessmentSupervisorRoles]
13+
DROP CONSTRAINT [FK_SelfAssessmentSupervisorRoles_SelfAssessmentID_SelfAssessments_ID];
14+
15+
16+
-- 2. Make column nullable
17+
ALTER TABLE [dbo].[SelfAssessmentSupervisorRoles]
18+
ALTER COLUMN SelfAssessmentID INT NULL;
19+
20+
21+
-- 3. Recreate FK (allows NULLs by default)
22+
ALTER TABLE [dbo].[SelfAssessmentSupervisorRoles]
23+
ADD CONSTRAINT [FK_SelfAssessmentSupervisorRoles_SelfAssessmentID_SelfAssessments_ID]
24+
FOREIGN KEY (SelfAssessmentID) REFERENCES SelfAssessments(ID);
25+
26+
27+
-- 4. Add two default roles
28+
INSERT INTO [dbo].[SelfAssessmentSupervisorRoles]
29+
([SelfAssessmentID],[RoleName],[SelfAssessmentReview],[ResultsReview]
30+
,[RoleDescription]
31+
,[AllowDelegateNomination],[AllowSupervisorRoleSelection])
32+
VALUES
33+
(NULL,'Supervisor',1,1
34+
,'This person may be the line manager, practice educator or educational supervisor at University.'
35+
,0,1),
36+
(NULL,'Nominated Supervisor',0,1
37+
,'Nominated Supervisors must be deemed competent to administer intravenous medication by their home organisation. Nominated Supervisors should be authorised to supervise and assess the practice of others by their line manager, who should consider their level of experience.'
38+
,1,0);
39+
40+
41+
-- 5. Update all CandidateAssessmentSupervisor records
42+
UPDATE cas
43+
SET cas.SelfAssessmentSupervisorRoleID =
44+
    CASE
45+
        WHEN sasr.RoleName = 'Educator/Manager' THEN sup.ID
46+
        WHEN sasr.RoleName = 'Assessor'         THEN nom.ID
47+
    END
48+
FROM CandidateAssessmentSupervisors cas
49+
INNER JOIN SelfAssessmentSupervisorRoles sasr
50+
    ON cas.SelfAssessmentSupervisorRoleID = sasr.ID
51+
LEFT JOIN SelfAssessmentSupervisorRoles sup
52+
    ON sup.RoleName = 'Supervisor'
53+
LEFT JOIN SelfAssessmentSupervisorRoles nom
54+
    ON nom.RoleName = 'Nominated Supervisor';
55+
56+
57+
-- 6. Remove all existing roles where SelfAssessmentID is not null
58+
DELETE FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID IS NOT NULL;
59+
"
60+
);
61+
}
62+
}
63+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
namespace DigitalLearningSolutions.Data.Migrations
2+
{
3+
using FluentMigrator;
4+
5+
[Migration(202508281600)]
6+
public class AlterGetCandidateAssessmentResultsByIdSP : Migration
7+
{
8+
public override void Up()
9+
{
10+
Execute.Sql(Properties.Resources.TD_5638_Alter_GetCandidateAssessmentResultsById_Up);
11+
}
12+
public override void Down()
13+
{
14+
Execute.Sql(Properties.Resources.TD_5638_Alter_GetCandidateAssessmentResultsById_DOWN);
15+
}
16+
}
17+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+

2+
3+
namespace DigitalLearningSolutions.Data.Migrations
4+
{
5+
using FluentMigrator;
6+
7+
[Migration(202508281630)]
8+
public class AlterGetAssessmentResultsByDelegateSP : Migration
9+
{
10+
public override void Up()
11+
{
12+
Execute.Sql(Properties.Resources.TD_5638_Alter_GetAssessmentResultsByDelegate_Up);
13+
}
14+
public override void Down()
15+
{
16+
Execute.Sql(Properties.Resources.TD_5638_Alter_GetAssessmentResultsByDelegate_DOWN);
17+
}
18+
}
19+
}

DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs

Lines changed: 96 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,4 +505,16 @@
505505
<data name="TD_5535_Alter_GetActivitiesForDelegateEnrolment_Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
506506
<value>..\Scripts\TD-5535-Alter_GetActivitiesForDelegateEnrolment_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
507507
</data>
508+
<data name="TD_5638_Alter_GetAssessmentResultsByDelegate_DOWN" type="System.Resources.ResXFileRef, System.Windows.Forms">
509+
<value>..\Scripts\TD-5638-Alter_GetAssessmentResultsByDelegate_DOWN.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
510+
</data>
511+
<data name="TD_5638_Alter_GetAssessmentResultsByDelegate_Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
512+
<value>..\Scripts\TD-5638-Alter_GetAssessmentResultsByDelegate_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
513+
</data>
514+
<data name="TD_5638_Alter_GetCandidateAssessmentResultsById_DOWN" type="System.Resources.ResXFileRef, System.Windows.Forms">
515+
<value>..\Scripts\TD-5638-Alter_GetCandidateAssessmentResultsById_DOWN.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
516+
</data>
517+
<data name="TD_5638_Alter_GetCandidateAssessmentResultsById_Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
518+
<value>..\Scripts\TD-5638-Alter_GetCandidateAssessmentResultsById_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
519+
</data>
508520
</root>

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,22 +202,29 @@ CandidateAssessments AS CA LEFT OUTER JOIN
202202
CAST(CASE WHEN CA.SelfAssessmentProcessAgreed IS NOT NULL THEN 1 ELSE 0 END AS BIT) AS SelfAssessmentProcessAgreed,
203203
CAST(CASE WHEN SA.SupervisorSelfAssessmentReview = 1 OR SA.SupervisorResultsReview = 1 THEN 1 ELSE 0 END AS BIT) AS IsSupervised,
204204
CASE
205-
WHEN (SELECT COUNT(*) FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID = @selfAssessmentId AND AllowDelegateNomination = 1) > 0
205+
WHEN (SELECT COUNT(*) FROM SelfAssessmentSupervisorRoles WHERE
206+
(SelfAssessmentID = @selfAssessmentId OR
207+
(SelfAssessmentID IS NULL AND NOT EXISTS (SELECT 1 FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID = @selfAssessmentId)))
208+
AND AllowDelegateNomination = 1) > 0
206209
THEN 1
207210
ELSE 0
208211
END AS HasDelegateNominatedRoles,
209212
COALESCE(
210213
(SELECT TOP (1) RoleName FROM SelfAssessmentSupervisorRoles
211-
WHERE (ResultsReview = 1) AND (SelfAssessmentID = @selfAssessmentId) AND
214+
WHERE (ResultsReview = 1) AND (SelfAssessmentID = @selfAssessmentId OR
215+
(SelfAssessmentID IS NULL AND NOT EXISTS (SELECT 1 FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID = @selfAssessmentId))) AND
212216
((SELECT COUNT(*) AS Expr1 FROM SelfAssessmentSupervisorRoles AS SelfAssessmentSupervisorRoles_1
213-
WHERE (ResultsReview = 1) AND (SelfAssessmentID = @selfAssessmentId)) = 1)),
217+
WHERE (ResultsReview = 1) AND (SelfAssessmentID = @selfAssessmentId OR
218+
(SelfAssessmentID IS NULL AND NOT EXISTS (SELECT 1 FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID = @selfAssessmentId)))) = 1)),
214219
'Supervisor') AS VerificationRoleName,
215220
COALESCE(
216221
(SELECT TOP (1) RoleName FROM SelfAssessmentSupervisorRoles
217-
WHERE (SelfAssessmentReview = 1) AND (SelfAssessmentID = @selfAssessmentId) AND
222+
WHERE (SelfAssessmentReview = 1) AND (SelfAssessmentID = @selfAssessmentId OR
223+
(SelfAssessmentID IS NULL AND NOT EXISTS (SELECT 1 FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID = @selfAssessmentId))) AND
218224
((SELECT COUNT(*) AS Expr1
219225
FROM SelfAssessmentSupervisorRoles AS SelfAssessmentSupervisorRoles_1
220-
WHERE (SelfAssessmentReview = 1) AND (SelfAssessmentID = @selfAssessmentId)) = 1)),
226+
WHERE (SelfAssessmentReview = 1) AND (SelfAssessmentID = @selfAssessmentId OR
227+
(SelfAssessmentID IS NULL AND NOT EXISTS (SELECT 1 FROM SelfAssessmentSupervisorRoles WHERE SelfAssessmentID = @selfAssessmentId)))) = 1)),
221228
'Supervisor') AS SignOffRoleName,
222229
SA.SignOffRequestorStatement,
223230
SA.ManageSupervisorsDescription,

0 commit comments

Comments
 (0)