Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,24 @@ public IActionResult AddComptencies(AddCompetenciesFormData model, int competenc
{
if (!ModelState.IsValid)
{
//reload model and view
var adminId = GetAdminID();
var competencyAssessmentBase = competencyAssessmentService.GetCompetencyAssessmentBaseById(competencyAssessmentId, adminId);
var framework = frameworkService.GetBaseFrameworkByFrameworkId(frameworkId, adminId);
var groupedCompetencies = frameworkService.GetFrameworkCompetencyGroups(frameworkId, competencyAssessmentId);
var ungroupedCompetencies = frameworkService.GetFrameworkCompetenciesUngrouped(frameworkId, competencyAssessmentId);
var competencyIds = ungroupedCompetencies.Select(c => c.CompetencyID).ToArray();
var competencyFlags = frameworkService.GetSelectedCompetencyFlagsByCompetecyIds(competencyIds);
foreach (var competency in ungroupedCompetencies)
competency.CompetencyFlags = competencyFlags.Where(f => f.CompetencyId == competency.CompetencyID);
foreach (var group in groupedCompetencies)
{
competencyIds = group.FrameworkCompetencies.Select(c => c.CompetencyID).ToArray();
competencyFlags = frameworkService.GetSelectedCompetencyFlagsByCompetecyIds(competencyIds);
foreach (var competency in group.FrameworkCompetencies)
competency.CompetencyFlags = competencyFlags.Where(f => f.CompetencyId == competency.CompetencyID);
}
var models = new AddCompetenciesViewModel(competencyAssessmentBase, groupedCompetencies, ungroupedCompetencies, frameworkId, framework.FrameworkName, model.SelectedCompetencyIds);
return View("AddCompetencies", models);
}
if (model.SelectedCompetencyIds != null)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
namespace DigitalLearningSolutions.Web.ViewModels.CompetencyAssessments
using System.ComponentModel.DataAnnotations;

namespace DigitalLearningSolutions.Web.ViewModels.CompetencyAssessments
{
public class AddCompetenciesFormData
{
public int ID { get; set; }
[Required(ErrorMessage = "Select at least one competency")]
public int[] SelectedCompetencyIds { get; set; }
public int FrameworkId { get; set; }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
using DigitalLearningSolutions.Data.Models.Frameworks;
using DigitalLearningSolutions.Web.Helpers;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

public class AddCompetenciesViewModel
{
public AddCompetenciesViewModel(CompetencyAssessmentBase competencyAssessmentBase, IEnumerable<FrameworkCompetencyGroup> groupedCompetencies, IEnumerable<FrameworkCompetency> ungroupedCompetencies, int frameworkId, string? frameworkName, int[] selectedFrameworkCompetencies)
Expand All @@ -26,6 +28,7 @@ public AddCompetenciesViewModel(CompetencyAssessmentBase competencyAssessmentBas
public string VocabularyPlural { get; set; }
public IEnumerable<FrameworkCompetencyGroup> GroupedCompetencies { get; set; }
public IEnumerable<FrameworkCompetency> UngroupedCompetencies { get; set; }
[Required(ErrorMessage = "Select at least one competency")]
public int[] SelectedCompetencyIds { get; set; }
public int FrameworkId { get; set; }
public string? FrameworkName { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
@{
ViewData["Title"] = $"Add {@Model.VocabularyPlural.ToLower()} to self-assessment";
ViewData["Application"] = "Framework service";
var errorHasOccurred = !ViewData.ModelState.IsValid;
}
<link rel="stylesheet" href="@Url.Content("~/css/frameworks/frameworksShared.css")" asp-append-version="true">
@section NavMenuItems {
Expand All @@ -24,6 +25,10 @@
}

<form method="post">
@if (errorHasOccurred)
{
<vc:error-summary order-of-property-names="@(new[] { nameof(Model.SelectedCompetencyIds)})" />
}
<nhs-form-group nhs-validation-for="SelectedCompetencyIds">
<fieldset class="nhsuk-fieldset">
<legend class="nhsuk-fieldset__legend">
Expand Down
Loading