filtering to only show current supervisors idea now working on supervisor - project ideas datatable
This commit is contained in:
parent
0e854ff7f1
commit
12895d5bd8
src/main/java/se/su/dsv/scipro
springdata
supervisor/panels
@ -24,6 +24,7 @@ import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.match.dataobject.Idea.IdeaStatus;
|
||||
import se.su.dsv.scipro.match.dataobject.QSupervisorIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.peer.data.dataobjects.QPeerRequest;
|
||||
import se.su.dsv.scipro.springdata.repos.SupervisorIdeaRepo;
|
||||
import se.su.dsv.scipro.springdata.services.StudentService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
@ -138,7 +139,7 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
}
|
||||
|
||||
private Predicate predicateFromParams(FilterParams params) {
|
||||
return levelFilter(params.getLevels());
|
||||
return levelFilter(params.getLevels()).and(bySupervisor(params.getSupervisor()));
|
||||
}
|
||||
|
||||
private BooleanBuilder levelFilter(Collection<ProjectClass> levels){
|
||||
@ -154,6 +155,14 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
return e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private BooleanExpression bySupervisor(Employee supervisor) {
|
||||
if(supervisor!=null){
|
||||
return QSupervisorIdea.supervisorIdea.creator.eq(supervisor);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private BooleanExpression byLevel(ProjectClass pc){
|
||||
|
@ -35,6 +35,7 @@ public interface SupervisorIdeaService extends GenericService<SupervisorIdea, Lo
|
||||
private static final long serialVersionUID = 4981420721152104292L;
|
||||
|
||||
private Collection<ProjectClass> levels;
|
||||
private Employee supervisor;
|
||||
|
||||
public void setLevels(Collection<ProjectClass> levels) {
|
||||
this.levels = levels;
|
||||
@ -43,6 +44,14 @@ public interface SupervisorIdeaService extends GenericService<SupervisorIdea, Lo
|
||||
public Collection<ProjectClass> getLevels() {
|
||||
return levels;
|
||||
}
|
||||
|
||||
public void setSupervisor(Employee supervisor) {
|
||||
this.supervisor = supervisor;
|
||||
}
|
||||
|
||||
public Employee getSupervisor() {
|
||||
return supervisor;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -6,9 +6,13 @@
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<form wicket:id="form">
|
||||
<div wicket:id="levelFilter"></div>
|
||||
<div class="span-5" wicket:id="levelFilter"></div>
|
||||
<div class="span-5">
|
||||
<label>Show only my project ideas</label> <br />
|
||||
<input type="checkbox" wicket:id="supervisorCheckBox" />
|
||||
</div>
|
||||
</form>
|
||||
<div class="prepend-top" wicket:id="dataPanel"></div>
|
||||
<div class="span-22 prepend-top" wicket:id="dataPanel"></div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -4,6 +4,7 @@ import java.util.Iterator;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
|
||||
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.form.Form;
|
||||
@ -13,7 +14,7 @@ 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.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.datatables.ClickableIconColumn;
|
||||
import se.su.dsv.scipro.datatables.project.GenericDataPanel;
|
||||
@ -22,13 +23,15 @@ import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.match.panel.FilterFormProjectClass;
|
||||
import se.su.dsv.scipro.springdata.services.GenericService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService.FilterParams;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorService;
|
||||
import se.su.dsv.scipro.supervisor.pages.SupervisorIdeaSubmissionPage;
|
||||
|
||||
public class SupervisorProjectIdeaOverviewPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
@SpringBean
|
||||
private SupervisorService supervisorService;
|
||||
private GenericDataPanel<SupervisorIdea> genericDataPanel;
|
||||
private SupervisorIdeaService.FilterParams params;
|
||||
|
||||
@ -37,7 +40,7 @@ public class SupervisorProjectIdeaOverviewPanel extends Panel {
|
||||
public SupervisorProjectIdeaOverviewPanel(String id, final User supervisor) {
|
||||
super(id);
|
||||
addDataTable(supervisor);
|
||||
add(new FilterForm("form"));
|
||||
add(new FilterForm("form", supervisor));
|
||||
}
|
||||
|
||||
private void addDataTable(final User supervisor) {
|
||||
@ -107,9 +110,11 @@ public class SupervisorProjectIdeaOverviewPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 6581597176580961782L;
|
||||
|
||||
public FilterForm(String id) {
|
||||
public FilterForm(String id, final User supervisor) {
|
||||
super(id);
|
||||
params = new SupervisorIdeaService.FilterParams();
|
||||
|
||||
//FILTERING ON PROJECT CLASS:
|
||||
final FilterFormProjectClass levelFilter = new FilterFormProjectClass("levelFilter") {
|
||||
private static final long serialVersionUID = -7758850229259608443L;
|
||||
|
||||
@ -125,6 +130,25 @@ public class SupervisorProjectIdeaOverviewPanel extends Panel {
|
||||
};
|
||||
params.setLevels(levelFilter.getProjectClasses());
|
||||
add(levelFilter);
|
||||
|
||||
//FILTER TO ONLY SHOW CURRENT SUPERVISORS PROJECT IDEAS;
|
||||
final AjaxCheckBox supervisorProjects = new AjaxCheckBox("supervisorCheckBox", new Model<Boolean>()) {
|
||||
private static final long serialVersionUID = -7624763782876907386L;
|
||||
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
if(this.getModelObject()){
|
||||
Employee current = supervisorService.findByUser(supervisor);
|
||||
params.setSupervisor(current);
|
||||
} else {
|
||||
params.setSupervisor(null);
|
||||
}
|
||||
target.addComponent(genericDataPanel.getWMC());
|
||||
}
|
||||
|
||||
};
|
||||
supervisorProjects.setDefaultModelObject(false);
|
||||
add(supervisorProjects);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user