From a8221ccb5f07301e1231bbd65a3c3a6867907d26 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Tue, 25 Jul 2023 09:08:09 -0600 Subject: [PATCH] working on rubric --- .../Shared/Course/CourseSettings.razor | 1 + .../Module/Assignment/AssignmentDetails.razor | 27 +++--- .../Module/Assignment/AssignmentForm.razor | 93 +++++++++++++++---- .../Module/Assignment/RubricEditor.razor | 49 ++++++++++ .../Module/Assignment/RubricEditorItem.razor | 52 +++++++++++ .../Shared/Module/ModuleDetail.razor | 2 +- Management.Web/Shared/Semester/Day.razor | 8 +- Management/Models/LocalAssignment.cs | 7 +- 8 files changed, 204 insertions(+), 35 deletions(-) create mode 100644 Management.Web/Shared/Module/Assignment/RubricEditor.razor create mode 100644 Management.Web/Shared/Module/Assignment/RubricEditorItem.razor diff --git a/Management.Web/Shared/Course/CourseSettings.razor b/Management.Web/Shared/Course/CourseSettings.razor index f124ca4..387f4b2 100644 --- a/Management.Web/Shared/Course/CourseSettings.razor +++ b/Management.Web/Shared/Course/CourseSettings.razor @@ -12,6 +12,7 @@ _selectedTermId = value; if(selectedTerm != null && planner.LocalCourse != null) { + System.Console.WriteLine(JsonSerializer.Serialize(selectedTerm)); planner.LocalCourse = planner.LocalCourse with { StartDate=selectedTerm.StartAt ?? new DateTime(), diff --git a/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor b/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor index 84c60f2..9ecbec9 100644 --- a/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor +++ b/Management.Web/Shared/Module/Assignment/AssignmentDetails.razor @@ -6,10 +6,10 @@ @code { [Parameter] [EditorRequired] - public LocalAssignment assignment { get; set; } = new(); + public LocalAssignment Assignment { get; set; } = new(); [Parameter] [EditorRequired] - public LocalModule module { get; set; } = new(); + public LocalModule Module { get; set; } = new(); private bool showUpdateForm = false; protected override void OnInitialized() @@ -33,12 +33,12 @@ var newCourse = planner.LocalCourse with { Modules = planner.LocalCourse.Modules.Select(m => - m.Name != module.Name + m.Name != Module.Name ? m : m with { - Assignments = module.Assignments.Select(a => - a.id != assignment.id + Assignments = Module.Assignments.Select(a => + a.id != Assignment.id ? a : a with { @@ -70,13 +70,13 @@ >
-
@assignment.name
+
@Assignment.name
- @assignment.description -
Due At: @assignment.due_at
-
Lock At: @assignment.lock_at
-
Points: @assignment.points_possible
- @if(assignment.canvasId != null) + @Assignment.description +
Due At: @Assignment.due_at
+
Lock At: @Assignment.lock_at
+
Points: @Assignment.points_possible
+ @if(Assignment.canvasId != null) {
Synced with canvas
} @@ -84,7 +84,7 @@ {
Not synced with canvas
} - @JsonSerializer.Serialize(@assignment.rubric) + @JsonSerializer.Serialize(Assignment.rubric)
@@ -92,7 +92,8 @@
\ No newline at end of file diff --git a/Management.Web/Shared/Module/Assignment/AssignmentForm.razor b/Management.Web/Shared/Module/Assignment/AssignmentForm.razor index 474f790..5a8c50f 100644 --- a/Management.Web/Shared/Module/Assignment/AssignmentForm.razor +++ b/Management.Web/Shared/Module/Assignment/AssignmentForm.razor @@ -1,9 +1,15 @@ @using Management.Web.Shared.Components +@inject CoursePlanner planner + @code { [Parameter] [EditorRequired] - public LocalAssignment assignment + public LocalModule Module { get; set; } = default!; + + [Parameter] + [EditorRequired] + public LocalAssignment Assignment { get; set; @@ -15,9 +21,11 @@ [Parameter] public Action OnHide { get; set; } = () => { }; - public Modal AssignmentModal { get; set; } + public Modal AssignmentModal { get; set; } = default!; - private string description { get; set; } + private string description { get; set; } = String.Empty; + private bool lockAtDueDate { get; set; } + private IEnumerable rubric { get; set; } = Enumerable.Empty(); protected override void OnParametersSet() { @@ -25,30 +33,81 @@ { AssignmentModal.Show(); } - description = assignment.description; + description = Assignment.description; + lockAtDueDate = Assignment.lock_at_due_date; + rubric = Assignment.rubric; } private void submitHandler() { - + var newAssignment = Assignment with + { + description=description, + lock_at_due_date=lockAtDueDate, + rubric=rubric, + }; + System.Console.WriteLine(JsonSerializer.Serialize(newAssignment)); + + if(planner.LocalCourse != null) + { + planner.LocalCourse = planner.LocalCourse with + { + Modules=planner.LocalCourse.Modules.Select(m => + m.Name != Module.Name + ? m + : Module with + { + Assignments=Module.Assignments.Select(a => + a.id == newAssignment.id + ? newAssignment + : a + ) + } + ) + }; + } + AssignmentModal.Hide(); + } + private void updateRubric(IEnumerable newRubric) + { + rubric = newRubric; + StateHasChanged(); } } - @assignment.name + @Assignment.name
- -