fix:成绩提交显示500实际提交成功
This commit is contained in:
1 parent
f00fac7bca
commit
d7d2560587
4 files changed
+153
-2
No files matched your search
@@ -34,7 +34,8 @@ public sealed class ExperimentGradesController(
|
||||
|
||||
private const string Publishers =
|
||||
SystemRoles.SuperAdmin + "," +
|
||||
SystemRoles.AcademicAdmin;
|
||||
SystemRoles.AcademicAdmin + "," +
|
||||
SystemRoles.CollegeAdmin;
|
||||
|
||||
[HttpGet("management")]
|
||||
[Authorize(Roles = Managers)]
|
||||
@@ -1220,7 +1221,8 @@ public sealed class ExperimentGradesController(
|
||||
|
||||
private bool IsPublisher() =>
|
||||
currentUserDataScope.Current.IsInRole(SystemRoles.SuperAdmin) ||
|
||||
currentUserDataScope.Current.IsInRole(SystemRoles.AcademicAdmin);
|
||||
currentUserDataScope.Current.IsInRole(SystemRoles.AcademicAdmin) ||
|
||||
currentUserDataScope.Current.IsInRole(SystemRoles.CollegeAdmin);
|
||||
|
||||
private Task<Student?> CurrentStudentAsync(
|
||||
CancellationToken cancellationToken) =>
|
||||
|
||||
@@ -549,6 +549,8 @@ public sealed class GradesController(
|
||||
.Include(x => x.Records)
|
||||
.ThenInclude(x => x.ItemScores)
|
||||
.Include(x => x.TeachingTask)
|
||||
.ThenInclude(x => x!.Course)
|
||||
.Include(x => x.TeachingTask)
|
||||
.ThenInclude(x => x!.Teachers)
|
||||
.ThenInclude(x => x.Teacher)
|
||||
.FirstOrDefaultAsync(x => x.Id == id, cancellationToken);
|
||||
|
||||
@@ -14,6 +14,58 @@ namespace Jiaowu.Api.Tests;
|
||||
|
||||
public sealed class ExperimentGradesControllerTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task CollegeAdmin_CanPublishApprovedExperimentGradeSheet()
|
||||
{
|
||||
await using var fixture = await ExperimentGradeFixture.CreateAsync();
|
||||
var project = new ExperimentProject
|
||||
{
|
||||
TeachingTaskId = fixture.Task.Id,
|
||||
Code = "LAB-COLLEGE-PUBLISH",
|
||||
Name = "学院发布实验",
|
||||
ArrangementMode = ExperimentArrangementMode.Centralized,
|
||||
StartDate = fixture.Term.StartDate,
|
||||
EndDate = fixture.Term.EndDate,
|
||||
Status = ExperimentProjectStatus.Published,
|
||||
PublishedAt = DateTime.UtcNow
|
||||
};
|
||||
fixture.Db.ExperimentProjects.Add(project);
|
||||
await fixture.Db.SaveChangesAsync();
|
||||
|
||||
var administrator = fixture.ExperimentGrades(fixture.AdminScope);
|
||||
await administrator.CreateSheet(
|
||||
new ExperimentGradeSheetRequest(
|
||||
project.Id,
|
||||
1,
|
||||
60,
|
||||
[new ExperimentGradeItemRequest(
|
||||
"操作",
|
||||
ExperimentGradeItemKind.Operation,
|
||||
100)]),
|
||||
CancellationToken.None);
|
||||
var sheet = await fixture.Db.ExperimentGradeSheets.SingleAsync();
|
||||
sheet.Status = ExperimentGradeSheetStatus.Approved;
|
||||
await fixture.Db.SaveChangesAsync();
|
||||
|
||||
var collegeId = await fixture.Db.TeachingTasks
|
||||
.Where(x => x.Id == fixture.Task.Id)
|
||||
.Select(x => x.Course!.CollegeId)
|
||||
.SingleAsync();
|
||||
var collegeScope = new FixedScope(new CurrentUserScope(
|
||||
Guid.NewGuid(),
|
||||
"学院管理员",
|
||||
collegeId,
|
||||
DataScope.College,
|
||||
new HashSet<string>([SystemRoles.CollegeAdmin])));
|
||||
|
||||
Assert.IsType<NoContentResult>(await fixture
|
||||
.ExperimentGrades(collegeScope)
|
||||
.Publish(sheet.Id, CancellationToken.None));
|
||||
Assert.Equal(
|
||||
ExperimentGradeSheetStatus.Published,
|
||||
(await fixture.Db.ExperimentGradeSheets.SingleAsync()).Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task AssignedTeacher_CanSubmitExperimentGradeSheet()
|
||||
{
|
||||
|
||||
Loaded 3 of 4 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user