Added a check that interest not is already added before saving supervisor interest to the database table.

This commit is contained in:
Tom Vahlman 2012-03-24 20:48:17 +01:00
parent 79d856ebea
commit ec76c00210

@ -1,9 +1,9 @@
package se.su.dsv.scipro.supervisor.panels;
import org.apache.log4j.Logger;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.panel.Panel;
@ -25,7 +25,9 @@ import java.util.List;
public abstract class SupervisorInterestPanel extends Panel {
private final Logger logger = Logger.getLogger(SupervisorInterestPanel.class);
private static final long serialVersionUID = 7164999234242995192L;
@SpringBean
private ProjectIdeaDao projectIdeaDao;
@ -33,7 +35,7 @@ public abstract class SupervisorInterestPanel extends Panel {
private GeneralSystemSettingsDao gDao;
@SpringBean
SupervisorDao employeeDao;
SupervisorDao supervisorDao;
public abstract void onUpdate(AjaxRequestTarget target);
@ -46,18 +48,16 @@ public abstract class SupervisorInterestPanel extends Panel {
return projectIdeaDao.load(projectIdeaIModel.getObject().getId());
}
};
add(new SupervisorAcceptDeclineForm("form", projectIdeaModel));
add(new SupervisorAcceptDeclineForm(projectIdeaModel));
}
private class SupervisorAcceptDeclineForm extends Form<Void> {
private static final long serialVersionUID = -3157033328235572033L;
private TextArea<String> reason;
private final TextArea<String> reason;
private String reasonString;
private LoadableDetachableModel<ProjectIdea> projectIdeaModel;
public SupervisorAcceptDeclineForm(String id, final LoadableDetachableModel<ProjectIdea> projectIdeaModel) {
super(id);
this.projectIdeaModel = projectIdeaModel;
public SupervisorAcceptDeclineForm(final LoadableDetachableModel<ProjectIdea> projectIdeaModel) {
super("form");
WebMarkupContainer wmc1 = new WebMarkupContainer("wmc1");
add(wmc1);
wmc1.add(new AjaxLink("acceptButton") {
@ -65,18 +65,24 @@ public abstract class SupervisorInterestPanel extends Panel {
private static final long serialVersionUID = -2591216055201410154L;
@Override
public void onClick(AjaxRequestTarget target) {
if (reason.getModelObject() != null && reason.getModelObject().length() > 4) {
// here we should save the reason for the interest in some table
//if (reason.getModelObject() != null && reason.getModelObject().length() > 4) {
//here we should save the reason for the interest in some table
//}
SupervisorInterest existingSupervisorInterest = projectIdeaModel.getObject().getSupervisorInterest();
List<Employee> existingEmployees = existingSupervisorInterest.getSupervisorInterest();
Employee employee = supervisorDao.getFrom(SciProSession.get().getUser());
if(existingEmployees.isEmpty() || !existingEmployees.contains(employee)) {
SupervisorInterest supervisorInterest = new SupervisorInterest();
List<Employee> employeeList = new ArrayList<Employee>();
employeeList.add(employee);
supervisorInterest.setSupervisorInterest(employeeList);
projectIdeaModel.getObject().setSupervisorInterest(supervisorInterest);
projectIdeaDao.save(projectIdeaModel.getObject());
onUpdate(target);
logger.info("Added interest for the supervisor" + employee.getNameAsString() + " to supervise the project idea " + projectIdeaModel.getObject().getTitle());
} else {
logger.info("Interest already added for the supervisor " + employee.getNameAsString() + " to supervise the project idea " + projectIdeaModel.getObject().getTitle());
}
SupervisorInterest supervisorInterest = new SupervisorInterest();
List<Employee> employeeList = new ArrayList<Employee>();
Employee employee = employeeDao.getFrom(SciProSession.get().getUser());
employeeList.add(employee);
supervisorInterest.setSupervisorInterest(employeeList);
projectIdeaModel.getObject().setSupervisorInterest(supervisorInterest);
projectIdeaDao.save(projectIdeaModel.getObject());
onUpdate(target);
System.out.println("added interest from supervisor to supervise the project idea");
}
});