From afc7003d899084e8f3e8d7900dbb40a0e5aad3f6 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Tue, 25 Jul 2023 22:59:21 -0600 Subject: [PATCH] improved rubric editor --- .../Module/Assignment/AssignmentDetails.razor | 23 +++++- .../Module/Assignment/AssignmentForm.razor | 6 +- .../Module/Assignment/RubricEditor.razor | 51 ++++++++++--- .../Module/Assignment/RubricEditorItem.razor | 76 ++++++++++++++++++- Management/Models/LocalAssignment.cs | 1 + 5 files changed, 143 insertions(+), 14 deletions(-) diff --git a/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor b/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor index 9ecbec9..6566951 100644 --- a/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor +++ b/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor @@ -84,7 +84,28 @@ {
Not synced with canvas
} - @JsonSerializer.Serialize(Assignment.rubric) +
+ +
+
+ Label +
+
+ Points +
+
+ @foreach(var rubricItem in Assignment.rubric) + { +
+
+ @rubricItem.Label +
+
+ @rubricItem.Points +
+
+ } +
diff --git a/Management.Web/Shared/Module/Assignment/AssignmentForm.razor b/Management.Web/Shared/Module/Assignment/AssignmentForm.razor index 5a8c50f..498bb0c 100644 --- a/Management.Web/Shared/Module/Assignment/AssignmentForm.razor +++ b/Management.Web/Shared/Module/Assignment/AssignmentForm.razor @@ -40,13 +40,17 @@ private void submitHandler() { + var totalRubricPoints = rubric + .Where(r => !r.Label.Contains(RubricItem.extraCredit)) + .Select(s => s.Points) + .Sum(); var newAssignment = Assignment with { description=description, lock_at_due_date=lockAtDueDate, rubric=rubric, + points_possible=totalRubricPoints, }; - System.Console.WriteLine(JsonSerializer.Serialize(newAssignment)); if(planner.LocalCourse != null) { diff --git a/Management.Web/Shared/Module/Assignment/RubricEditor.razor b/Management.Web/Shared/Module/Assignment/RubricEditor.razor index 8fc22ea..0fb942c 100644 --- a/Management.Web/Shared/Module/Assignment/RubricEditor.razor +++ b/Management.Web/Shared/Module/Assignment/RubricEditor.razor @@ -28,6 +28,32 @@ SetRubric(newRubric); StateHasChanged(); } + private void MoveUp(RubricItem item) + { + var rubricList = Rubric.ToList(); + var index = rubricList.IndexOf(item); + + if(index > 0) + { + var previous = rubricList[index - 1]; + rubricList[index - 1] = item; + rubricList[index] = previous; + SetRubric(rubricList); + } + } + private void MoveDown(RubricItem item) + { + var rubricList = Rubric.ToList(); + var index = rubricList.IndexOf(item); + + if(index < rubricList.Count()) + { + var next = rubricList[index + 1]; + rubricList[index + 1] = item; + rubricList[index] = next; + SetRubric(rubricList); + } + } }
@@ -35,15 +61,22 @@ - \ No newline at end of file +
+ +
\ No newline at end of file diff --git a/Management.Web/Shared/Module/Assignment/RubricEditorItem.razor b/Management.Web/Shared/Module/Assignment/RubricEditorItem.razor index 6fae294..6a2e785 100644 --- a/Management.Web/Shared/Module/Assignment/RubricEditorItem.razor +++ b/Management.Web/Shared/Module/Assignment/RubricEditorItem.razor @@ -8,6 +8,10 @@ [Parameter, EditorRequired] public Action OnUpdate { get; set; } = default!; + [Parameter, EditorRequired] + public Action MoveUp { get; set; } = default!; + [Parameter, EditorRequired] + public Action MoveDown { get; set; } = default!; private void editItem(string label, int points) { var newRubricItem = RubricItem with @@ -16,7 +20,6 @@ Points = points }; OnUpdate(newRubricItem); - } } @@ -25,7 +28,12 @@ >
- +
- +
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + + +
+
\ No newline at end of file diff --git a/Management/Models/LocalAssignment.cs b/Management/Models/LocalAssignment.cs index 4ebfec0..7b67c3e 100644 --- a/Management/Models/LocalAssignment.cs +++ b/Management/Models/LocalAssignment.cs @@ -1,5 +1,6 @@ public record RubricItem { + public static readonly string extraCredit = "(Extra Credit) "; public string Id { get; set; } = ""; public string Label { get; set; } = ""; public int Points { get; set; } = 0;