Show upcoming templates on the overview page
This commit is contained in:
parent
7a1b3d4744
commit
862dd59513
core/src/main/java/se/su/dsv/scipro
grading
report
view/src/main/java/se/su/dsv/scipro/admin/pages/grading
@ -20,4 +20,6 @@ public interface GradingReportTemplateService {
|
||||
* @return the end date of this grading report template, possibly {@code null}
|
||||
*/
|
||||
LocalDate getEndDate(GradingReportTemplate gradingReportTemplate);
|
||||
|
||||
List<GradingReportTemplate> getUpcomingTemplates(ProjectType projectType);
|
||||
}
|
||||
|
@ -227,4 +227,14 @@ public class GradingReportServiceImpl implements GradingReportTemplateService, G
|
||||
return next.getValidFrom().minusDays(1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GradingReportTemplate> getUpcomingTemplates(ProjectType projectType) {
|
||||
GradingReportTemplate current = getCurrentTemplate(projectType);
|
||||
if (current == null) {
|
||||
return gradingReportTemplateRepo.getTemplatesValidAfter(projectType, LocalDate.now(clock));
|
||||
} else {
|
||||
return gradingReportTemplateRepo.getTemplatesValidAfter(projectType, current.getValidFrom());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
public interface GradingReportTemplateRepo extends JpaRepository<GradingReportTemplate, Long> {
|
||||
GradingReportTemplate getTemplate(Project project);
|
||||
@ -12,4 +13,6 @@ public interface GradingReportTemplateRepo extends JpaRepository<GradingReportTe
|
||||
GradingReportTemplate getCurrentTemplate(ProjectType projectType, LocalDate now);
|
||||
|
||||
GradingReportTemplate getNextTemplate(GradingReportTemplate gradingReportTemplate);
|
||||
|
||||
List<GradingReportTemplate> getTemplatesValidAfter(ProjectType projectType, LocalDate date);
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import jakarta.persistence.EntityManager;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
public class GradingReportTemplateRepoImpl extends GenericRepo<GradingReportTemplate, Long> implements GradingReportTemplateRepo {
|
||||
@Inject
|
||||
@ -46,4 +47,10 @@ public class GradingReportTemplateRepoImpl extends GenericRepo<GradingReportTemp
|
||||
.and(template.validFrom.gt(gradingReportTemplate.getValidFrom())));
|
||||
return findOne(template.projectType.eq(gradingReportTemplate.getProjectType()).and(template.validFrom.eq(validFrom)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GradingReportTemplate> getTemplatesValidAfter(ProjectType projectType, LocalDate date) {
|
||||
return findAll(QGradingReportTemplate.gradingReportTemplate.projectType.eq(projectType)
|
||||
.and(QGradingReportTemplate.gradingReportTemplate.validFrom.gt(date)));
|
||||
}
|
||||
}
|
18
view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.java
Normal file
18
view/src/main/java/se/su/dsv/scipro/admin/pages/grading/AdminGradingTemplateEditPage.java
Normal file
@ -0,0 +1,18 @@
|
||||
package se.su.dsv.scipro.admin.pages.grading;
|
||||
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import se.su.dsv.scipro.admin.pages.AbstractAdminProjectPage;
|
||||
import se.su.dsv.scipro.report.GradingReportTemplate;
|
||||
|
||||
public class AdminGradingTemplateEditPage extends AbstractAdminProjectPage implements MenuHighlightGradingTemplates {
|
||||
private static final String GRADING_REPORT_TEMPLATE_ID_PARAMETER = "id";
|
||||
|
||||
public AdminGradingTemplateEditPage() {
|
||||
}
|
||||
|
||||
public static PageParameters getPageParameters(GradingReportTemplate gradingReportTemplate) {
|
||||
PageParameters pageParameters = new PageParameters();
|
||||
pageParameters.add(GRADING_REPORT_TEMPLATE_ID_PARAMETER, gradingReportTemplate.getId());
|
||||
return pageParameters;
|
||||
}
|
||||
}
|
@ -47,20 +47,22 @@
|
||||
<h2 wicket:id="name">Bachelor</h2>
|
||||
|
||||
<div class="hstack gap-3 flex-wrap align-items-start" wicket:id="templates">
|
||||
<div class="card">
|
||||
<div class="card" wicket:id="upcoming_templates">
|
||||
<div class="card-header bg-info-subtle">
|
||||
Upcoming template
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<dl>
|
||||
<dt>Valid from</dt>
|
||||
<dd>2024-10-31</dd>
|
||||
<dd wicket:id="valid_from">2024-10-31</dd>
|
||||
|
||||
<dt>Note</dt>
|
||||
<dd>Added a new criteria U14</dd>
|
||||
<wicket:enclosure>
|
||||
<dt>Note</dt>
|
||||
<dd wicket:id="note">Added a new criteria U14</dd>
|
||||
</wicket:enclosure>
|
||||
</dl>
|
||||
<span class="card-text">
|
||||
<a href="#">View / Edit</a>
|
||||
<a href="#" wicket:id="edit_template">View / Edit</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -43,6 +43,16 @@ public class AdminGradingTemplatesOverviewPage extends AbstractAdminProjectPage
|
||||
add(new Label("valid_from", currentTemplate.map(GradingReportTemplate::getValidFrom)));
|
||||
add(new NonEmptyLabel("note", Model.of("")));
|
||||
add(new BookmarkablePageLink<>("view_template", AdminGradingTemplatePage.class, AdminGradingTemplatePage.getPageParameters(currentTemplate.getObject())));
|
||||
|
||||
IModel<List<GradingReportTemplate>> upcomingTemplates = model.map(gradingReportTemplateService::getUpcomingTemplates);
|
||||
add(new ListView<>("upcoming_templates", upcomingTemplates) {
|
||||
@Override
|
||||
protected void populateItem(ListItem<GradingReportTemplate> item) {
|
||||
item.add(new Label("valid_from", item.getModel().map(GradingReportTemplate::getValidFrom)));
|
||||
item.add(new NonEmptyLabel("note", Model.of("")));
|
||||
item.add(new BookmarkablePageLink<>("edit_template", AdminGradingTemplateEditPage.class, AdminGradingTemplateEditPage.getPageParameters(currentTemplate.getObject())));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user