Skip to content

Commit

Permalink
Merge branch 'master' into Automatic_version_update_dependabot
Browse files Browse the repository at this point in the history
  • Loading branch information
kevwhitt-hee committed Jan 24, 2025
2 parents 6ecf639 + 17ad383 commit edd6477
Show file tree
Hide file tree
Showing 15 changed files with 175 additions and 32 deletions.
20 changes: 16 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,35 @@
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
registries:
tel-azure-package-source:
type: nuget-feed
url: "https://pkgs.dev.azure.com/e-LfH/_packaging/LearningHubFeed/nuget/v3/index.json"
username: "kevin.whittaker"
password: ${{ secrets.AZURE_DEVOPS_PAT }}
nuget-package-source:
type: nuget-feed
url: "https://api.nuget.org/v3/index.json"
updates:
- package-ecosystem: "nuget"
directory: "/" # Location of package manifests
schedule:
interval: "daily"
open-pull-requests-limit: 10
registries:
- tel-azure-package-source
- nuget-package-source
target-branch: "Automatic_version_update_dependabot"
ignore:
# Ignore updates to packages that start with 'Wildcards'
- dependency-name: "Microsoft.FeatureManagement.AspNetCore*"
# Ignore some updates to the package
- dependency-name: "Microsoft.VisualStudio.Web.CodeGeneration.Design"
versions: [">7.0.0"]
versions: [">9.0.0"]
- dependency-name: "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
versions: [">7.0.0"]
versions: [">9.0.0"]
- dependency-name: "Microsoft.AspNetCore.Mvc.Testing"
versions: [">7.0.0"]
versions: [">9.0.0"]
- dependency-name: "Selenium.WebDriver.ChromeDriver"
versions: ">=113.0.5672.1278" # Recommended version
# For all packages, ignore all patch updates
Expand All @@ -34,7 +46,7 @@ updates:
interval: "daily"
target-branch: "Automatic_version_update_dependabot"
# - "dependencies"
open-pull-requests-limit: 7
open-pull-requests-limit: 10
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
7 changes: 6 additions & 1 deletion .github/workflows/auto-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,12 @@ jobs:
echo "Skipping 'auto-merge' workflow check to prevent self-referencing."
continue
fi
# If any check is still queued, set ALL_COMPLETED to false
if [[ "$status" == "QUEUED" ]]; then
ALL_COMPLETED=false
fi
# If any check is still in progress, set ALL_COMPLETED to false
if [[ "$status" == "IN_PROGRESS" ]]; then
ALL_COMPLETED=false
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
namespace DigitalLearningSolutions.Data.Migrations
{
using FluentMigrator;

[Migration(202412020900)]
public class UpdateCandidateAssessmentSupervisorsTable : ForwardOnlyMigration
{
public override void Up()
{
Execute.Sql($@"UPDATE cas
SET SelfAssessmentSupervisorRoleID = (SELECT ID FROM SelfAssessmentSupervisorRoles
WHERE SelfAssessmentID = ssr.SelfAssessmentID and AllowDelegateNomination = 1)
FROM CandidateAssessmentSupervisors cas INNER JOIN
SelfAssessmentSupervisorRoles ssr ON cas.SelfAssessmentSupervisorRoleID = ssr.ID
AND cas.Removed IS NULL AND ssr.AllowDelegateNomination = 0 INNER JOIN
SupervisorDelegates sd ON cas.SupervisorDelegateId = sd.ID INNER JOIN
AdminAccounts aa ON sd.SupervisorAdminID = aa.ID
WHERE aa.IsSupervisor = 0 AND aa.IsNominatedSupervisor = 1
-- to exclude duplicate CandidateAssessmentID from update
AND cas.CandidateAssessmentID NOT IN (
SELECT CandidateAssessmentID FROM CandidateAssessmentSupervisors WHERE CandidateAssessmentID in (
SELECT Cas2.CandidateAssessmentID
FROM CandidateAssessmentSupervisors cas2 with (nolock) INNER JOIN
SelfAssessmentSupervisorRoles ssr2 with (nolock) ON cas2.SelfAssessmentSupervisorRoleID = ssr2.ID
AND cas2.Removed IS NULL AND ssr2.AllowDelegateNomination = 0 INNER JOIN
SupervisorDelegates sd2 with (nolock) ON cas2.SupervisorDelegateId = sd2.ID INNER JOIN
AdminAccounts aa2 with (nolock) ON sd2.SupervisorAdminID = aa2.ID
WHERE aa2.IsSupervisor = 0 AND aa2.IsNominatedSupervisor = 1
)
GROUP BY CandidateAssessmentID,SupervisorDelegateId
HAVING COUNT(*)>1
)"
);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ LEFT OUTER JOIN UserCentreDetails AS UCD ON
new { candidateAssessmentId, enrolmentMethodId, completeByDateDynamic }
);
}
if (candidateAssessmentId > 1 && supervisorDelegateId !=0)
if (candidateAssessmentId > 1 && supervisorDelegateId != 0)
{
string sqlQuery = $@"
BEGIN TRANSACTION
Expand All @@ -551,17 +551,17 @@ BEGIN TRANSACTION
UPDATE CandidateAssessmentSupervisors SET Removed = NULL
{((selfAssessmentSupervisorRoleId > 0) ? " ,SelfAssessmentSupervisorRoleID = @selfAssessmentSupervisorRoleID" : string.Empty)}
WHERE CandidateAssessmentID = @candidateAssessmentId
WHERE CandidateAssessmentID = @candidateAssessmentId AND SupervisorDelegateId = @supervisorDelegateId
COMMIT TRANSACTION";

connection.Execute(sqlQuery
, new { candidateAssessmentId, selfAssessmentSupervisorRoleId, enrolmentMethodId, completeByDateDynamic });
, new { candidateAssessmentId, selfAssessmentSupervisorRoleId, enrolmentMethodId, completeByDateDynamic, supervisorDelegateId });
}

