3337 Show the thesis document during reviewer assignment to help pick the most appropriate one

This commit is contained in:
Andreas Svanberg 2024-02-13 11:19:50 +01:00
parent 465706e1be
commit 2ceb040c38
2 changed files with 13 additions and 3 deletions
view/src/main/java/se/su/dsv/scipro/admin/pages

@ -18,8 +18,8 @@
<dt>Language</dt>
<dd wicket:id="language"></dd>
<dt>Reviewer</dt>
<dd wicket:id="reviewer"></dd>
<dt>Thesis document</dt>
<dd wicket:id="rough_draft"></dd>
</dl>
</div>

@ -16,14 +16,18 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValueConversionException;
import se.su.dsv.scipro.components.AutoHidingListView;
import se.su.dsv.scipro.data.DetachableServiceModel;
import se.su.dsv.scipro.file.FileReference;
import se.su.dsv.scipro.profile.UserLabel;
import se.su.dsv.scipro.profile.UserLinkPanel;
import se.su.dsv.scipro.profile.UserProfileImage;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.project.ProjectService;
import se.su.dsv.scipro.repository.panels.ViewAttachmentPanel;
import se.su.dsv.scipro.reviewing.ReviewPeriod;
import se.su.dsv.scipro.reviewing.ReviewerAssignmentService;
import se.su.dsv.scipro.reviewing.ReviewerCandidates;
import se.su.dsv.scipro.reviewing.RoughDraftApproval;
import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
import se.su.dsv.scipro.system.Language;
import se.su.dsv.scipro.system.ResearchArea;
import se.su.dsv.scipro.system.User;
@ -62,14 +66,20 @@ public class AdminAssignReviewerPage extends AbstractAdminProjectPage {
}
private static class ProjectDetailsPanel extends WebMarkupContainer {
@Inject
private RoughDraftApprovalService roughDraftApprovalService;
public ProjectDetailsPanel(String id, IModel<Project> projectModel) {
super(id, projectModel);
IModel<RoughDraftApproval> roughDraftApproval = LoadableDetachableModel.of(() ->
roughDraftApprovalService.findBy(projectModel.getObject()).orElse(null));
add(new Label("title", projectModel.map(Project::getTitle)));
add(new Label("research_area", projectModel.map(Project::getResearchArea).map(ResearchArea::getTitle)));
add(new UserLinkPanel("supervisor", projectModel.map(Project::getHeadSupervisor)));
add(new EnumLabel<>("language", projectModel.map(Project::getLanguage)));
add(new UserLinkPanel("reviewer", projectModel.map(Project::getReviewer)));
add(new ViewAttachmentPanel("rough_draft", roughDraftApproval.map(RoughDraftApproval::getCurrentThesis).map(FileReference::getFileDescription)));
}
}