moved settings into their own object

This commit is contained in:
2023-09-22 12:58:37 -06:00
parent e53222e35d
commit fa792f1f23
20 changed files with 81 additions and 70 deletions

View File

@@ -45,6 +45,7 @@
private AssignmentTemplate? selectedTemplate =>
planner
.LocalCourse?
.Settings
.AssignmentTemplates
.FirstOrDefault(t => t.Id == TemplateId);
@@ -133,7 +134,7 @@
@oninput="saveTemplateId"
>
<option value=""></option>
@foreach (var template in planner.LocalCourse.AssignmentTemplates)
@foreach (var template in planner.LocalCourse.Settings.AssignmentTemplates)
{
<option value="@template.Id">@template.Name</option>
}

View File

@@ -128,6 +128,7 @@
private LocalAssignmentGroup? selectedAssignmentGroup =>
planner
.LocalCourse?
.Settings
.AssignmentGroups
.FirstOrDefault(g => g.Id == assignmentContext.Assignment?.LocalAssignmentGroupId);
}
@@ -148,7 +149,7 @@
</div>
<ButtonSelect
Label="Assignment Group"
Options="planner.LocalCourse.AssignmentGroups"
Options="planner.LocalCourse?.Settings.AssignmentGroups"
GetId="(g) => g.Id"
GetName="(g) => g.Name"
OnSelect="(g) => setAssignmentGroup(g)"

View File

@@ -35,8 +35,8 @@ public class DroppableQuiz : ComponentBase
year: dropDate.Year,
month: dropDate.Month,
day: dropDate.Day,
hour: planner.LocalCourse.DefaultDueTime.Hour,
minute: planner.LocalCourse.DefaultDueTime.Minute,
hour: planner.LocalCourse.Settings.DefaultDueTime.Hour,
minute: planner.LocalCourse.Settings.DefaultDueTime.Minute,
second: 0
);

View File

@@ -74,6 +74,7 @@
private LocalAssignmentGroup? selectedAssignmentGroup =>
planner
.LocalCourse?
.Settings
.AssignmentGroups
.FirstOrDefault(g => g.Id == quizContext.Quiz?.LocalAssignmentGroupId);
}
@@ -95,9 +96,9 @@
</div>
<ButtonSelect
Label="Assignment Group"
Options="planner.LocalCourse.AssignmentGroups"
GetId="(g) => g.Id"
GetName="(g) => g.Name"
Options="planner.LocalCourse.Settings.AssignmentGroups"
GetId="(g) => g?.Id"
GetName="(g) => g?.Name"
OnSelect="(g) => setAssignmentGroup(g)"
SelectedOption="selectedAssignmentGroup"
/>

View File

@@ -28,10 +28,13 @@
Id = Guid.NewGuid().ToString()
};
var updatedGroups = planner.LocalCourse.AssignmentGroups.Append(newGroup);
var updatedGroups = planner.LocalCourse.Settings.AssignmentGroups.Append(newGroup);
planner.LocalCourse = planner.LocalCourse with
{
AssignmentGroups = updatedGroups
Settings = planner.LocalCourse.Settings with
{
AssignmentGroups = updatedGroups
}
};
}
}
@@ -43,14 +46,17 @@
if(planner.LocalCourse != null)
{
var newName = e.Value?.ToString() ?? "";
var newGroups = planner.LocalCourse.AssignmentGroups.Select(
var newGroups = planner.LocalCourse.Settings.AssignmentGroups.Select(
g => g.Id == groupId
? g with { Name = newName }
: g
);
planner.LocalCourse = planner.LocalCourse with
{
AssignmentGroups = newGroups
Settings = planner.LocalCourse.Settings with
{
AssignmentGroups = newGroups
}
};
}
};
@@ -62,14 +68,17 @@
if(planner.LocalCourse != null)
{
var newWeight = double.Parse(e.Value?.ToString() ?? "0");
var newGroups = planner.LocalCourse.AssignmentGroups.Select(
var newGroups = planner.LocalCourse.Settings.AssignmentGroups.Select(
g => g.Id == groupId
? g with { Weight = newWeight }
: g
);
planner.LocalCourse = planner.LocalCourse with
{
AssignmentGroups = newGroups
Settings = planner.LocalCourse.Settings with
{
AssignmentGroups = newGroups
}
};
}
};
@@ -79,7 +88,7 @@
@if(planner.LocalCourse != null)
{
<h4 class="text-center">Assignment Groups</h4>
@foreach (var group in planner.LocalCourse.AssignmentGroups)
@foreach (var group in planner.LocalCourse.Settings.AssignmentGroups)
{
var groupName = group.Name;
var nameInputCallback = saveGroupName(group.Id);

View File

@@ -78,17 +78,20 @@
<div class="col">
<button
class="@(
planner.LocalCourse?.DaysOfWeek.Contains(day) ?? false
planner.LocalCourse?.Settings.DaysOfWeek.Contains(day) ?? false
? "btn btn-secondary"
: "btn btn-outline-secondary"
)"
@onclick="() =>
{
if(planner.LocalCourse?.DaysOfWeek.Contains(day) ?? false)
if(planner.LocalCourse?.Settings.DaysOfWeek.Contains(day) ?? false)
{
planner.LocalCourse = planner.LocalCourse with
{
DaysOfWeek = planner.LocalCourse.DaysOfWeek.Where((d) => d != day)
Settings = planner.LocalCourse.Settings with
{
DaysOfWeek = planner.LocalCourse.Settings.DaysOfWeek.Where((d) => d != day)
}
};
}
else
@@ -97,7 +100,10 @@
{
planner.LocalCourse = planner.LocalCourse with
{
DaysOfWeek = planner.LocalCourse.DaysOfWeek.Append(day)
Settings = planner.LocalCourse.Settings with
{
DaysOfWeek = planner.LocalCourse.Settings.DaysOfWeek.Append(day)
}
};
}
}
@@ -137,12 +143,10 @@
<div class="row justify-content-center m-3 text-center">
<div class="col-auto">
<div>Default Assignment Due Time</div>
<TimePicker
Time="planner.LocalCourse.DefaultDueTime"
UpdateTime="@((newTime) =>
<TimePicker Time="planner.LocalCourse.Settings.DefaultDueTime" UpdateTime="@((newTime) =>
planner.LocalCourse =
planner.LocalCourse with
{ DefaultDueTime=newTime }
{ Settings = planner.LocalCourse.Settings with { DefaultDueTime=newTime } }
)"
/>
</div>

