Request improvements
This commit is contained in:
parent
21d7c034bf
commit
6b24e84694
core/src/main
@ -435,13 +435,15 @@ public class CoreConfig {
|
||||
Provider<EntityManager> em,
|
||||
FinalSeminarOppositionGrading finalSeminarOppositionGrading,
|
||||
EventBus eventBus,
|
||||
FinalSeminarOppositionRepo finalSeminarOppositionRepository
|
||||
FinalSeminarOppositionRepo finalSeminarOppositionRepository,
|
||||
Clock clock
|
||||
) {
|
||||
return new FinalSeminarOppositionServiceImpl(
|
||||
em,
|
||||
finalSeminarOppositionGrading,
|
||||
eventBus,
|
||||
finalSeminarOppositionRepository
|
||||
finalSeminarOppositionRepository,
|
||||
clock
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,7 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.OneToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import java.time.Instant;
|
||||
import java.util.Objects;
|
||||
import se.su.dsv.scipro.file.FileReference;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
@ -31,6 +32,14 @@ public class FinalSeminarOpposition extends FinalSeminarParticipation {
|
||||
@Column(name = "feedback", length = FEEDBACK_LENGTH)
|
||||
private String feedback;
|
||||
|
||||
@Basic
|
||||
@Column(name = "improvements_requested_at")
|
||||
private Instant improvementsRequestedAt;
|
||||
|
||||
@Basic
|
||||
@Column(name = "supervisor_improvements_comment")
|
||||
private String supervisorCommentForImprovements;
|
||||
|
||||
// ----------------------------------------------------------------------------------
|
||||
// JPA-mappings of foreign keys in this table (final_seminar_opposition) referencing
|
||||
// other tables.
|
||||
@ -92,6 +101,22 @@ public class FinalSeminarOpposition extends FinalSeminarParticipation {
|
||||
this.oppositionReport = oppositionReport;
|
||||
}
|
||||
|
||||
public Instant getImprovementsRequestedAt() {
|
||||
return improvementsRequestedAt;
|
||||
}
|
||||
|
||||
public void setImprovementsRequestedAt(Instant improvementsRequestedAt) {
|
||||
this.improvementsRequestedAt = improvementsRequestedAt;
|
||||
}
|
||||
|
||||
public String getSupervisorCommentForImprovements() {
|
||||
return supervisorCommentForImprovements;
|
||||
}
|
||||
|
||||
public void setSupervisorCommentForImprovements(String supervisorCommentsForImprovements) {
|
||||
this.supervisorCommentForImprovements = supervisorCommentsForImprovements;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------
|
||||
// Methods Common To All Objects
|
||||
// ----------------------------------------------------------------------------------
|
||||
|
@ -10,4 +10,6 @@ public interface FinalSeminarOppositionService extends GenericService<FinalSemin
|
||||
|
||||
FinalSeminarOpposition gradeOpponent(FinalSeminarOpposition opposition, int points, String feedback)
|
||||
throws PointNotValidException;
|
||||
|
||||
void requestImprovements(FinalSeminarOpposition opposition, String supervisorComment);
|
||||
}
|
||||
|
@ -5,7 +5,9 @@ import jakarta.inject.Inject;
|
||||
import jakarta.inject.Provider;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.transaction.Transactional;
|
||||
import java.time.Clock;
|
||||
import java.util.List;
|
||||
import se.su.dsv.scipro.report.OppositionReport;
|
||||
import se.su.dsv.scipro.system.AbstractServiceImpl;
|
||||
|
||||
public class FinalSeminarOppositionServiceImpl
|
||||
@ -15,18 +17,21 @@ public class FinalSeminarOppositionServiceImpl
|
||||
private final FinalSeminarOppositionGrading finalSeminarOppositionGrading;
|
||||
private final EventBus eventBus;
|
||||
private final FinalSeminarOppositionRepo finalSeminarOppositionRepository;
|
||||
private final Clock clock;
|
||||
|
||||
@Inject
|
||||
public FinalSeminarOppositionServiceImpl(
|
||||
Provider<EntityManager> em,
|
||||
FinalSeminarOppositionGrading finalSeminarOppositionGrading,
|
||||
EventBus eventBus,
|
||||
FinalSeminarOppositionRepo finalSeminarOppositionRepository
|
||||
FinalSeminarOppositionRepo finalSeminarOppositionRepository,
|
||||
Clock clock
|
||||
) {
|
||||
super(em, FinalSeminarOpposition.class, QFinalSeminarOpposition.finalSeminarOpposition);
|
||||
this.finalSeminarOppositionGrading = finalSeminarOppositionGrading;
|
||||
this.eventBus = eventBus;
|
||||
this.finalSeminarOppositionRepository = finalSeminarOppositionRepository;
|
||||
this.clock = clock;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -59,4 +64,16 @@ public class FinalSeminarOppositionServiceImpl
|
||||
|
||||
return assessedOpposition;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void requestImprovements(FinalSeminarOpposition opposition, String supervisorComment) {
|
||||
OppositionReport oppositionReport = opposition.getOppositionReport();
|
||||
if (oppositionReport == null) {
|
||||
return;
|
||||
}
|
||||
oppositionReport.setSubmitted(false);
|
||||
opposition.setImprovementsRequestedAt(clock.instant());
|
||||
opposition.setSupervisorCommentForImprovements(supervisorComment);
|
||||
}
|
||||
}
|
||||
|
3
core/src/main/resources/db/migration/V5__final_seminar_opposition_request_improvements.sql
Normal file
3
core/src/main/resources/db/migration/V5__final_seminar_opposition_request_improvements.sql
Normal file
@ -0,0 +1,3 @@
|
||||
ALTER TABLE `final_seminar_opposition`
|
||||
ADD COLUMN `improvements_requested_at` DATETIME NULL,
|
||||
ADD COLUMN `supervisor_improvements_comment` TEXT NULL;
|
Loading…
x
Reference in New Issue
Block a user