Buggfix som sätter creator på alla events

git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@494 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
dan-kjel 2011-03-25 13:31:55 +00:00
parent 6d7ab28d9f
commit dec585ec41
11 changed files with 51 additions and 74 deletions

@ -41,7 +41,7 @@ public abstract class Event extends LazyDeletableDomainObject
@Lob
private String description;
@ManyToOne(optional=true)
@ManyToOne(optional=false)
private User creator;
@Column(nullable=false)

@ -15,6 +15,7 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.util.ListModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.joda.time.DateMidnight;
import org.odlabs.wiquery.core.effects.EffectSpeed;
import org.odlabs.wiquery.core.effects.fading.FadeIn;
import org.odlabs.wiquery.core.javascript.JsStatement;
@ -96,7 +97,7 @@ public class GroupEventForm extends EventForm<GroupEventFormModel>{
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
GroupEventFormModel model = (GroupEventFormModel) form.getModelObject();
if(model.getDate().before(new Date())){
if(model.getDate().before(new DateMidnight(new Date()).toDate())){
error("Please provide a date in the future");
}

@ -10,6 +10,7 @@ import org.apache.wicket.markup.html.form.CheckBoxMultipleChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.Model;
import org.joda.time.DateMidnight;
import org.odlabs.wiquery.core.effects.EffectSpeed;
import se.su.dsv.scipro.data.dataobjects.Project;
@ -55,7 +56,7 @@ public class ProjectEventForm extends EventForm<ProjectEventFormModel> {
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
ProjectEventFormModel model = (ProjectEventFormModel) form.getModelObject();
if(model.getDate().before(new Date())){
if(model.getDate().before(new DateMidnight(new Date()).toDate())){
error("Please provide a date in the future");
invalid();
}

@ -1,9 +1,12 @@
package se.su.dsv.scipro.schedule.models;
import java.util.Date;
import org.apache.wicket.IClusterable;
import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.joda.time.DateMidnight;
import se.su.dsv.scipro.data.dao.interfaces.EventDao;
import se.su.dsv.scipro.data.dataobjects.Event;
@ -23,7 +26,7 @@ public abstract class EventFormModel<T extends Event> implements IClusterable {
public EventFormModel(T e) {
this.event = e;
if(event.getDueDate() == null){
event.setDueDate(new Date());
event.setDueDate(new DateMidnight(new Date()).plusDays(1).toDate());
}
setTitle(event.getTitle());
setDescription(event.getDescription());

@ -1,14 +1,9 @@
package se.su.dsv.scipro.schedule.models;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.data.dataobjects.GroupEvent;
import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.dataobjects.ProjectSchedule;
@ -23,18 +18,15 @@ public class GroupEventFormModel extends EventFormModel<GroupEvent> {
super(e);
for(ProjectSchedule ps : e.getProjectSchedules()){
System.out.println("adding "+ ps.getProject().getTitle());
eventProjects.add(ps.getProject());
}
}
public List<Project> getEventProjects() {
System.out.println("Get event projects called");
return eventProjects;
}
public void setEventProjects(List<Project> eventProjects) {
System.out.println("Set event projects called");
this.eventProjects = eventProjects;
}
@ -43,6 +35,7 @@ public class GroupEventFormModel extends EventFormModel<GroupEvent> {
event.setTitle(getTitle());
event.setDescription(getDescription());
event.setDueDate(getDate());
event.setCreator(SciProSession.get().getUser());
List<ProjectSchedule> projectSchedules = new ArrayList<ProjectSchedule>();
for(Project p : eventProjects){
projectSchedules.add(p.getProjectSchedule());

@ -1,15 +1,10 @@
package se.su.dsv.scipro.schedule.models;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TreeSet;
import org.apache.wicket.IClusterable;
import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.data.dao.interfaces.ProjectEventDao;
import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.data.dataobjects.ProjectEvent;
import se.su.dsv.scipro.data.dataobjects.Student;
@ -37,6 +32,7 @@ public class ProjectEventFormModel extends EventFormModel<ProjectEvent> {
public ProjectEvent persist(){
event.setTitle(getTitle());
event.setDescription(getDescription());
event.setCreator(SciProSession.get().getUser());
event.setDueDate(getDate());
event.setParticipants(new TreeSet<Student>(participants));
return (ProjectEvent) eventDao.save(event);

@ -2,7 +2,10 @@
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:panel>
<span wicket:id="eventDescription"></span>
<span>Creator: </span><span wicket:id="creator"></span>
<div class="prepend-top append-bottom">
<span wicket:id="eventDescription"></span>
</div>
<div wicket:id="classSpecificDetails"></div>
</wicket:panel>
</body>

@ -11,7 +11,7 @@ public class EventDetailsPanel extends Panel {
public EventDetailsPanel(String id, Event e) {
super(id);
System.out.println(e.getDescription());
add(e.getCreator().getDisplayComponent("creator"));
add(new MultiLineLabel("eventDescription", e.getDescription()));
add(e.getScheduleDetailsPanel("classSpecificDetails"));

@ -97,7 +97,7 @@ public class EventPanel extends Panel {
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);
}
if(event instanceof GroupEvent){
if(event.getCreator().equals(loggedInUser)){
if(loggedInUser.equals(event.getCreator())){
return true;
}
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);

@ -3,22 +3,12 @@
<body>
<wicket:panel>
<div class="span-18 last">
<div>
<div class="span-18 last">
<div class="span-6 append-1">
<div wicket:id="createScheduleContainer">
<div><a href="#" wicket:id="createScheduleFromTemplateLink"><img wicket:id="createScheduleFromTemplateIcon" /></a><span> Create schedule from template</span></div>
<div><a href="#" wicket:id="createEmptyScheduleLink"><img wicket:id="createEmptyScheduleIcon" /></a><span> Create empty schedule</span></div>
</div>
<div wicket:id="createEventsContainer">
<div><img wicket:id="addProjectEventLink" /><span>Add project event</span></div>
<div><img wicket:id="addGroupEventLink" /><span>Add group event</span></div>
</div>
</div>
<div class="info-box rounded-box span-9 last">
<ul>
<li><span>Project events is...</span></li>
<li><span>Group event is...</span></li>
</ul>
</div>
</div>
<div wicket:id="scheduleContainer">
@ -28,6 +18,10 @@
<span>Participant: </span><select wicket:id="participantOptions"></select>
</div>
</fieldset>
<div>
<img wicket:id="addProjectEventLink" /><span>Add project event</span>
<img wicket:id="addGroupEventLink" /><span>Add group event</span>
</div>
<div>
<div wicket:id="monthPicker"></div>
</div>

@ -83,47 +83,6 @@ public class SchedulePlannerPanel extends Panel implements ISchedulePlannerPanel
dialog.setWidth(600);
add(dialog);
WebMarkupContainer createEventsContainer = new WebMarkupContainer("createEventsContainer"){
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible(){
return project.getProjectSchedule() != null;
}
};
createEventsContainer.add(new AjaxActionIcon("addProjectEventLink", AjaxActionIcon.ICON_ADD, "Add project event"){
private static final long serialVersionUID = 1L;
@Override
protected void onClick(AjaxRequestTarget target) {
dialogContainer.replace(new CreateProjectEventPanel("containerContent", project, null, SchedulePlannerPanel.this));
target.addComponent(dialogContainer);
dialog.setTitle("Add project event");
dialog.open(target);
}
});
add(createEventsContainer);
createEventsContainer.add(new AjaxActionIcon("addGroupEventLink", AjaxActionIcon.ICON_ADD, "Add group event"){
private static final long serialVersionUID = 1L;
@Override
protected void onClick(AjaxRequestTarget target) {
dialogContainer.replace(new CreateGroupEventPanel("containerContent", null, project, SchedulePlannerPanel.this));
target.addComponent(dialogContainer);
dialog.setTitle("Add Group Event");
dialog.open(target);
}
@Override
public boolean isVisible(){
return project.getProjectSchedule() != null;
}
});
WebMarkupContainer createScheduleContainer = new WebMarkupContainer("createScheduleContainer"){
private static final long serialVersionUID = 1L;
@ -174,6 +133,33 @@ public class SchedulePlannerPanel extends Panel implements ISchedulePlannerPanel
}
};
scheduleContainer.add(new AjaxActionIcon("addProjectEventLink", AjaxActionIcon.ICON_ADD, "Add project event"){
private static final long serialVersionUID = 1L;
@Override
protected void onClick(AjaxRequestTarget target) {
dialogContainer.replace(new CreateProjectEventPanel("containerContent", project, null, SchedulePlannerPanel.this));
target.addComponent(dialogContainer);
dialog.setTitle("Add project event");
dialog.open(target);
}
});
scheduleContainer.add(new AjaxActionIcon("addGroupEventLink", AjaxActionIcon.ICON_ADD, "Add group event"){
private static final long serialVersionUID = 1L;
@Override
protected void onClick(AjaxRequestTarget target) {
dialogContainer.replace(new CreateGroupEventPanel("containerContent", null, project, SchedulePlannerPanel.this));
target.addComponent(dialogContainer);
dialog.setTitle("Add Group Event");
dialog.open(target);
}
});
final List<SelectOption<User>> participantOptions = new ArrayList<SelectOption<User>>();
for(Student s : project.getProjectParticipants()){