conflicts resolved
This commit is contained in:
commit
60ed0fcb29
resources/db_update_scripts
src/main/java/se/su/dsv/scipro
activityplan/facade
data/dataobjects
schedule/templates/panels
@ -1,2 +1,4 @@
|
||||
ALTER TABLE `worker_data` ADD `lastSuccessfulRun` DATETIME NOT NULL DEFAULT '2011-11-28 13:33:37' AFTER `lastRun`;
|
||||
ALTER TABLE `checklist_template` ADD `templateNumber` INT NOT NULL DEFAULT '999'
|
||||
ALTER TABLE `checklist_template` ADD `templateNumber` INT NOT NULL DEFAULT '999'
|
||||
ALTER TABLE project_event_template ADD COLUMN checkListTemplate_id bigint(20);
|
||||
CREATE INDEX checkListTemplate_index ON project_event_template(checkListTemplate_id);
|
||||
|
@ -18,11 +18,15 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.CheckListDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.CheckListQuestionDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.FileDescriptionDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectScheduleDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectScheduleEventDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ScheduleTemplateDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckList;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListQuestion;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.FileDescription;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
@ -41,6 +45,8 @@ import edu.emory.mathcs.backport.java.util.Collections;
|
||||
*/
|
||||
@Service
|
||||
public class ProjectScheduleFacade {
|
||||
@Autowired
|
||||
private ProjectDao projectDao;
|
||||
@Autowired
|
||||
private ProjectScheduleEventDao projectScheduleEventDao;
|
||||
@Autowired
|
||||
@ -55,6 +61,9 @@ public class ProjectScheduleFacade {
|
||||
private FileDescriptionDao fileDescriptionDao;
|
||||
private final Logger logger = Logger.getLogger(ProjectScheduleFacade.class);
|
||||
|
||||
@Autowired
|
||||
private CheckListQuestionDao checklistQuestionDao;
|
||||
|
||||
public static final String BASE_PATH = "schedule_events";
|
||||
|
||||
/**
|
||||
@ -205,7 +214,28 @@ public class ProjectScheduleFacade {
|
||||
final User u = (user!=null?user:eventTemplate.getTemplateCreator());
|
||||
final String title = eventTemplate.getTitle()!=null?eventTemplate.getTitle():"no title";
|
||||
final String desc = eventTemplate.getDescription()!=null?eventTemplate.getDescription():"";
|
||||
createNewProjectScheduleEvent(schedule, u, title, desc, eventTemplate.isRequireHandIn(), dateForEvent, null);
|
||||
|
||||
//added by fred. takes care of creating and adding a checklist to the events, using the checklist template connected to the event in the event template.
|
||||
final CheckListTemplate clt = eventTemplate.getChecklistTemplate()!=null?eventTemplate.getChecklistTemplate():null;
|
||||
if (clt!=null){
|
||||
CheckList cl = new CheckList(clt.getName(), schedule.getProject());
|
||||
// checkListDao.save(cl);
|
||||
for(String question : clt.getQuestions()){
|
||||
CheckListQuestion clQuestion = new CheckListQuestion(question, cl.getNumberOfQuestions());
|
||||
cl.addQuestion(checklistQuestionDao.save(clQuestion));
|
||||
}
|
||||
cl = checkListDao.save(cl);
|
||||
Project p = schedule.getProject();
|
||||
p.addCheckList(cl);
|
||||
projectDao.save(p);
|
||||
createNewProjectScheduleEvent(schedule, u, title, desc, eventTemplate.isRequireHandIn(), dateForEvent, cl);
|
||||
}
|
||||
else {
|
||||
createNewProjectScheduleEvent(schedule, u, title, desc, eventTemplate.isRequireHandIn(), dateForEvent, null);
|
||||
}
|
||||
//added by fred
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -178,8 +178,9 @@ public class CheckListTemplate extends DomainObject implements Comparable<CheckL
|
||||
return this.templateNumber - other.templateNumber;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Lob;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@Entity
|
||||
@ -45,6 +46,9 @@ public class ProjectEventTemplate extends DomainObject implements Comparable<Pro
|
||||
@Column(nullable=false)
|
||||
private int numberInOrder = Integer.MAX_VALUE;
|
||||
|
||||
@ManyToOne(optional=true)
|
||||
private CheckListTemplate checklistTemplate;
|
||||
|
||||
public ProjectEventTemplate(){}
|
||||
|
||||
public ProjectEventTemplate(int daysOffset){
|
||||
@ -162,4 +166,12 @@ public class ProjectEventTemplate extends DomainObject implements Comparable<Pro
|
||||
public int compareTo(ProjectEventTemplate other){
|
||||
return numberInOrder - other.numberInOrder;
|
||||
}
|
||||
|
||||
public CheckListTemplate getChecklistTemplate() {
|
||||
return checklistTemplate;
|
||||
}
|
||||
|
||||
public void setChecklistTemplate(CheckListTemplate checklistTemplate) {
|
||||
this.checklistTemplate = checklistTemplate;
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,15 @@
|
||||
<div class="formRow">
|
||||
<strong>Days from previous event: </strong><input style="width:27px;" maxlength="3" type="text" wicket:id="daysOffset"/>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="formRow">
|
||||
<strong>Checklist template: </strong><br/>
|
||||
<select wicket:id="checklistTemplate"></select>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="formRow">
|
||||
<button type="submit" wicket:id="addEventTemplateButton">
|
||||
<img wicket:id="addIcon" alt=""/> Add
|
||||
|
@ -1,17 +1,27 @@
|
||||
package se.su.dsv.scipro.schedule.templates.panels;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.form.CheckBox;
|
||||
import org.apache.wicket.markup.html.form.ChoiceRenderer;
|
||||
import org.apache.wicket.markup.html.form.DropDownChoice;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.form.TextArea;
|
||||
import org.apache.wicket.markup.html.form.TextField;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.CompoundPropertyModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.model.PropertyModel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.components.FormFeedbackPanel;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.CheckListTemplateDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckList;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectEventTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.ScheduleTemplate;
|
||||
import se.su.dsv.scipro.icons.ImageObject;
|
||||
@ -24,6 +34,9 @@ public class EventTemplateFormPanel extends Panel {
|
||||
private ScheduleTemplate owner;
|
||||
private boolean isEdit;
|
||||
|
||||
@SpringBean
|
||||
private CheckListTemplateDao checklistTemplateDao;
|
||||
|
||||
public EventTemplateFormPanel(String id, ProjectEventTemplate eventTemplate, ScheduleTemplate owner, boolean isEdit){
|
||||
super(id);
|
||||
this.eventTemplate = eventTemplate;
|
||||
@ -61,6 +74,43 @@ public class EventTemplateFormPanel extends Panel {
|
||||
add(new TextField<Long>("daysOffset"));
|
||||
add(new CheckBox("requireHandIn"));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DropDownChoice<CheckList> checklistDropDown;
|
||||
List<CheckListTemplate> templateList = checklistTemplateDao.findAll();
|
||||
templateList.add(null);
|
||||
add(new DropDownChoice<CheckListTemplate>("checklistTemplate", templateList).setChoiceRenderer(new ChoiceRenderer<CheckListTemplate>(){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
public Object getDisplayValue(final CheckListTemplate checklist){
|
||||
if(checklist == null)
|
||||
return "No checklist";
|
||||
else
|
||||
return (checklist.getName());
|
||||
}
|
||||
}));
|
||||
|
||||
//checklistDropDown = new DropDownChoice<CheckListTemplate>("checklist",new PropertyModel<CheckList>(formWrapper.getModelObject(),"checkList"),checkLists);
|
||||
// checklistDropDown.setVisible(checkLists.size()>0);
|
||||
// checklistDropDown.setChoiceRenderer(new ChoiceRenderer<CheckList>(){
|
||||
// private static final long serialVersionUID = 1L;
|
||||
// @Override
|
||||
// public Object getDisplayValue(final CheckList checklist){
|
||||
// if(checklist == null)
|
||||
// return "No checklist";
|
||||
// else
|
||||
// return (checklist.getName());
|
||||
// }
|
||||
// });
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
AjaxButton addEventTemplateButton = new AjaxButton("addEventTemplateButton", new Model<String>(isEdit ? "Done" : "Add")){
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -61,9 +61,10 @@
|
||||
<img wicket:id="deleteEventTemplateIcon" class="right round-box-icon" />
|
||||
<img wicket:id="editEventTemplateIcon" class="right round-box-icon"></img>
|
||||
</div>
|
||||
<div>
|
||||
<span>Days from previous event: </span><span wicket:id="eventTemplateOffset">Days from previous event</span>
|
||||
</div>
|
||||
<!-- <div><b>Description:</b><span wicket:id="descriptionLabel"></span></div> -->
|
||||
<div><b>Days from previous event:</b><span wicket:id="eventTemplateOffset">Days from previous event</span></div>
|
||||
<!-- <div><b>Hand-in required</b><input type="checkbox" wicket:id="handinLabel"/></div> -->
|
||||
<!-- <div><b>Checklist:</b><span wicket:id="checklistLabel"></span></div> -->
|
||||
</div>
|
||||
<div wicket:id="editEventTemplateContainer">
|
||||
<div wicket:id="eventTemplateFormContainer">
|
||||
|
@ -9,6 +9,7 @@ import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.form.CheckBox;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.form.TextArea;
|
||||
import org.apache.wicket.markup.html.form.TextField;
|
||||
@ -43,6 +44,8 @@ public class ScheduleTemplateFormPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private ScheduleTemplateDao scheduleTemplateDao;
|
||||
|
||||
private boolean editmode = false;
|
||||
|
||||
public ScheduleTemplateFormPanel(String id, ScheduleTemplate template, boolean isSysAdminView) {
|
||||
super(id);
|
||||
@ -133,8 +136,29 @@ public class ScheduleTemplateFormPanel extends Panel {
|
||||
item.add(evTitle);
|
||||
final Label evEstTimeCons = new Label("eventTemplateOffset", new PropertyModel<Long>(et, "daysOffset"));
|
||||
evEstTimeCons.setOutputMarkupId(true);
|
||||
evEstTimeCons.setVisible(!editmode);
|
||||
item.add(evEstTimeCons);
|
||||
|
||||
// Label descriptionLabel = new Label("descriptionLabel", new PropertyModel<String>(et, "description"));
|
||||
// descriptionLabel.setOutputMarkupId(true);
|
||||
// descriptionLabel.setVisible(!editmode);
|
||||
// item.add(descriptionLabel);
|
||||
//
|
||||
// CheckBox handinLabel;
|
||||
// handinLabel = new CheckBox("handinLabel", new PropertyModel<Boolean>(et, "requireHandIn"));
|
||||
//
|
||||
// handinLabel.setOutputMarkupId(true);
|
||||
// handinLabel.setVisible(!editmode);
|
||||
// handinLabel.setEnabled(false);
|
||||
// item.add(handinLabel);
|
||||
//
|
||||
// Label checklistLabel;
|
||||
// checklistLabel = new Label("checklistLabel", new PropertyModel<String>(et, "checklistTemplate"));
|
||||
// checklistLabel.setOutputMarkupId(true);
|
||||
// checklistLabel.setVisible(!editmode);
|
||||
// item.add(checklistLabel);
|
||||
|
||||
|
||||
final WebMarkupContainer editEventContainer = new WebMarkupContainer("editEventTemplateContainer");
|
||||
editEventContainer.setOutputMarkupId(true);
|
||||
final WebMarkupContainer eventTemplateFormContainer = new WebMarkupContainer("eventTemplateFormContainer");
|
||||
@ -148,6 +172,9 @@ public class ScheduleTemplateFormPanel extends Panel {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onClick(AjaxRequestTarget target) {
|
||||
|
||||
editmode = true;
|
||||
|
||||
eventTemplateFormContainer.replace(new EventTemplateFormPanel("editEventTemplateFormPanel", et, template, true){
|
||||
private static final long serialVersionUID = 1L;
|
||||
protected void onEventTemplateAdded(AjaxRequestTarget target){
|
||||
|
Loading…
x
Reference in New Issue
Block a user