同学期、同课程、同教学班的实验项目合并展示,组内连续排列。
管理列表改为数据库筛选、按教学任务服务端分页(10–100 条/页)。 增加开课学院、课程名称/编码、教学班、任课教师、教学任务号筛选。 增加当前页草稿项目的批量选中、批量发布、批量删除;后端会再次校验权限、状态和发布条件。 确认框改为固定居中白色底板与阴影,不再出现只有文字按钮、没有底色的情况。
This commit is contained in:
@@ -37,6 +37,53 @@ public sealed class ExperimentsControllerTests
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CentralizedBatchProjects_CreatesOneProjectForEveryScheduledExperimentLesson()
|
||||
{
|
||||
await using var fixture = await ExperimentFixture.CreateAsync();
|
||||
fixture.Db.ScheduleEntries.Add(new ScheduleEntry
|
||||
{
|
||||
SchedulePlanId = fixture.ScheduleEntry.SchedulePlanId,
|
||||
TeachingTaskId = fixture.Task.Id,
|
||||
Kind = ScheduleEntryKind.Experiment,
|
||||
ClassroomId = fixture.SecondClassroom.Id,
|
||||
DayOfWeek = 3,
|
||||
StartPeriod = 5,
|
||||
PeriodCount = 2,
|
||||
StartWeek = 1,
|
||||
EndWeek = 8,
|
||||
WeekPattern = WeekPattern.All
|
||||
});
|
||||
await fixture.Db.SaveChangesAsync();
|
||||
|
||||
var result = await fixture.Controller(fixture.ManagerScope).CreateProjects(
|
||||
new ExperimentProjectBatchRequest(
|
||||
[fixture.Task.Id],
|
||||
"LAB-ALL",
|
||||
"全部课表实验",
|
||||
ExperimentArrangementMode.Centralized,
|
||||
null,
|
||||
null,
|
||||
fixture.Term.StartDate,
|
||||
fixture.Term.StartDate.AddDays(14)),
|
||||
CancellationToken.None);
|
||||
|
||||
Assert.IsType<CreatedResult>(result);
|
||||
var projects = await fixture.Db.ExperimentProjects
|
||||
.Where(x => x.Code == "LAB-ALL")
|
||||
.OrderBy(x => x.ScheduleEntryId)
|
||||
.ToListAsync();
|
||||
Assert.Equal(16, projects.Count);
|
||||
Assert.All(projects, project =>
|
||||
{
|
||||
Assert.Equal(fixture.Task.Id, project.TeachingTaskId);
|
||||
Assert.Equal(ExperimentArrangementMode.Centralized, project.ArrangementMode);
|
||||
Assert.NotNull(project.ScheduleEntryId);
|
||||
});
|
||||
Assert.Equal(2, projects.Select(x => x.ScheduleEntryId).Distinct().Count());
|
||||
Assert.Equal(8, projects.Select(x => x.ScheduleWeek).Distinct().Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task BatchSessions_RollsBackAllRowsWhenOneConflicts()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user