if (supervisorId > 0)
{

var adminUserId = Convert.ToInt32(connection.ExecuteScalar(@"SELECT UserID FROM AdminAccounts WHERE (AdminAccounts.ID = @supervisorId)",
new { supervisorId })
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,85 @@

public partial class SelfAssessmentDataService
{
public IEnumerable<CurrentSelfAssessment> GetSelfAssessmentsForCandidate(int delegateUserId, int centreId, int? adminIdCategoryID)
{
return connection.Query<CurrentSelfAssessment>(
@"SELECT SelfAssessment.Id,
SelfAssessment.Name,
SelfAssessment.Description,
SelfAssessment.IncludesSignposting,
SelfAssessment.IncludeRequirementsFilters,
SelfAssessment. IsSupervisorResultsReviewed,
SelfAssessment.ReviewerCommentsLabel,
SelfAssessment. Vocabulary,
SelfAssessment. NumberOfCompetencies,
SelfAssessment.StartedDate,
SelfAssessment.LastAccessed,
SelfAssessment.CompleteByDate,
SelfAssessment.CandidateAssessmentId,
SelfAssessment.UserBookmark,
SelfAssessment.UnprocessedUpdates,
SelfAssessment.LaunchCount,
SelfAssessment. IsSelfAssessment,
SelfAssessment.SubmittedDate,
SelfAssessment. CentreName,
SelfAssessment.EnrolmentMethodId,
Signoff.SignedOff,
Signoff.Verified,
EnrolledByForename +' '+EnrolledBySurname AS EnrolledByFullName
FROM (SELECT
CA.SelfAssessmentID AS Id,
SA.Name,
SA.Description,
SA.IncludesSignposting,
SA.IncludeRequirementsFilters,
SA.SupervisorResultsReview AS IsSupervisorResultsReviewed,
SA.ReviewerCommentsLabel,
COALESCE(SA.Vocabulary, 'Capability') AS Vocabulary,
COUNT(C.ID) AS NumberOfCompetencies,
CA.StartedDate,
CA.LastAccessed,
CA.CompleteByDate,
CA.ID AS CandidateAssessmentId,
CA.UserBookmark,
CA.UnprocessedUpdates,
CA.LaunchCount,
1 AS IsSelfAssessment,
CA.SubmittedDate,
CR.CentreName AS CentreName,
CA.EnrolmentMethodId,
uEnrolledBy.FirstName AS EnrolledByForename,
uEnrolledBy.LastName AS EnrolledBySurname
FROM Centres AS CR INNER JOIN
CandidateAssessments AS CA INNER JOIN
SelfAssessments AS SA ON CA.SelfAssessmentID = SA.ID ON CR.CentreID = CA.CentreID INNER JOIN
CentreSelfAssessments AS csa ON csa.SelfAssessmentID = SA.ID AND csa.CentreID = @centreId LEFT OUTER JOIN
Competencies AS C RIGHT OUTER JOIN
SelfAssessmentStructure AS SAS ON C.ID = SAS.CompetencyID ON CA.SelfAssessmentID = SAS.SelfAssessmentID LEFT OUTER JOIN
CandidateAssessmentSupervisors AS cas ON ca.ID =cas.CandidateAssessmentID LEFT OUTER JOIN
CandidateAssessmentSupervisorVerifications AS casv ON casv.CandidateAssessmentSupervisorID = cas.ID LEFT OUTER JOIN
AdminAccounts AS aaEnrolledBy ON aaEnrolledBy.ID = CA.EnrolledByAdminID LEFT OUTER JOIN
Users AS uEnrolledBy ON uEnrolledBy.ID = aaEnrolledBy.UserID
WHERE (CA.DelegateUserID = @delegateUserId) AND (CA.RemovedDate IS NULL) AND (CA.CompletedDate IS NULL)
AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId)
GROUP BY
CA.SelfAssessmentID, SA.Name, SA.Description, SA.IncludesSignposting, SA.SupervisorResultsReview,
SA.ReviewerCommentsLabel, SA.IncludeRequirementsFilters,
COALESCE(SA.Vocabulary, 'Capability'), CA.StartedDate, CA.LastAccessed, CA.CompleteByDate,
CA.ID,
CA.UserBookmark, CA.UnprocessedUpdates, CA.LaunchCount, CA.SubmittedDate, CR.CentreName,CA.EnrolmentMethodId,
uEnrolledBy.FirstName,uEnrolledBy.LastName)SelfAssessment LEFT OUTER JOIN
(SELECT SelfAssessmentID,casv.SignedOff,MAX(casv.Verified) Verified FROM
CandidateAssessments AS CA LEFT OUTER JOIN
CandidateAssessmentSupervisors AS cas ON ca.ID =cas.CandidateAssessmentID LEFT OUTER JOIN
CandidateAssessmentSupervisorVerifications AS casv ON casv.CandidateAssessmentSupervisorID = cas.ID
WHERE (CA.DelegateUserID = @delegateUserId) AND (CA.RemovedDate IS NULL) AND (CA.CompletedDate IS NULL) AND (casv.SignedOff = 1) AND
(casv.Verified IS NOT NULL)
GROUP BY SelfAssessmentID,casv.SignedOff
)Signoff ON SelfAssessment.Id =Signoff.SelfAssessmentID",
new { delegateUserId, centreId, adminIdCategoryID }
);
}
public IEnumerable<CurrentSelfAssessment> GetSelfAssessmentsForCandidate(int delegateUserId, int centreId)
{
return connection.Query<CurrentSelfAssessment>(
Expand Down Expand Up @@ -86,7 +165,6 @@ CandidateAssessments AS CA LEFT OUTER JOIN
new { delegateUserId, centreId }
);
}

public CurrentSelfAssessment? GetSelfAssessmentForCandidateById(int delegateUserId, int selfAssessmentId)
{
return connection.QueryFirstOrDefault<CurrentSelfAssessment>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ public IEnumerable<Competency> GetResultSupervisorVerifications(int selfAssessme
INNER JOIN DelegateAccounts DA1 ON CA.DelegateUserID = DA1.UserID AND au.CentreID = DA1.CentreID AND DA1.Active=1
WHERE (LAR.Verified IS NULL) 
AND ((LAR.Result IS NOT NULL) OR (LAR.SupportingComments IS NOT NULL)) 
AND (LAR.Requested IS NOT NULL)
AND (LAR.Requested IS NOT NULL) AND (au.CategoryID = 0 OR au.CategoryID = (select CategoryID from SelfAssessments where ID = @selfAssessmentId))
ORDER BY SupervisorVerificationRequested DESC, C.Name",
(competency, assessmentQuestion) =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ int competencyId

// CandidateAssessmentsDataService

IEnumerable<CurrentSelfAssessment> GetSelfAssessmentsForCandidate(int delegateUserId, int centreId, int? adminIdCategoryID);
IEnumerable<CurrentSelfAssessment> GetSelfAssessmentsForCandidate(int delegateUserId, int centreId);

CurrentSelfAssessment? GetSelfAssessmentForCandidateById(int delegateUserId, int selfAssessmentId);

void UpdateLastAccessed(int selfAssessmentId, int delegateUserId);
Expand Down Expand Up @@ -174,7 +174,6 @@ int GetSelfAssessmentActivityDelegatesExportCount(string searchString, string so
bool HasMinimumOptionalCompetencies(int selfAssessmentId, int delegateUserId);
int GetSelfAssessmentCategoryId(int selfAssessmentId);
}

public partial class SelfAssessmentDataService : ISelfAssessmentDataService
{
private readonly IDbConnection connection;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public interface ISupervisorDataService
DelegateSelfAssessment? GetSelfAssessmentByCandidateAssessmentId(int candidateAssessmentId, int adminId, int? adminIdCategoryId);
IEnumerable<SupervisorDashboardToDoItem> GetSupervisorDashboardToDoItemsForRequestedSignOffs(int adminId);
IEnumerable<SupervisorDashboardToDoItem> GetSupervisorDashboardToDoItemsForRequestedReviews(int adminId);
DelegateSelfAssessment? GetSelfAssessmentBaseByCandidateAssessmentId(int candidateAssessmentId);
DelegateSelfAssessment? GetSelfAssessmentBaseByCandidateAssessmentId(int candidateAssessmentId, int? adminIdCategoryId);
IEnumerable<RoleProfile> GetAvailableRoleProfilesForDelegate(int candidateId, int centreId, int? categoryId);
RoleProfile? GetRoleProfileById(int selfAssessmentId);
IEnumerable<SelfAssessmentSupervisorRole> GetSupervisorRolesForSelfAssessment(int selfAssessmentId);
Expand Down Expand Up @@ -594,7 +594,7 @@ FROM CandidateAssessmentSupervisors AS cas INNER JOIN
WHERE (ca.RemovedDate IS NULL) AND (cas.SupervisorDelegateId = @supervisorDelegateId) AND (cas.Removed IS NULL) AND (sa.ID = @selfAssessmentId)", new { selfAssessmentId, supervisorDelegateId }
).FirstOrDefault();
}
public DelegateSelfAssessment? GetSelfAssessmentBaseByCandidateAssessmentId(int candidateAssessmentId)
public DelegateSelfAssessment? GetSelfAssessmentBaseByCandidateAssessmentId(int candidateAssessmentId, int? adminIdCategoryId)
{
return connection.Query<DelegateSelfAssessment>(
@$"SELECT ca.ID, sa.ID AS SelfAssessmentID, sa.Name AS RoleName, sa.QuestionLabel, sa.DescriptionLabel, sa.ReviewerCommentsLabel,
Expand All @@ -611,7 +611,7 @@ FROM SelfAssessmentResultSupervisorVerifications AS sarsv
FROM CandidateAssessmentSupervisors AS cas INNER JOIN
CandidateAssessments AS ca ON cas.CandidateAssessmentID = ca.ID INNER JOIN
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID
WHERE (ca.ID = @candidateAssessmentId)", new { candidateAssessmentId }
WHERE (ca.ID = @candidateAssessmentId) AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId)", new { candidateAssessmentId, adminIdCategoryId }
).FirstOrDefault();
}
public DelegateSelfAssessment? GetSelfAssessmentBySupervisorDelegateCandidateAssessmentId(int candidateAssessmentId, int supervisorDelegateId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,10 @@ bool isCentreManager
IsContentCreator = @isContentCreator,
IsContentManager = @isContentManager,
ImportOnly = @importOnly,
CategoryID = @categoryId,
CategoryID = CASE
WHEN @categoryID = 0 THEN NULL
ELSE @categoryID
END,
IsCentreManager = @isCentreManager
WHERE ID = @adminId",
new
Expand Down
Loading

0 comments on commit edd6477

Please sign in to comment.