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 @@ -187,7 +187,7 @@ public IActionResult AddAssessmentQuestions(AddAssessmentQuestionsFormData model
{
data.AddAssessmentQuestionsOption = 1;
setBulkUploadData(data);
return RedirectToAction("Summary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
return RedirectToAction("ImportSummary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
}
}
[Route("/Framework/{frameworkId}/{tabname}/Import/AssessmentQuestions/Competencies")]
Expand Down Expand Up @@ -215,7 +215,14 @@ public IActionResult AddQuestionsToWhichCompetencies(int AddAssessmentQuestionsO
var data = GetBulkUploadData();
data.AddAssessmentQuestionsOption = AddAssessmentQuestionsOption;
setBulkUploadData(data);
return RedirectToAction("Summary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
return RedirectToAction("ImportSummary", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
}
[Route("/Framework/{frameworkId}/{tabname}/Import/Summary")]
public IActionResult ImportSummary()
{
var data = GetBulkUploadData();
var model = new ImportSummaryViewModel(data);
return View("Developer/Import/ImportSummary", model);
}
[Route("CancelImport")]
public IActionResult CancelImport()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using DigitalLearningSolutions.Web.Helpers;
using DigitalLearningSolutions.Web.Models;
using System.Collections.Generic;

namespace DigitalLearningSolutions.Web.ViewModels.Frameworks.Import
{
public class ImportSummaryViewModel
{
public ImportSummaryViewModel(BulkCompetenciesData data)
{
FrameworkName = data.FrameworkName;
PublishStatusID = data.PublishStatusID;
FrameworkVocabularySingular = FrameworkVocabularyHelper.VocabularySingular(data.FrameworkVocubulary);
FrameworkVocabularyPlural = FrameworkVocabularyHelper.VocabularyPlural(data.FrameworkVocubulary);
ToProcessCount = data.CompetenciesToProcessCount;
CompetenciesToAddCount = data.CompetenciesToAddCount;
CompetenciesToReorderCount = data.CompetenciesToReorderCount;
ToUpdateOrSkipCount = data.CompetenciesToUpdateCount;
AddAssessmentQuestionsOption = data.AddAssessmentQuestionsOption;
AddDefaultAssessmentQuestions = data.AddDefaultAssessmentQuestions;
AddCustomAssessmentQuestion = data.AddCustomAssessmentQuestion;
DefaultAssessmentQuestionIDs = data.DefaultQuestionIDs;
CustomAssessmentQuestionID = data.CustomAssessmentQuestionID;
ReorderCompetenciesOption = data.ReorderCompetenciesOption;
}
public string? FrameworkName { get; set; }
public int PublishStatusID { get; set; }
public string FrameworkVocabularySingular { get; set; }
public string FrameworkVocabularyPlural { get; set; }
public int ToProcessCount { get; set; }
public int CompetenciesToAddCount { get; set; }
public int CompetenciesToReorderCount { get; set; }
public int ToUpdateOrSkipCount { get; set; }
public int AddAssessmentQuestionsOption { get; set; } = 1; //1 = only added, 2 = added and updated, 3 = all uploaded
public bool AddDefaultAssessmentQuestions { get; set; }
public bool AddCustomAssessmentQuestion { get; set; }
public List<int> DefaultAssessmentQuestionIDs { get; set; }
public int? CustomAssessmentQuestionID { get; set; }
public int ReorderCompetenciesOption { get; set; } = 1; //1 = ignore order, 2 = apply order
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@
<div class="nhsuk-radios__item">
<input class="nhsuk-radios__input" id="option-2" asp-for="@Model.AddAssessmentQuestionsOption" type="radio" value="2" aria-describedby="option-2-hint">
<label class="nhsuk-label nhsuk-radios__label" for="option-2">
Only add questions to @(Model.CompetenciesToAddCount > 0 ? Model.CompetenciesToAddCount + " new and " : "") modified @Model.FrameworkVocabularyPlural.ToLower()
Only add questions to @(Model.CompetenciesToAddCount > 0 ? " new and " : "") modified @Model.FrameworkVocabularyPlural.ToLower()
</label>
<div class="nhsuk-hint nhsuk-radios__hint" id="option-2-hint">
@(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
@(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
</div>
</div>
<div class="nhsuk-radios__item">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
@inject IConfiguration Configuration
@using DigitalLearningSolutions.Web.Extensions
@using DigitalLearningSolutions.Web.ViewModels.Frameworks.Import
@using Microsoft.Extensions.Configuration
@model ImportSummaryViewModel
@{
ViewData["Title"] = "Framework - Import Competencies";
ViewData["Application"] = "Framework Service";
ViewData["HeaderPathName"] = "Framework Service";
var errorHasOccurred = !ViewData.ModelState.IsValid;
var cancelLinkData = Html.GetRouteValues();
var process = Model.CompetenciesToAddCount > 0 && Model.ToUpdateOrSkipCount > 0 ? "add and update" : Model.CompetenciesToAddCount > 0 ? "add" : "update";
var addQsTo = Model.AddAssessmentQuestionsOption == 1 ? "new" : Model.AddAssessmentQuestionsOption == 2 ? "new and updated" : "all";
}
<link rel="stylesheet" href="@Url.Content("~/css/frameworks/frameworksShared.css")" asp-append-version="true">
@section NavMenuItems {
<partial name="Shared/_NavMenuItems" />
}
@section NavBreadcrumbs {
<nav class="nhsuk-breadcrumb" aria-label="Breadcrumb">
<div class="nhsuk-width-container">
<ol class="nhsuk-breadcrumb__list">
<li class="nhsuk-breadcrumb__item"><a class="nhsuk-breadcrumb__link trigger-loader" asp-action="ViewFrameworks" asp-route-tabname="Mine">Frameworks</a></li>
<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>
<li class="nhsuk-breadcrumb__item">Excel import</li>
</ol>
<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>
</div>
</nav>
}
<div class="nhsuk-grid-row">
<div class="nhsuk-grid-column-full">
<h1 class="nhsuk-heading-xl">@Model.FrameworkVocabularyPlural import summary</h1>
<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>
<h2>Upload summary</h2>
<dl class="nhsuk-summary-list">

<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
@Model.FrameworkVocabularySingular rows uploaded
</dt>
<dd class="nhsuk-summary-list__value">
@Model.ToProcessCount
</dd>

</div>

<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
@Model.FrameworkVocabularyPlural to add
</dt>
<dd class="nhsuk-summary-list__value">
@Model.CompetenciesToAddCount
</dd>

</div>

<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
@Model.FrameworkVocabularyPlural to update
</dt>
<dd class="nhsuk-summary-list__value">
@Model.ToUpdateOrSkipCount
</dd>
</div>
</dl>
<h2>Additional processing steps</h2>
<dl class="nhsuk-summary-list">
@if (Model.CompetenciesToReorderCount > 0)
{
<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
Changes to @Model.FrameworkVocabularySingular.ToLower() order
</dt>
<dd class="nhsuk-summary-list__value">
@(Model.ReorderCompetenciesOption == 1 ? "Ignore" : "Apply") changes to @Model.FrameworkVocabularySingular.ToLower() order
</dd>
<dd class="nhsuk-summary-list__actions">
<a asp-action="ApplyCompetencyOrdering" asp-all-route-data="@cancelLinkData">
Change<span class="nhsuk-u-visually-hidden"> @Model.FrameworkVocabularySingular.ToLower() order options</span>
</a>
</dd>
</div>
}
<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
Add questions to @addQsTo @Model.FrameworkVocabularyPlural.ToLower() in sheet
</dt>
<dd class="nhsuk-summary-list__value">
@Model.DefaultAssessmentQuestionIDs.Count() framework default questions @(Model.AddCustomAssessmentQuestion && Model.CustomAssessmentQuestionID != null ? "AND a custom question" : "")
</dd>
<dd class="nhsuk-summary-list__actions">
<a asp-action="AddAssessmentQuestions" asp-all-route-data="@cancelLinkData">
Change<span class="nhsuk-u-visually-hidden"> assessment question options</span>
</a>
</dd>
</div>
</dl>

<div class="nhsuk-inset-text">
<span class="nhsuk-u-visually-hidden">Important: </span>
<p>Once @Model.FrameworkVocabularySingular.ToLower() records are processed, changes cannot be undone.</p>
</div>
<form asp-action="StartProcessing">
<a asp-controller="Frameworks" asp-all-route-data="@cancelLinkData" asp-action="AddQuestionsToWhichCompetencies" role="button" class="nhsuk-button nhsuk-button--secondary">Back</a>
<button type="submit" class="nhsuk-button">Process @Model.FrameworkVocabularyPlural.ToLower()</button>
</form>
<vc:cancel-link asp-controller="Frameworks" asp-action="CancelImport" asp-all-route-data="@cancelLinkData" link-text="Cancel" />
</div>
</div>
Loading