made new accepted student project idea datapanel

This commit is contained in:
fred-fri 2012-08-01 14:09:23 +09:00
parent ea53b74f45
commit 0387f61010
4 changed files with 88 additions and 13 deletions

@ -8,6 +8,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
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.match.dataobject.Match;
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);
}
@Override
public Page<ProjectIdea> findByMatchedTo(Employee employee, Pageable pageable) {
return projectIdeaRepo.findAll(isMatchStatus(Match.Status.CONFIRMED).and(isMatchedTo(employee)), pageable);
}
@Override
public Long countProjectIdeaByMatchStatus(Match.Status 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)));
}
@Override
public Long countByMatchedTo(Employee employee) {
return projectIdeaRepo.count(isMatchStatus(Match.Status.CONFIRMED).and(isMatchedTo(employee)));
}
private BooleanExpression isMatchStatus(Match.Status 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.Pageable;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.match.dataobject.Match;
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 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 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 countByMatchedTo(Employee employee);
}

@ -3,10 +3,11 @@
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<div class="prepend-top span-24 last">
<div wicket:id="feedBackPanel" />
<div wicket:id="matchedThesisPanel"></div>
</div>
<!--<div class="prepend-top span-24 last">-->
<!--<div wicket:id="feedBackPanel" />-->
<!--<div wicket:id="matchedThesisPanel"></div> -->
<!--</div>-->
<div wicket:id="dp"></div>
</wicket:extend>
</body>
</html>

@ -3,20 +3,74 @@ package se.su.dsv.scipro.supervisor.pages;
import org.apache.wicket.Component;
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.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.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 java.util.Iterator;
public class SupervisorMyProjectIdeasPage extends AbstractSupervisorProjectIdeaPage {
public static final String MAIN_MENU_LABEL = "Supervisor";
private static final long serialVersionUID = -6146389373527384427L;
@SpringBean
private ProjectIdeaService projectIdeaService;
@SpringBean
private SafeLongToIntService safeLongToIntService;
@SpringBean
private EmployeeService employeeService;
public SupervisorMyProjectIdeasPage(PageParameters pp) {
super(pp);
Component feedBackPanel = new FeedbackPanel("feedBackPanel");
feedBackPanel.setOutputMarkupId(true);
add(feedBackPanel);
add(new SupervisorMatchedThesisPanel("matchedThesisPanel", SciProSession.get().getUser(), "Supervisor", feedBackPanel));
}
super(pp);
// Component feedBackPanel = new FeedbackPanel("feedBackPanel");
// feedBackPanel.setOutputMarkupId(true);
// add(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())));
}
});
}
}