new improvements
This commit is contained in:
parent
fbf4023c09
commit
625e3fd1e3
src/main/java/se/su/dsv/scipro
@ -1,22 +1,16 @@
|
||||
package se.su.dsv.scipro.admin.pages;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
||||
import se.su.dsv.scipro.admin.pages.match.AdminKeywordPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.AdminManageMatchPeriodsPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.AdminManageMatchSupervisorPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.AdminManageProjectIdeaPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.AdminSupervisorKeywordsPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.AutomaticMatchPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.AdminExemptionPage;
|
||||
import se.su.dsv.scipro.admin.pages.match.*;
|
||||
import se.su.dsv.scipro.components.AbstractMenuPanel;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Authorization(authorizedRoles = { Roles.SYSADMIN })
|
||||
public abstract class AbstractAdminMatchPage extends AbstractAdminPage {
|
||||
private Component feedBackPanel;
|
||||
@ -40,7 +34,7 @@ public abstract class AbstractAdminMatchPage extends AbstractAdminPage {
|
||||
items.add(new MenuItem("Manage keywords", AdminKeywordPage.class));
|
||||
items.add(new MenuItem("Student exemptions", AdminExemptionPage.class));
|
||||
items.add(new MenuItem("Supervisor settings", AdminManageMatchSupervisorPage.class));
|
||||
items.add(new MenuItem("Application periods", AdminManageMatchPeriodsPage.class));
|
||||
items.add(new MenuItem("Project Ideas", AdminManageMatchPeriodsPage.class));
|
||||
return items;
|
||||
}
|
||||
|
||||
|
@ -8,18 +8,22 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="rounded-left-top">Status</th>
|
||||
<th class="rounded-right-top">Total</th>
|
||||
<th>Total</th>
|
||||
<th>Bachelor</th>
|
||||
<th class="rounded-right-top">Master</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" class="rounded-foot"> </td>
|
||||
<td colspan="4" class="rounded-foot"> </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<tr wicket:id="listview">
|
||||
<td wicket:id="statusNameLabel"></td>
|
||||
<td wicket:id="statusCountLabel"></td>
|
||||
<td wicket:id="bachelorCountLabel"></td>
|
||||
<td wicket:id="masterCountLabel"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
|
@ -5,6 +5,8 @@ import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectClassService;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectIdeaService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -24,6 +26,8 @@ public class ProjectIdeaStatisticsPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private ProjectIdeaService projectIdeaService;
|
||||
@SpringBean
|
||||
private ProjectClassService projectClassService;
|
||||
|
||||
public ProjectIdeaStatisticsPanel(String id) {
|
||||
super(id);
|
||||
@ -33,12 +37,17 @@ public class ProjectIdeaStatisticsPanel extends Panel {
|
||||
for (Status s : Status.values()) {
|
||||
valueArray.add(s);
|
||||
}
|
||||
|
||||
final ProjectClass bachelor = projectClassService.findByName(ProjectClass.BACHELOR);
|
||||
final ProjectClass master = projectClassService.findByName(ProjectClass.MASTER);
|
||||
|
||||
ListView listview = new ListView("listview", valueArray) {
|
||||
protected void populateItem(ListItem item) {
|
||||
Status s = (Status) item.getModelObject();
|
||||
item.add(new Label("statusNameLabel", s.name()));
|
||||
item.add(new Label("statusCountLabel", String.valueOf(projectIdeaService.countProjectIdeaByMatchStatus(s))));
|
||||
item.add(new Label("bachelorCountLabel", String.valueOf(projectIdeaService.countProjectIdeaByMatchStatusAndProjectClass(s, bachelor))));
|
||||
item.add(new Label("masterCountLabel", String.valueOf(projectIdeaService.countProjectIdeaByMatchStatusAndProjectClass(s, master))));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -0,0 +1,15 @@
|
||||
package se.su.dsv.scipro.springdata.repos;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
|
||||
/**
|
||||
* @author: fred-fri
|
||||
* date: 2012 03 26
|
||||
*/
|
||||
@Transactional(readOnly = true)
|
||||
public interface ProjectClassRepo extends JpaRepository<ProjectClass, Long>, QueryDslPredicateExecutor<ProjectClass> {
|
||||
|
||||
}
|
@ -11,7 +11,7 @@ import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
||||
*/
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public interface ProjectIdeaRepo extends JpaRepository<ProjectIdea, Long>, QueryDslPredicateExecutor {
|
||||
public interface ProjectIdeaRepo extends JpaRepository<ProjectIdea, Long>, QueryDslPredicateExecutor<ProjectIdea> {
|
||||
|
||||
//nothing here yet
|
||||
|
||||
|
@ -0,0 +1,35 @@
|
||||
package se.su.dsv.scipro.springdata.serviceimpls;
|
||||
|
||||
import com.mysema.query.types.expr.BooleanExpression;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.data.dataobjects.QProjectClass;
|
||||
import se.su.dsv.scipro.springdata.repos.ProjectClassRepo;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectClassService;
|
||||
|
||||
/**
|
||||
* @author: fred-fri
|
||||
* date: 2012 03 26
|
||||
*/
|
||||
@Repository("projectClassService")
|
||||
@Transactional(readOnly = true)
|
||||
public class ProjectClassServiceImpl implements ProjectClassService {
|
||||
|
||||
@Qualifier("projectClassRepo")
|
||||
@Autowired
|
||||
private ProjectClassRepo projectClassRepo;
|
||||
|
||||
public ProjectClassServiceImpl(){
|
||||
System.out.println("BLA BLA");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectClass findByName(String name) {
|
||||
QProjectClass qProjectClass = QProjectClass.projectClass;
|
||||
BooleanExpression hasName = qProjectClass.name.eq(name);
|
||||
return projectClassRepo.findOne(hasName);
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.match.dataobject.Match;
|
||||
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.QProjectIdea;
|
||||
@ -42,10 +43,10 @@ public class ProjectIdeaServiceImpl implements ProjectIdeaService {
|
||||
public Iterable<ProjectIdea> findProjectIdeaByMatchStatus(Match.Status status) {
|
||||
|
||||
QProjectIdea qProjectIdea = QProjectIdea.projectIdea;
|
||||
BooleanExpression isMatchStatus = qProjectIdea.match.status.eq(status);;
|
||||
BooleanExpression isMatchStatus = qProjectIdea.match.status.eq(status);
|
||||
|
||||
projectIdeaRepo.count(isMatchStatus);
|
||||
|
||||
|
||||
return projectIdeaRepo.findAll(isMatchStatus);
|
||||
|
||||
}
|
||||
@ -54,10 +55,19 @@ public class ProjectIdeaServiceImpl implements ProjectIdeaService {
|
||||
public Long countProjectIdeaByMatchStatus(Match.Status status) {
|
||||
|
||||
QProjectIdea qProjectIdea = QProjectIdea.projectIdea;
|
||||
BooleanExpression isMatchStatus = qProjectIdea.match.status.eq(status);;
|
||||
BooleanExpression isMatchStatus = qProjectIdea.match.status.eq(status);
|
||||
|
||||
return projectIdeaRepo.count(isMatchStatus);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long countProjectIdeaByMatchStatusAndProjectClass(Match.Status status, ProjectClass projectClass) {
|
||||
QProjectIdea qProjectIdea = QProjectIdea.projectIdea;
|
||||
BooleanExpression isMatchStatus = qProjectIdea.match.status.eq(status);
|
||||
BooleanExpression isProjectClass = qProjectIdea.projectClass.eq(projectClass);
|
||||
|
||||
return projectIdeaRepo.count(isMatchStatus.and(isProjectClass));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package se.su.dsv.scipro.springdata.services;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
|
||||
/**
|
||||
* @author: fred-fri
|
||||
* date: 2012 03 26
|
||||
*/
|
||||
public interface ProjectClassService {
|
||||
|
||||
public ProjectClass findByName(String name);
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package se.su.dsv.scipro.springdata.services;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.match.dataobject.Match;
|
||||
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
|
||||
|
||||
@ -16,5 +17,7 @@ public interface ProjectIdeaService {
|
||||
public Iterable<ProjectIdea> findProjectIdeaByMatchStatus(Match.Status status);
|
||||
|
||||
public Long countProjectIdeaByMatchStatus(Match.Status status);
|
||||
|
||||
public Long countProjectIdeaByMatchStatusAndProjectClass(Match.Status status, ProjectClass projectClass);
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user