From 6d97f81aaf01bbe2867c4f1aadb794a892e22fc4 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Fri, 11 Aug 2023 18:18:14 -0600 Subject: [PATCH] working on submission types (need rubric as well) --- .../AssignmentForm/AssignmentForm.razor | 26 +--------- .../AssignmentForm/RubricEditor.razor | 7 ++- .../SubmissionTypeSelector.razor | 52 ++++++++++++------- 3 files changed, 41 insertions(+), 44 deletions(-) diff --git a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor index 70e9c10..396e453 100644 --- a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor +++ b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor @@ -17,8 +17,6 @@ AssignmentModal?.Show(); name = assignmentContext.Assignment.Name; lockAtDueDate = assignmentContext.Assignment.LockAtDueDate; - rubric = assignmentContext.Assignment.Rubric; - submissionTypes = assignmentContext.Assignment.SubmissionTypes; } this.InvokeAsync(this.StateHasChanged); } @@ -33,25 +31,15 @@ public Modal? AssignmentModal { get; set; } = null; private string name { get; set; } = String.Empty; private bool lockAtDueDate { get; set; } - private IEnumerable rubric { get; set; } = Enumerable.Empty(); - private IEnumerable submissionTypes { get; set; } = Enumerable.Empty(); private void submitHandler() { if (assignmentContext.Assignment != null) { - var totalRubricPoints = rubric - .Where(r => !r.Label.Contains(RubricItem.extraCredit)) - .Select(s => s.Points) - .Sum(); - var newAssignment = assignmentContext.Assignment with { Name = name, LockAtDueDate = lockAtDueDate, - Rubric = rubric, - PointsPossible = totalRubricPoints, - SubmissionTypes = submissionTypes, }; assignmentContext.SaveAssignment(newAssignment); @@ -60,18 +48,6 @@ assignmentContext.Assignment = null; } - - private void updateRubric(IEnumerable newRubric) - { - rubric = newRubric; - StateHasChanged(); - } - private void SetTypes(IEnumerable newTypes) - { - submissionTypes = newTypes; - StateHasChanged(); - } - private async Task HandleDelete() { if (planner.LocalCourse != null && assignmentContext.Assignment != null) @@ -173,7 +149,7 @@ - + } diff --git a/Management.Web/Shared/Components/AssignmentForm/RubricEditor.razor b/Management.Web/Shared/Components/AssignmentForm/RubricEditor.razor index 6e6d425..d57c2a9 100644 --- a/Management.Web/Shared/Components/AssignmentForm/RubricEditor.razor +++ b/Management.Web/Shared/Components/AssignmentForm/RubricEditor.razor @@ -28,9 +28,14 @@ { if (assignmentContext.Assignment != null) { + var totalRubricPoints = rubric + .Where(r => !r.Label.Contains(RubricItem.extraCredit)) + .Select(s => s.Points) + .Sum(); var newAssignment = assignmentContext.Assignment with { - Rubric = rubric + Rubric = rubric, + PointsPossible = totalRubricPoints, }; assignmentContext.SaveAssignment(newAssignment); StateHasChanged(); diff --git a/Management.Web/Shared/Components/AssignmentForm/SubmissionTypeSelector.razor b/Management.Web/Shared/Components/AssignmentForm/SubmissionTypeSelector.razor index 97446e9..faba32b 100644 --- a/Management.Web/Shared/Components/AssignmentForm/SubmissionTypeSelector.razor +++ b/Management.Web/Shared/Components/AssignmentForm/SubmissionTypeSelector.razor @@ -1,21 +1,26 @@ @using System.Reflection +@inject AssignmentEditorContext assignmentContext @code { - private IEnumerable _types { get; set; } = Enumerable.Empty(); - [Parameter, EditorRequired] - public IEnumerable Types { get; set; } = Enumerable.Empty(); - - [Parameter, EditorRequired] - public Action> SetTypes { get; set; } = (_) => {}; - protected override void OnParametersSet() + protected override void OnInitialized() { - if (!Types.SequenceEqual(_types)) - { - _types = Types; - renderKey++; - } + assignmentContext.StateHasChanged += reload; } + private void reload() + { + if (assignmentContext.Assignment != null) + { + types = assignmentContext.Assignment.SubmissionTypes; + + } + this.InvokeAsync(this.StateHasChanged); + } + public void Dispose() + { + assignmentContext.StateHasChanged -= reload; + } + private IEnumerable types { get; set; } = Enumerable.Empty(); private string getLabel(string type) { @@ -24,15 +29,26 @@ private bool discussionIsSelected { - get => Types.FirstOrDefault( + get => types.FirstOrDefault( t => t == SubmissionType.DISCUSSION_TOPIC ) != null; } - private int renderKey {get; set; } = 1; + private void saveTypes(IEnumerable newTypes) + { + if(assignmentContext.Assignment != null) + { + assignmentContext.SaveAssignment(assignmentContext.Assignment with + { + SubmissionTypes = newTypes + } + ); + } + } + }
Submission Types
-
+
@foreach (var submissionType in SubmissionType.AllTypes) { @@ -45,13 +61,13 @@ type="checkbox" role="switch" id="@getLabel(submissionType)" - checked="@(Types.Contains(submissionType) && allowedToBeChecked)" + checked="@(types.Contains(submissionType) && allowedToBeChecked)" @onchange="(e) => { var isChecked = (bool)(e.Value ?? false); if(isChecked) - SetTypes(Types.Append(submissionType)); + saveTypes(types.Append(submissionType)); else - SetTypes(Types.Where(t => t != submissionType)); + saveTypes(types.Where(t => t != submissionType)); }" disabled="@(discussionIsSelected && !isDiscussion)" >