2870 National subject category is mandatory

This commit is contained in:
Andreas Svanberg 2024-03-25 10:37:38 +01:00
parent 7420970e4b
commit 12104cc6c8
4 changed files with 23 additions and 0 deletions

@ -36,6 +36,7 @@
<ul>
<li wicket:id="status_final_thesis"></li>
<li wicket:id="status_plagiarism"></li>
<li wicket:id="status_publication_metadata"></li>
<li>
<div wicket:id="status_grading_basis">></div>
<ul wicket:id="grading_basis_missing">

@ -43,6 +43,8 @@ public class IndividualAuthorAssessment extends GenericPanel<User> {
private FinalThesisService finalThesisService;
@Inject
private FinalSeminarService finalSeminarService;
@Inject
private PublicationMetadataService publicationMetadataService;
private final IModel<Project> projectModel;
@ -73,6 +75,10 @@ public class IndividualAuthorAssessment extends GenericPanel<User> {
redGreen("status_plagiarism", hasSubmittedPlagiarismAnalysis,
"must_perform_plagiarism_check",
"plagiarism_check_performed");
IModel<Boolean> hasSuppliedPublicationMetadata = hasSuppliedPublicationMetadata(projectModel);
redGreen("status_publication_metadata", hasSuppliedPublicationMetadata,
"must_supply_publication_metadata",
"publication_metadata_supplied");
IModel<Boolean> hasFilledInGradingBasis = gradingReport.map(this::gradingBasisDone);
redGreen("status_grading_basis", hasFilledInGradingBasis,
"grading_basis_must_meet_minimum_requirements",
@ -169,12 +175,25 @@ public class IndividualAuthorAssessment extends GenericPanel<User> {
super.onConfigure();
setVisible(hasApprovedFinalThesis.getObject()
&& hasSubmittedPlagiarismAnalysis.getObject()
&& hasSuppliedPublicationMetadata.getObject()
&& hasFilledInGradingBasis.getObject()
&& hasFilledInIndividualAssessment.getObject());
}
});
}
private IModel<Boolean> hasSuppliedPublicationMetadata(IModel<Project> projectModel) {
return LoadableDetachableModel.of(() -> publicationMetadataService.getByProject(projectModel.getObject()))
.filter(metadata -> notBlank(metadata.getAbstractEnglish()) || notBlank(metadata.getAbstractSwedish()))
.filter(metadata -> notBlank(metadata.getKeywordsEnglish()) || notBlank(metadata.getKeywordsSwedish()))
.filter(metadata -> metadata.getNationalSubjectCategory() != null)
.isPresent();
}
private boolean notBlank(String s) {
return s != null && !s.isBlank();
}
private boolean gradingBasisDone(SupervisorGradingReport supervisorGradingReport) {
boolean criteriaMet = supervisorGradingReport.getProjectCriteria()
.stream()

@ -4,6 +4,8 @@ must_approve_final_thesis = You must approve the final thesis.
final_thesis_approved = Final thesis approved.
must_perform_plagiarism_check = You have to check the text matching report and perform a plagiarism analysis.
plagiarism_check_performed = Plagiarism analysis submitted.
must_supply_publication_metadata = You must supply publication metadata.
publication_metadata_supplied = Publication metadata supplied.
grading_basis_must_meet_minimum_requirements = General criteria not met.
grading_basis_minimum_requirements_met = General criteria met.
individual_assessment_must_meet_minimum_requirements = Not all individual criteria are met.

@ -80,6 +80,7 @@ public class SupervisorGradingReportPage extends AbstractSupervisorProjectDetail
projectModel.map(publicationMetadataService::getByProject)
.filter(metadata -> notBlank(metadata.getAbstractEnglish()) || notBlank(metadata.getAbstractSwedish()))
.filter(metadata -> notBlank(metadata.getKeywordsEnglish()) || notBlank(metadata.getKeywordsSwedish()))
.filter(metadata -> metadata.getNationalSubjectCategory() != null)
.isPresent();
add(newGreenHighlight("step_publication_metadata", hasProvidedPublicationMetadata, new ResourceModel("step_publication_metadata")));