View File

@@ -61,12 +61,12 @@
var course = new LocalCourse
{
Modules = new LocalModule[] {},
DaysOfWeek = days,
Settings = new LocalCourseSettings() {
Name = selectedCourse.Name,
CanvasId = selectedCourse.Id,
StartDate = selectedTerm?.StartAt ?? new DateTime(),
EndDate = selectedTerm?.EndAt ?? new DateTime(),
DaysOfWeek = days,
}
};
await yamlManager.SaveCourseAsync(course);

View File

@@ -78,8 +78,8 @@
&& planner.CanvasModules != null
&& Assignment.NeedsUpdates(
planner.CanvasAssignments,
planner.LocalCourse.AssignmentTemplates,
Assignment.GetCanvasAssignmentGroupId(planner.LocalCourse.AssignmentGroups)
planner.LocalCourse.Settings.AssignmentTemplates,
Assignment.GetCanvasAssignmentGroupId(planner.LocalCourse.Settings.AssignmentGroups)
)
)
{
@@ -110,7 +110,7 @@
<div class="card-text">
<div class="px-3 py-1 bg-dark-subtle my-1">
@((MarkupString) @Assignment.GetDescriptionHtml(planner.LocalCourse?.AssignmentTemplates))
@((MarkupString) @Assignment.GetDescriptionHtml(planner.LocalCourse?.Settings.AssignmentTemplates))
</div>
<section class="px-3">

View File

@@ -25,8 +25,8 @@ public class DroppableAssignment : ComponentBase
year: dropDate.Year,
month: dropDate.Month,
day: dropDate.Day,
hour: planner.LocalCourse.DefaultDueTime.Hour,
minute: planner.LocalCourse.DefaultDueTime.Minute,
hour: planner.LocalCourse.Settings.DefaultDueTime.Hour,
minute: planner.LocalCourse.Settings.DefaultDueTime.Minute,
second: 0
);

View File

@@ -30,6 +30,7 @@
private AssignmentTemplate? selectedTemplate =>
planner
.LocalCourse?
.Settings
.AssignmentTemplates
.FirstOrDefault(t => t.Id == selectedTemplateId);
@@ -44,7 +45,10 @@
};
planner.LocalCourse = planner.LocalCourse with
{
AssignmentTemplates = planner.LocalCourse.AssignmentTemplates.Append(newOne)
Settings = planner.LocalCourse.Settings with
{
AssignmentTemplates = planner.LocalCourse.Settings.AssignmentTemplates.Append(newOne)
}
};
newTemplateName = "";
}
@@ -71,7 +75,7 @@
<label for="termselect">Templates</label>
<select id="termselect" class="form-select" @bind="selectedTemplateId">
<option></option>
@foreach (var template in planner.LocalCourse.AssignmentTemplates)
@foreach (var template in planner.LocalCourse.Settings.AssignmentTemplates)
{
<option value="@template.Id">@template.Name</option>
}

View File

@@ -17,14 +17,17 @@
{
if(planner.LocalCourse != null)
{
var newTemplates = planner.LocalCourse.AssignmentTemplates.Select(t =>
var newTemplates = planner.LocalCourse.Settings.AssignmentTemplates.Select(t =>
t.Id == Template.Id
? t with { Name=newName }
: t
);
planner.LocalCourse = planner.LocalCourse with
{
AssignmentTemplates=newTemplates
Settings = planner.LocalCourse.Settings with
{
AssignmentTemplates=newTemplates
}
};
}
}
@@ -32,14 +35,17 @@
{
if(planner.LocalCourse != null)
{
var newTemplates = planner.LocalCourse.AssignmentTemplates.Select(t =>
var newTemplates = planner.LocalCourse.Settings.AssignmentTemplates.Select(t =>
t.Id == Template.Id
? t with { Markdown=newMarkdown }
: t
);
planner.LocalCourse = planner.LocalCourse with
{
AssignmentTemplates=newTemplates
Settings = planner.LocalCourse.Settings with
{
AssignmentTemplates=newTemplates
}
};
}
}

View File

@@ -67,7 +67,7 @@
DayOfWeek? weekDay = date?.DayOfWeek;
DayOfWeek notNullDay = weekDay ?? default;
var isClassDay = planner.LocalCourse?.DaysOfWeek.Contains(notNullDay) ?? false;
var isClassDay = planner.LocalCourse?.Settings.DaysOfWeek.Contains(notNullDay) ?? false;
var dayInSemester =
isClassDay
&& date <= planner.LocalCourse?.Settings.EndDate

View File

@@ -34,7 +34,7 @@
@foreach (DayOfWeek day in WeekDaysList)
{
<div class="@(
planner.LocalCourse?.DaysOfWeek.Contains(day) ?? false
planner.LocalCourse?.Settings.DaysOfWeek.Contains(day) ?? false
? "col"
: "col text-secondary"
)">