added date filtering for projects as well. Filtering on daisy start date for the active projects
This commit is contained in:
parent
e195700624
commit
50f470d25d
src/main/java/se/su/dsv/scipro
admin/panels
data
@ -66,9 +66,10 @@ public class AdminMailPanel extends Panel {
|
||||
private ProjectIdeaMailChoice ideaChoice;
|
||||
private ProjectMailChoice projectChoice;
|
||||
private RadioChoice<String> choice;
|
||||
private WebMarkupContainer choiceContainer;
|
||||
private WebMarkupContainer choiceContainer, labelContainer;
|
||||
private String selectedRecipientSet;
|
||||
private DatePickerPanel dpp;
|
||||
private Label projectPickerLabel, ideaPickerLabel;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ -101,6 +102,14 @@ public class AdminMailPanel extends Panel {
|
||||
}
|
||||
|
||||
private void setUpDatePanel() {
|
||||
labelContainer = new WebMarkupContainer("labelContainer");
|
||||
labelContainer.setOutputMarkupId(true);
|
||||
projectPickerLabel = new Label("pickerLabel","Started between:");
|
||||
ideaPickerLabel = new Label("ideaPickerLabel", "Submitted between:");
|
||||
ideaPickerLabel.setVisible(false);
|
||||
labelContainer.add(projectPickerLabel);
|
||||
labelContainer.add(ideaPickerLabel);
|
||||
add(labelContainer);
|
||||
dpp = new DatePickerPanel("datePanel");
|
||||
add(dpp);
|
||||
}
|
||||
@ -196,13 +205,18 @@ public class AdminMailPanel extends Panel {
|
||||
selectedRecipientSet = projectChoice.getModelObject();
|
||||
ideaChoice.setVisible(false);
|
||||
projectChoice.setVisible(true);
|
||||
ideaPickerLabel.setVisible(false);
|
||||
projectPickerLabel.setVisible(true);
|
||||
}
|
||||
else {
|
||||
selectedRecipientSet = ideaChoice.getModelObject();
|
||||
projectChoice.setVisible(false);
|
||||
ideaChoice.setVisible(true);
|
||||
ideaPickerLabel.setVisible(true);
|
||||
projectPickerLabel.setVisible(false);
|
||||
}
|
||||
target.addComponent(choiceContainer);
|
||||
target.addComponent(labelContainer);
|
||||
updateUserSet(target);
|
||||
}
|
||||
};
|
||||
@ -235,7 +249,7 @@ public class AdminMailPanel extends Panel {
|
||||
if(choiceInput.equals(ProjectMailChoice.THESIS_SUPPORT))
|
||||
recipients = mailFacade.addThesisSupport();
|
||||
else if(choiceInput.equals(ProjectMailChoice.AUTHORS_ACTIVE_PROJECT)){
|
||||
recipients = mailFacade.addActiveAuthors(pc);
|
||||
recipients = mailFacade.addActiveAuthors(pc, startDate, endDate);
|
||||
}
|
||||
else if(choiceInput.equals(ProjectIdeaMailChoice.AUTHORS_CONFIRMED)){
|
||||
recipients = mailFacade.addAuthorsWithConfirmedIdeas(pc, startDate, endDate);
|
||||
@ -247,7 +261,7 @@ public class AdminMailPanel extends Panel {
|
||||
recipients = mailFacade.addAuthorsWithRefusedIdeas(pc, startDate, endDate);
|
||||
}
|
||||
else if(choiceInput.equals(ProjectMailChoice.SUPERVISOR_ALL_ACTIVE)){
|
||||
recipients = mailFacade.addSupervisorsWithActiveProjects(pc);
|
||||
recipients = mailFacade.addSupervisorsWithActiveProjects(pc, startDate, endDate);
|
||||
}
|
||||
else if(choiceInput.equals(ProjectIdeaMailChoice.SUPERVISOR_CONFIRMED)){
|
||||
recipients = mailFacade.addSupervisorsWithConfirmedIdeas(pc, startDate, endDate);
|
||||
@ -256,10 +270,10 @@ public class AdminMailPanel extends Panel {
|
||||
recipients = mailFacade.addSupervisorsWithUnconfirmedIdeas(pc, startDate, endDate);
|
||||
}
|
||||
else if(choiceInput.equals(ProjectMailChoice.ACTIVE_REVIEWERS)){
|
||||
recipients = mailFacade.addActiveReviewers();
|
||||
recipients = mailFacade.addActiveReviewers(pc, startDate, endDate);
|
||||
}
|
||||
else if(choiceInput.equals(ProjectMailChoice.ACTIVE_CO_SUPERVISORS)){
|
||||
recipients = mailFacade.addActiveCoSupervisors();
|
||||
recipients = mailFacade.addActiveCoSupervisors(pc, startDate, endDate);
|
||||
}
|
||||
return recipients;
|
||||
}
|
||||
|
@ -65,24 +65,9 @@ public interface ProjectDao extends Dao<Project>{
|
||||
|
||||
private Date dateCreated;
|
||||
|
||||
private Date createdAfter;
|
||||
private Date createdBefore;
|
||||
private Date startedAfter;
|
||||
|
||||
public void setCreatedAfter(Date createdAfter) {
|
||||
this.createdAfter = createdAfter;
|
||||
}
|
||||
|
||||
public Date getCreatedAfter() {
|
||||
return createdAfter;
|
||||
}
|
||||
|
||||
public void setcreatedBefore(Date createdBefore) {
|
||||
this.createdBefore = createdBefore;
|
||||
}
|
||||
|
||||
public Date getCreatedBefore() {
|
||||
return createdBefore;
|
||||
}
|
||||
private Date startedBefore;
|
||||
|
||||
private Collection<ProjectClass> projectClasses;
|
||||
|
||||
@ -97,7 +82,23 @@ public interface ProjectDao extends Dao<Project>{
|
||||
// TODO: private Collection<DSVUnit> units;
|
||||
|
||||
// TODO: private Collection<DSVField> fields;
|
||||
|
||||
public Date getStartedBefore() {
|
||||
return startedBefore;
|
||||
}
|
||||
|
||||
public void setStartedBefore(Date startedBefore) {
|
||||
this.startedBefore = startedBefore;
|
||||
}
|
||||
|
||||
public Date getStartedAfter() {
|
||||
return startedAfter;
|
||||
}
|
||||
|
||||
public void setStartedAfter(Date startedAfter) {
|
||||
this.startedAfter = startedAfter;
|
||||
}
|
||||
|
||||
public Date getDateCreated() {
|
||||
return dateCreated;
|
||||
}
|
||||
|
@ -503,7 +503,7 @@ public class ProjectDaoJPAImp extends AbstractDaoJPAImp<Project> implements Proj
|
||||
|
||||
|
||||
@Transactional( readOnly=true )
|
||||
public List<Project> findProjects(ProjectDao.Params params){
|
||||
public List<Project> findProjects(ProjectDao.Params params){
|
||||
return getJpaTemplate().execute(
|
||||
createQuerySet(params).fetchCallback());
|
||||
}
|
||||
@ -521,9 +521,9 @@ public class ProjectDaoJPAImp extends AbstractDaoJPAImp<Project> implements Proj
|
||||
.filterString(params.getFilterString())
|
||||
.projectClasses(params.getProjectClasses())
|
||||
.projectStatuses(params.getProjectStatuses())
|
||||
.createdAfter(params.getCreatedAfter())
|
||||
.createdBefore(params.getCreatedBefore())
|
||||
.authors(params.getAuthors())
|
||||
.createdAfter(params.getStartedAfter())
|
||||
.createdBefore(params.getStartedBefore())
|
||||
// .creator(params.getCreator())
|
||||
.sortField(params.getSortField(), params.getDirection())
|
||||
.limit(params.getLimit())
|
||||
@ -535,7 +535,25 @@ public class ProjectDaoJPAImp extends AbstractDaoJPAImp<Project> implements Proj
|
||||
super(Project.class);
|
||||
}
|
||||
|
||||
public QuerySet filterString(String filterString) {
|
||||
public QuerySet createdAfter(Date startDate) {
|
||||
if (startDate != null) {
|
||||
getQuery().combine(
|
||||
new Query().where("_.daisyStartDate >= :startDate")
|
||||
.parameter("startDate", startDate));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuerySet createdBefore(Date endDate) {
|
||||
if (endDate != null) {
|
||||
getQuery().combine(
|
||||
new Query().where("_.daisyStartDate <= :endDate")
|
||||
.parameter("endDate", endDate));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuerySet filterString(String filterString) {
|
||||
if (filterString != null) {
|
||||
getQuery().combine(
|
||||
new Query()
|
||||
@ -563,15 +581,6 @@ public class ProjectDaoJPAImp extends AbstractDaoJPAImp<Project> implements Proj
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuerySet createdBefore(Date createdBefore) {
|
||||
if (createdBefore != null) {
|
||||
getQuery().combine(
|
||||
new Query().where("_.dateCreated <= :endDate")
|
||||
.parameter("endDate", createdBefore));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuerySet authors(Collection<Student> authors) {
|
||||
if (authors != null && !authors.isEmpty()) {
|
||||
getQuery().combine(
|
||||
@ -594,15 +603,7 @@ public class ProjectDaoJPAImp extends AbstractDaoJPAImp<Project> implements Proj
|
||||
// }
|
||||
// return this;
|
||||
// }
|
||||
|
||||
public QuerySet createdAfter(Date createdAfter) {
|
||||
if (createdAfter != null) {
|
||||
getQuery().combine(
|
||||
new Query().where("_.dateCreated >= :startDate")
|
||||
.parameter("startDate", createdAfter));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Query initQuery() {
|
||||
|
@ -40,18 +40,8 @@ public class MailFacade {
|
||||
private ProjectIdeaDao.Params projectIdeaParams;
|
||||
private Set<User> recipients;
|
||||
|
||||
public Set<User> addActiveAuthors(ProjectClass pc) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc);
|
||||
return authorsFromProjects();
|
||||
}
|
||||
|
||||
public Set<User> addActiveBachelorAuthors(ProjectClass pc) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc);
|
||||
return authorsFromProjects();
|
||||
}
|
||||
|
||||
public Set<User> addActiveMasterAuthors(ProjectClass pc) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc);
|
||||
public Set<User> addActiveAuthors(ProjectClass pc, Date startDate, Date endDate) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc, startDate, endDate);
|
||||
return authorsFromProjects();
|
||||
}
|
||||
|
||||
@ -79,8 +69,8 @@ public class MailFacade {
|
||||
return recipients;
|
||||
}
|
||||
|
||||
public Set<User> addSupervisorsWithActiveProjects(ProjectClass pc) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc);
|
||||
public Set<User> addSupervisorsWithActiveProjects(ProjectClass pc, Date startDate, Date endDate) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc, startDate, endDate);
|
||||
return supervisorsFromProjects();
|
||||
}
|
||||
|
||||
@ -94,13 +84,13 @@ public class MailFacade {
|
||||
return supervisorsFromProjectIdeas();
|
||||
}
|
||||
|
||||
public Set<User> addActiveCoSupervisors() {
|
||||
setProjectParams(ProjectStatus.ACTIVE, null);
|
||||
public Set<User> addActiveCoSupervisors(ProjectClass pc, Date startDate, Date endDate) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc, startDate, endDate);
|
||||
return coSupervisorsFromProjects();
|
||||
}
|
||||
|
||||
public Set<User> addActiveReviewers() {
|
||||
setProjectParams(ProjectStatus.ACTIVE, null);
|
||||
public Set<User> addActiveReviewers(ProjectClass pc, Date startDate, Date endDate) {
|
||||
setProjectParams(ProjectStatus.ACTIVE, pc, startDate, endDate);
|
||||
return reviewersFromProjects();
|
||||
}
|
||||
|
||||
@ -116,12 +106,16 @@ public class MailFacade {
|
||||
projectIdeaParams.setSubmittedBefore(endDate);
|
||||
}
|
||||
|
||||
private void setProjectParams(ProjectStatus status, ProjectClass projectClass) {
|
||||
private void setProjectParams(ProjectStatus status, ProjectClass projectClass, Date startDate, Date endDate) {
|
||||
projectParams = new ProjectDao.Params();
|
||||
if (status != null)
|
||||
projectParams.setProjectStatuses(Arrays.asList(new ProjectStatus[]{status}));
|
||||
if (projectClass != null)
|
||||
projectParams.setProjectClasses(Arrays.asList(new ProjectClass[]{projectClass}));
|
||||
if(startDate != null)
|
||||
projectParams.setStartedAfter(startDate);
|
||||
if(endDate != null)
|
||||
projectParams.setStartedBefore(endDate);
|
||||
}
|
||||
|
||||
private Set<User> authorsFromProjectIdeas() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user