Skip to content

Commit 8a6cb20

Browse files
authored
Merge pull request #3052 from TechnologyEnhancedLearning/Develop/Features/TD-5162-ImportCompetenciesSummaryPage
TD-5162 import competencies summary page
2 parents a9e30f8 + 4ea46fb commit 8a6cb20

File tree

4 files changed

+162
-4
lines changed

4 files changed

+162
-4
lines changed

DigitalLearningSolutions.Web/Controllers/FrameworksController/ImportCompetencies.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public IActionResult AddAssessmentQuestions(AddAssessmentQuestionsFormData model
187187
{
188188
data.AddAssessmentQuestionsOption = 1;
189189
setBulkUploadData(data);
190-
return RedirectToAction("Summary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
190+
return RedirectToAction("ImportSummary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
191191
}
192192
}
193193
[Route("/Framework/{frameworkId}/{tabname}/Import/AssessmentQuestions/Competencies")]
@@ -215,7 +215,14 @@ public IActionResult AddQuestionsToWhichCompetencies(int AddAssessmentQuestionsO
215215
var data = GetBulkUploadData();
216216
data.AddAssessmentQuestionsOption = AddAssessmentQuestionsOption;
217217
setBulkUploadData(data);
218-
return RedirectToAction("Summary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
218+
return RedirectToAction("ImportSummary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
219+
}
220+
[Route("/Framework/{frameworkId}/{tabname}/Import/Summary")]
221+
public IActionResult ImportSummary()
222+
{
223+
var data = GetBulkUploadData();
224+
var model = new ImportSummaryViewModel(data);
225+
return View("Developer/Import/ImportSummary", model);
219226
}
220227
[Route("CancelImport")]
221228
public IActionResult CancelImport()
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using DigitalLearningSolutions.Web.Helpers;
2+
using DigitalLearningSolutions.Web.Models;
3+
using System.Collections.Generic;
4+
5+
namespace DigitalLearningSolutions.Web.ViewModels.Frameworks.Import
6+
{
7+
public class ImportSummaryViewModel
8+
{
9+
public ImportSummaryViewModel(BulkCompetenciesData data)
10+
{
11+
FrameworkName = data.FrameworkName;
12+
PublishStatusID = data.PublishStatusID;
13+
FrameworkVocabularySingular = FrameworkVocabularyHelper.VocabularySingular(data.FrameworkVocubulary);
14+
FrameworkVocabularyPlural = FrameworkVocabularyHelper.VocabularyPlural(data.FrameworkVocubulary);
15+
ToProcessCount = data.CompetenciesToProcessCount;
16+
CompetenciesToAddCount = data.CompetenciesToAddCount;
17+
CompetenciesToReorderCount = data.CompetenciesToReorderCount;
18+
ToUpdateOrSkipCount = data.CompetenciesToUpdateCount;
19+
AddAssessmentQuestionsOption = data.AddAssessmentQuestionsOption;
20+
AddDefaultAssessmentQuestions = data.AddDefaultAssessmentQuestions;
21+
AddCustomAssessmentQuestion = data.AddCustomAssessmentQuestion;
22+
DefaultAssessmentQuestionIDs = data.DefaultQuestionIDs;
23+
CustomAssessmentQuestionID = data.CustomAssessmentQuestionID;
24+
ReorderCompetenciesOption = data.ReorderCompetenciesOption;
25+
}
26+
public string? FrameworkName { get; set; }
27+
public int PublishStatusID { get; set; }
28+
public string FrameworkVocabularySingular { get; set; }
29+
public string FrameworkVocabularyPlural { get; set; }
30+
public int ToProcessCount { get; set; }
31+
public int CompetenciesToAddCount { get; set; }
32+
public int CompetenciesToReorderCount { get; set; }
33+
public int ToUpdateOrSkipCount { get; set; }
34+
public int AddAssessmentQuestionsOption { get; set; } = 1; //1 = only added, 2 = added and updated, 3 = all uploaded
35+
public bool AddDefaultAssessmentQuestions { get; set; }
36+
public bool AddCustomAssessmentQuestion { get; set; }
37+
public List<int> DefaultAssessmentQuestionIDs { get; set; }
38+
public int? CustomAssessmentQuestionID { get; set; }
39+
public int ReorderCompetenciesOption { get; set; } = 1; //1 = ignore order, 2 = apply order
40+
}
41+
}

DigitalLearningSolutions.Web/Views/Frameworks/Developer/Import/AddQuestionsToWhichCompetencies.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@
5959
<div class="nhsuk-radios__item">
6060
<input class="nhsuk-radios__input" id="option-2" asp-for="@Model.AddAssessmentQuestionsOption" type="radio" value="2" aria-describedby="option-2-hint">
6161
<label class="nhsuk-label nhsuk-radios__label" for="option-2">
62-
Only add questions to @(Model.CompetenciesToAddCount > 0 ? Model.CompetenciesToAddCount + " new and " : "") modified @Model.FrameworkVocabularyPlural.ToLower()
62+
Only add questions to @(Model.CompetenciesToAddCount > 0 ? " new and " : "") modified @Model.FrameworkVocabularyPlural.ToLower()
6363
</label>
6464
<div class="nhsuk-hint nhsuk-radios__hint" id="option-2-hint">
65-
@(Model.CompetenciesToAddCount > 0 ? Model.CompetenciesToAddCount + " new @Model.FrameworkVocabularyPlural.ToLower() and only those of the " : "Only those of the ") @Model.CompetenciesToUpdateCount existing @Model.FrameworkVocabularyPlural.ToLower() that have been modified in the sheet will have the assessment questions added
65+
@(Model.CompetenciesToAddCount > 0 ? Model.CompetenciesToAddCount + $" new {@Model.FrameworkVocabularyPlural.ToLower()} and only those of the " : "Only those of the ") @Model.CompetenciesToUpdateCount existing @Model.FrameworkVocabularyPlural.ToLower() that have been modified in the sheet will have the assessment questions added
6666
</div>
6767
</div>
6868
<div class="nhsuk-radios__item">
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
@inject IConfiguration Configuration
2+
@using DigitalLearningSolutions.Web.Extensions
3+
@using DigitalLearningSolutions.Web.ViewModels.Frameworks.Import
4+
@using Microsoft.Extensions.Configuration
5+
@model ImportSummaryViewModel
6+
@{
7+
ViewData["Title"] = "Framework - Import Competencies";
8+
ViewData["Application"] = "Framework Service";
9+
ViewData["HeaderPathName"] = "Framework Service";
10+
var errorHasOccurred = !ViewData.ModelState.IsValid;
11+
var cancelLinkData = Html.GetRouteValues();
12+
var process = Model.CompetenciesToAddCount > 0 && Model.ToUpdateOrSkipCount > 0 ? "add and update" : Model.CompetenciesToAddCount > 0 ? "add" : "update";
13+
var addQsTo = Model.AddAssessmentQuestionsOption == 1 ? "new" : Model.AddAssessmentQuestionsOption == 2 ? "new and updated" : "all";
14+
}
15+
<link rel="stylesheet" href="@Url.Content("~/css/frameworks/frameworksShared.css")" asp-append-version="true">
16+
@section NavMenuItems {
17+
<partial name="Shared/_NavMenuItems" />
18+
}
19+
@section NavBreadcrumbs {
20+
<nav class="nhsuk-breadcrumb" aria-label="Breadcrumb">
21+
<div class="nhsuk-width-container">
22+
<ol class="nhsuk-breadcrumb__list">
23+
<li class="nhsuk-breadcrumb__item"><a class="nhsuk-breadcrumb__link trigger-loader" asp-action="ViewFrameworks" asp-route-tabname="Mine">Frameworks</a></li>
24+
<li class="nhsuk-breadcrumb__item"><a class="nhsuk-breadcrumb__link trigger-loader" asp-action="ViewFramework" asp-route-frameworkId="@ViewContext.RouteData.Values["frameworkId"]" asp-route-tabname="Structure">Framework Structure</a></li>
25+
<li class="nhsuk-breadcrumb__item">Excel import</li>
26+
</ol>
27+
<p class="nhsuk-breadcrumb__back"><a class="nhsuk-breadcrumb__backlink" asp-action="ViewFramework" asp-route-frameworkId="@ViewContext.RouteData.Values["frameworkId"]" asp-route-tabname="Structure">Back to framework structure</a></p>
28+
</div>
29+
</nav>
30+
}
31+
<div class="nhsuk-grid-row">
32+
<div class="nhsuk-grid-column-full">
33+
<h1 class="nhsuk-heading-xl">@Model.FrameworkVocabularyPlural import summary</h1>
34+
<p class="nhsuk-body-l nhsuk-u-reading-width">Your @Model.FrameworkVocabularySingular.ToLower() sheet is ready to be processed. Please check the details below are correct before proceeding to @process @Model.FrameworkVocabularyPlural.ToLower() in the framework @Model.FrameworkName.</p>
35+
<h2>Upload summary</h2>
36+
<dl class="nhsuk-summary-list">
37+
38+
<div class="nhsuk-summary-list__row">
39+
<dt class="nhsuk-summary-list__key">
40+
@Model.FrameworkVocabularySingular rows uploaded
41+
</dt>
42+
<dd class="nhsuk-summary-list__value">
43+
@Model.ToProcessCount
44+
</dd>
45+
46+
</div>
47+
48+
<div class="nhsuk-summary-list__row">
49+
<dt class="nhsuk-summary-list__key">
50+
@Model.FrameworkVocabularyPlural to add
51+
</dt>
52+
<dd class="nhsuk-summary-list__value">
53+
@Model.CompetenciesToAddCount
54+
</dd>
55+
56+
</div>
57+
58+
<div class="nhsuk-summary-list__row">
59+
<dt class="nhsuk-summary-list__key">
60+
@Model.FrameworkVocabularyPlural to update
61+
</dt>
62+
<dd class="nhsuk-summary-list__value">
63+
@Model.ToUpdateOrSkipCount
64+
</dd>
65+
</div>
66+
</dl>
67+
<h2>Additional processing steps</h2>
68+
<dl class="nhsuk-summary-list">
69+
@if (Model.CompetenciesToReorderCount > 0)
70+
{
71+
<div class="nhsuk-summary-list__row">
72+
<dt class="nhsuk-summary-list__key">
73+
Changes to @Model.FrameworkVocabularySingular.ToLower() order
74+
</dt>
75+
<dd class="nhsuk-summary-list__value">
76+
@(Model.ReorderCompetenciesOption == 1 ? "Ignore" : "Apply") changes to @Model.FrameworkVocabularySingular.ToLower() order
77+
</dd>
78+
<dd class="nhsuk-summary-list__actions">
79+
<a asp-action="ApplyCompetencyOrdering" asp-all-route-data="@cancelLinkData">
80+
Change<span class="nhsuk-u-visually-hidden"> @Model.FrameworkVocabularySingular.ToLower() order options</span>
81+
</a>
82+
</dd>
83+
</div>
84+
}
85+
<div class="nhsuk-summary-list__row">
86+
<dt class="nhsuk-summary-list__key">
87+
Add questions to @addQsTo @Model.FrameworkVocabularyPlural.ToLower() in sheet
88+
</dt>
89+
<dd class="nhsuk-summary-list__value">
90+
@Model.DefaultAssessmentQuestionIDs.Count() framework default questions @(Model.AddCustomAssessmentQuestion && Model.CustomAssessmentQuestionID != null ? "AND a custom question" : "")
91+
</dd>
92+
<dd class="nhsuk-summary-list__actions">
93+
<a asp-action="AddAssessmentQuestions" asp-all-route-data="@cancelLinkData">
94+
Change<span class="nhsuk-u-visually-hidden"> assessment question options</span>
95+
</a>
96+
</dd>
97+
</div>
98+
</dl>
99+
100+
<div class="nhsuk-inset-text">
101+
<span class="nhsuk-u-visually-hidden">Important: </span>
102+
<p>Once @Model.FrameworkVocabularySingular.ToLower() records are processed, changes cannot be undone.</p>
103+
</div>
104+
<form asp-action="StartProcessing">
105+
<a asp-controller="Frameworks" asp-all-route-data="@cancelLinkData" asp-action="AddQuestionsToWhichCompetencies" role="button" class="nhsuk-button nhsuk-button--secondary">Back</a>
106+
<button type="submit" class="nhsuk-button">Process @Model.FrameworkVocabularyPlural.ToLower()</button>
107+
</form>
108+
<vc:cancel-link asp-controller="Frameworks" asp-action="CancelImport" asp-all-route-data="@cancelLinkData" link-text="Cancel" />
109+
</div>
110+
</div>

0 commit comments

Comments
 (0)