Skip to content

Commit f27d8e6

Browse files
committed
TD-5155 Implements add assessment questions form view
1 parent ac955f5 commit f27d8e6

File tree

4 files changed

+55
-25
lines changed

4 files changed

+55
-25
lines changed

DigitalLearningSolutions.Web/Controllers/FrameworksController/ImportCompetencies.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,21 @@ public IActionResult AddAssessmentQuestions()
127127
model.AddDefaultAssessmentQuestions = data.AddDefaultAssessmentQuestions;
128128
model.AddCustomAssessmentQuestion = data.AddCustomAssessmentQuestion;
129129
model.DefaultAssessmentQuestionIDs = data.DefaultQuestionIDs;
130-
model.OtherAssessmentQuestionIDs = data.AssessmentQuestionIDs;
130+
model.CustomAssessmentQuestionID = data.CustomAssessmentQuestionID;
131131
return View("Developer/Import/AddAssessmentQuestions", model);
132132
}
133+
[HttpPost]
134+
[Route("/Framework/{frameworkId}/{tabname}/Import/AssessmentQuestions")]
135+
public IActionResult AddAssessmentQuestions(AddAssessmentQuestionsFormData model)
136+
{
137+
var data = GetBulkUploadData();
138+
data.AddDefaultAssessmentQuestions = model.AddDefaultAssessmentQuestions;
139+
data.AddCustomAssessmentQuestion = model.AddCustomAssessmentQuestion;
140+
data.DefaultQuestionIDs = model.DefaultAssessmentQuestionIDs;
141+
data.CustomAssessmentQuestionID = model.CustomAssessmentQuestionID;
142+
setBulkUploadData(data);
143+
return RedirectToAction("AddQuestionsToWhichCompetencies");
144+
}
133145
private void setupBulkUploadData(int frameworkId, int adminUserID, string competenciessFileName, string tabName, bool isNotBlank)
134146
{
135147
TempData.Clear();

DigitalLearningSolutions.Web/Models/BulkCompetenciesData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public BulkCompetenciesData(DetailFramework framework, int adminUserId, string c
2828
public bool IsNotBlank { get; set; }
2929
public string CompetenciesFileName { get; set; }
3030
public List<int> DefaultQuestionIDs { get; set; } = [];
31-
public List<int> AssessmentQuestionIDs { get; set; } = [];
31+
public int CustomAssessmentQuestionID { get; set; }
3232
public bool AddDefaultAssessmentQuestions { get; set; } = true;
3333
public bool AddCustomAssessmentQuestion { get; set; } = false;
3434
public int CompetenciesToProcessCount { get; set; }

DigitalLearningSolutions.Web/ViewModels/Frameworks/Import/AddAssessmentQuestionsFormData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ public class AddAssessmentQuestionsFormData
77
public bool AddDefaultAssessmentQuestions { get; set; }
88
public bool AddCustomAssessmentQuestion { get; set; }
99
public List<int> DefaultAssessmentQuestionIDs { get; set; }
10-
public List<int> OtherAssessmentQuestionIDs { get; set; }
10+
public int CustomAssessmentQuestionID { get; set; }
1111
}
1212
}

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

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@
3333
<div class="nhsuk-u-reading-width">
3434
@if (errorHasOccurred)
3535
{
36-
<vc:error-summary order-of-property-names="@(new []{ nameof(AddAssessmentQuestionsFormData.DefaultAssessmentQuestionIDs), nameof(AddAssessmentQuestionsFormData.OtherAssessmentQuestionIDs) })" />
36+
<vc:error-summary order-of-property-names="@(new []{ nameof(AddAssessmentQuestionsFormData.DefaultAssessmentQuestionIDs), nameof(AddAssessmentQuestionsFormData.CustomAssessmentQuestionID) })" />
3737
}
38-
<form enctype="multipart/form-data">
38+
<form enctype="multipart/form-data" method="post">
3939
<div class="nhsuk-form-group">
40-
<fieldset class="nhsuk-fieldset" aria-describedby="@(!ViewData.ModelState.IsValid && Model.AddDefaultAssessmentQuestions == null ? "check-list-error" : "")">
40+
<fieldset class="nhsuk-fieldset" aria-describedby="@(!ViewData.ModelState.IsValid && Model.AddDefaultAssessmentQuestions == true && !Model.DefaultAssessmentQuestionIDs.Any() ? "check-list-error" : "")">
4141
<legend class="nhsuk-fieldset__legend nhsuk-fieldset__legend--l">
4242
<h1 class="nhsuk-fieldset__heading">
4343
@ViewData["Title"]
@@ -50,37 +50,55 @@
5050
@if (Model.DefaultQuestions.Any())
5151
{
5252
<div class="nhsuk-checkboxes__item">
53-
<input class="nhsuk-checkboxes__input" id="defaultQuestions" name="defaultQuestions" type="checkbox" asp-for="@Model.AddDefaultAssessmentQuestions" aria-controls="conditional-default-questions" aria-expanded="false">
53+
<input class="nhsuk-checkboxes__input" id="defaultQuestions" type="checkbox" asp-for="@Model.AddDefaultAssessmentQuestions" aria-controls="conditional-default-questions" aria-expanded="false">
5454
<label class="nhsuk-label nhsuk-checkboxes__label" for="defaultQuestions">
5555
Default framework questions
5656
</label>
57-
</div>
58-
<div class="nhsuk-checkboxes__conditional nhsuk-checkboxes__conditional--hidden" id="conditional-default-questions">
57+
<div class="nhsuk-hint nhsuk-checkboxes__hint" id="custom-question-hint">
58+
choose which default questions associated with this framework to add to the imported and/or updated @Model.FrameworkVocabularyPlural.ToLower()
59+
</div>
60+
<div class="nhsuk-checkboxes__conditional nhsuk-checkboxes__conditional--hidden" id="conditional-default-questions">
5961

60-
<div class="nhsuk-form-group">
61-
<div class="nhsuk-checkboxes">
62-
@foreach (var (defaultQuestion, index) in Model.DefaultQuestions.Select((t, i) => (t, i)))
63-
{
64-
<div class="nhsuk-checkboxes__item">
65-
<input class="nhsuk-checkboxes__input default-question-checkbox"
66-
type="checkbox"
67-
name="@($"{nameof(Model.DefaultQuestions)}[{index}].{nameof(defaultQuestion.ID)}")"
68-
69-
checked="@Model.DefaultAssessmentQuestionIDs.Contains(@defaultQuestion.ID)"
70-
value="true" />
71-
<label class="nhsuk-label nhsuk-checkboxes__label word-break" for="[email protected]">
72-
@defaultQuestion.Question
73-
</label>
74-
</div>
75-
}
62+
<div class="nhsuk-form-group">
63+
<div class="nhsuk-checkboxes">
64+
@foreach (var (defaultQuestion, index) in Model.DefaultQuestions.Select((t, i) => (t, i)))
65+
{
66+
<div class="nhsuk-checkboxes__item">
67+
<input class="nhsuk-checkboxes__input default-question-checkbox"
68+
type="checkbox"
69+
name="DefaultAssessmentQuestionIDs"
70+
71+
checked="@Model.DefaultAssessmentQuestionIDs.Contains(@defaultQuestion.ID)"
72+
value="@defaultQuestion.ID" />
73+
<label class="nhsuk-label nhsuk-checkboxes__label word-break" for="[email protected]">
74+
@defaultQuestion.Question
75+
</label>
76+
</div>
77+
}
78+
</div>
7679
</div>
7780
</div>
7881
</div>
7982
}
83+
<div class="nhsuk-checkboxes__item">
84+
<input class="nhsuk-checkboxes__input" id="customQuestion" type="checkbox" asp-for="@Model.AddCustomAssessmentQuestion" aria-controls="conditional-custom-question" aria-expanded="false" aria-describedby="custom-question-hint">
85+
<label class="nhsuk-label nhsuk-checkboxes__label" for="customQuestion">
86+
Custom assessment question
87+
</label>
88+
</div>
89+
<div class="nhsuk-checkboxes__conditional nhsuk-checkboxes__conditional--hidden" id="conditional-custom-question">
90+
91+
<label class="nhsuk-label" for="select-question">
92+
Add an existing assessment question to the uploaded @Model.FrameworkVocabularyPlural.ToLower()
93+
</label>
94+
<select class="nhsuk-select nhsuk-u-width-three-quarters" id="select-question" asp-items="@Model.QuestionSelectList" asp-for="@Model.CustomAssessmentQuestionID"></select>
95+
</div>
8096
</div>
8197
</fieldset>
8298
</div>
99+
<button class="nhsuk-button" type="submit">Next</button>
83100
</form>
101+
<vc:back-link asp-controller="Frameworks" asp-action="Index" asp-all-route-data="@null" link-text="Cancel" />
84102
</div>
85103
</div>
86104
</div>

0 commit comments

Comments
 (0)