made new accepted student project idea datapanel
This commit is contained in:
parent
ea53b74f45
commit
0387f61010
src/main/java/se/su/dsv/scipro
springdata
supervisor/pages
@ -8,6 +8,7 @@ import org.springframework.data.domain.Page;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||||
import se.su.dsv.scipro.match.dataobject.Match;
|
import se.su.dsv.scipro.match.dataobject.Match;
|
||||||
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
||||||
@ -55,6 +56,11 @@ public class ProjectIdeaServiceImpl extends AbstractQueryService<ProjectIdea, Lo
|
|||||||
return projectIdeaRepo.findAll(isMatchStatus(status), pageable);
|
return projectIdeaRepo.findAll(isMatchStatus(status), pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<ProjectIdea> findByMatchedTo(Employee employee, Pageable pageable) {
|
||||||
|
return projectIdeaRepo.findAll(isMatchStatus(Match.Status.CONFIRMED).and(isMatchedTo(employee)), pageable);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long countProjectIdeaByMatchStatus(Match.Status status) {
|
public Long countProjectIdeaByMatchStatus(Match.Status status) {
|
||||||
return projectIdeaRepo.count(isMatchStatus(status));
|
return projectIdeaRepo.count(isMatchStatus(status));
|
||||||
@ -65,6 +71,11 @@ public class ProjectIdeaServiceImpl extends AbstractQueryService<ProjectIdea, Lo
|
|||||||
return projectIdeaRepo.count(isMatchStatus(status).and(isProjectClass(projectClass)));
|
return projectIdeaRepo.count(isMatchStatus(status).and(isProjectClass(projectClass)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long countByMatchedTo(Employee employee) {
|
||||||
|
return projectIdeaRepo.count(isMatchStatus(Match.Status.CONFIRMED).and(isMatchedTo(employee)));
|
||||||
|
}
|
||||||
|
|
||||||
private BooleanExpression isMatchStatus(Match.Status status){
|
private BooleanExpression isMatchStatus(Match.Status status){
|
||||||
return QProjectIdea.projectIdea.match.status.eq(status);
|
return QProjectIdea.projectIdea.match.status.eq(status);
|
||||||
}
|
}
|
||||||
@ -115,4 +126,8 @@ public class ProjectIdeaServiceImpl extends AbstractQueryService<ProjectIdea, Lo
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BooleanExpression isMatchedTo(Employee employee){
|
||||||
|
return QProjectIdea.projectIdea.match.supervisor.eq(employee);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import java.util.Set;
|
|||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||||
import se.su.dsv.scipro.match.dataobject.Match;
|
import se.su.dsv.scipro.match.dataobject.Match;
|
||||||
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
||||||
@ -17,10 +18,14 @@ import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
|||||||
public interface ProjectIdeaService extends GenericService<ProjectIdea,Long>, QueryService<ProjectIdea, Long> {
|
public interface ProjectIdeaService extends GenericService<ProjectIdea,Long>, QueryService<ProjectIdea, Long> {
|
||||||
|
|
||||||
public Page<ProjectIdea> find(Set<Match.Status> statusSet, String filterString, Date fromDate, Date toDate, Pageable pageable);
|
public Page<ProjectIdea> find(Set<Match.Status> statusSet, String filterString, Date fromDate, Date toDate, Pageable pageable);
|
||||||
public Long count(Set<Match.Status> statusSet, String filterString, Date fromDate, Date toDate);
|
|
||||||
|
|
||||||
public Page<ProjectIdea> find(Match.Status status, Pageable pageable);
|
public Page<ProjectIdea> find(Match.Status status, Pageable pageable);
|
||||||
public Long countProjectIdeaByMatchStatus(Match.Status status);
|
public Page<ProjectIdea> findByMatchedTo(Employee employee, Pageable pageable);
|
||||||
|
|
||||||
|
|
||||||
|
public Long count(Set<Match.Status> statusSet, String filterString, Date fromDate, Date toDate);
|
||||||
|
public Long countProjectIdeaByMatchStatus(Match.Status status);
|
||||||
public Long countProjectIdeaByMatchStatusAndProjectClass(Match.Status status, ProjectClass projectClass);
|
public Long countProjectIdeaByMatchStatusAndProjectClass(Match.Status status, ProjectClass projectClass);
|
||||||
|
public Long countByMatchedTo(Employee employee);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,11 @@
|
|||||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||||
<body>
|
<body>
|
||||||
<wicket:extend>
|
<wicket:extend>
|
||||||
<div class="prepend-top span-24 last">
|
<!--<div class="prepend-top span-24 last">-->
|
||||||
<div wicket:id="feedBackPanel" />
|
<!--<div wicket:id="feedBackPanel" />-->
|
||||||
<div wicket:id="matchedThesisPanel"></div>
|
<!--<div wicket:id="matchedThesisPanel"></div> -->
|
||||||
</div>
|
<!--</div>-->
|
||||||
|
<div wicket:id="dp"></div>
|
||||||
</wicket:extend>
|
</wicket:extend>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -3,20 +3,74 @@ package se.su.dsv.scipro.supervisor.pages;
|
|||||||
import org.apache.wicket.Component;
|
import org.apache.wicket.Component;
|
||||||
import org.apache.wicket.PageParameters;
|
import org.apache.wicket.PageParameters;
|
||||||
|
|
||||||
|
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
|
||||||
|
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
|
||||||
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
||||||
|
import org.apache.wicket.model.Model;
|
||||||
|
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||||
|
import org.springframework.data.domain.PageRequest;
|
||||||
import se.su.dsv.scipro.SciProSession;
|
import se.su.dsv.scipro.SciProSession;
|
||||||
|
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||||
|
import se.su.dsv.scipro.datatables.GenericDataPanel;
|
||||||
|
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
||||||
|
import se.su.dsv.scipro.reusable.SafeLongToIntService;
|
||||||
|
import se.su.dsv.scipro.springdata.services.EmployeeService;
|
||||||
|
import se.su.dsv.scipro.springdata.services.GenericService;
|
||||||
|
import se.su.dsv.scipro.springdata.services.ProjectIdeaService;
|
||||||
import se.su.dsv.scipro.supervisor.panels.SupervisorMatchedThesisPanel;
|
import se.su.dsv.scipro.supervisor.panels.SupervisorMatchedThesisPanel;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
public class SupervisorMyProjectIdeasPage extends AbstractSupervisorProjectIdeaPage {
|
public class SupervisorMyProjectIdeasPage extends AbstractSupervisorProjectIdeaPage {
|
||||||
|
|
||||||
public static final String MAIN_MENU_LABEL = "Supervisor";
|
public static final String MAIN_MENU_LABEL = "Supervisor";
|
||||||
private static final long serialVersionUID = -6146389373527384427L;
|
private static final long serialVersionUID = -6146389373527384427L;
|
||||||
|
|
||||||
|
@SpringBean
|
||||||
|
private ProjectIdeaService projectIdeaService;
|
||||||
|
@SpringBean
|
||||||
|
private SafeLongToIntService safeLongToIntService;
|
||||||
|
@SpringBean
|
||||||
|
private EmployeeService employeeService;
|
||||||
|
|
||||||
public SupervisorMyProjectIdeasPage(PageParameters pp) {
|
public SupervisorMyProjectIdeasPage(PageParameters pp) {
|
||||||
super(pp);
|
super(pp);
|
||||||
Component feedBackPanel = new FeedbackPanel("feedBackPanel");
|
// Component feedBackPanel = new FeedbackPanel("feedBackPanel");
|
||||||
feedBackPanel.setOutputMarkupId(true);
|
// feedBackPanel.setOutputMarkupId(true);
|
||||||
add(feedBackPanel);
|
// add(feedBackPanel);
|
||||||
add(new SupervisorMatchedThesisPanel("matchedThesisPanel", SciProSession.get().getUser(), "Supervisor", feedBackPanel));
|
// add(new SupervisorMatchedThesisPanel("matchedThesisPanel", SciProSession.get().getUser(), "Supervisor", feedBackPanel));
|
||||||
}
|
|
||||||
|
|
||||||
|
add(new GenericDataPanel<ProjectIdea>("dp") {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GenericService getService() {
|
||||||
|
return projectIdeaService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSortString() {
|
||||||
|
return "dateCreated";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IColumn[] getColumns() {
|
||||||
|
IColumn[] columns = new IColumn[1];
|
||||||
|
columns[0] = new PropertyColumn<ProjectIdea>(Model.of("Title"), "title", "title");
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterator<ProjectIdea> getIterator() {
|
||||||
|
return projectIdeaService.findByMatchedTo(employeeService.findByUser(SciProSession.get().getUser()), new PageRequest(getTable().getCurrentPage(), getTable().getRowsPerPage(), getSort())).iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSize() {
|
||||||
|
return safeLongToIntService.safeLongToInt(projectIdeaService.countByMatchedTo(employeeService.findByUser(SciProSession.get().getUser())));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user