Added upcomingeventpanel

This commit is contained in:
Fredrik Norberg 2011-07-14 17:00:41 +02:00
parent 651419264d
commit cbeb0eba12
9 changed files with 126 additions and 4 deletions

@ -32,6 +32,8 @@ public interface EventDao extends LazyDeleteDao<Event> {
public List<Event> getUpcomingEventsByUserAndProject(final User u, final Project p);
public List<Event> getUpcomingEventsByUserAndProject(final User u, final Project p, final Integer limit);
public Event getNextEvent(final User u, final Project p, final Event event);
public boolean hasHandInsInHandInActivity(final Event event);

@ -83,6 +83,10 @@ public class EventDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<Event> implement
return getEvents(u, p, new Date(), null, null);
}
public List<Event> getUpcomingEventsByUserAndProject(final User u, final Project p, Integer limit){
return getEvents(u, p, new Date(), null, limit);
}
public Event getNextEvent(final User u, final Project p, final Event e) {
List<Event> list = getEvents(u, p, e.getDueDate() , null, 1);
if(list.size() == 0){

@ -89,6 +89,7 @@ public class GroupEventDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<GroupEvent>
if(toDate != null){
geQuery.setParameter("toDate", toDate);
}
try{
return geQuery.getResultList();
@ -131,6 +132,7 @@ public class GroupEventDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<GroupEvent>
if(toDate != null){
query.setParameter("toDate", toDate);
}
try{
return query.getResultList();

@ -34,6 +34,9 @@
<h5 class="peer-title">Final seminar for this project</h5>
<div wicket:id="projectSeminarPanel"></div>
</div>
<div class="span-10 last">
<div wicket:id="upcomingEventPanel"></div>
</div>
<!-- <div class="span-10 last">-->
<!-- <h5 class="peer-title">Oppositions &amp; Active participations</h5>-->
<!-- <div wicket:id="oppositionStatsPanel"></div>-->

@ -12,6 +12,7 @@ import se.su.dsv.scipro.peer.pages.ProjectPeerReviewPage;
import se.su.dsv.scipro.peer.panels.StudentPeerInfoRequestsPanel;
import se.su.dsv.scipro.project.panels.ProjectWallPanel;
import se.su.dsv.scipro.project.panels.StateOfMindPanel;
import se.su.dsv.scipro.project.panels.UpcomingEventPanel;
import se.su.dsv.scipro.schedule.panels.ProjectProgressPanel;
import se.su.dsv.scipro.security.auth.roles.Roles;
@ -34,6 +35,7 @@ public class ProjectStartPage extends ProjectPage {
add(new FeedbackPanel("feedback"));
add(new ProjectFinalSeminarContainerPanel("projectSeminarPanel", activeProject));
//add(new StudentOppositionStatsPanel("oppositionStatsPanel", activeProject));
add(new UpcomingEventPanel("upcomingEventPanel", activeProject, 3));
leftColumn.add(new StudentPeerInfoRequestsPanel("peerRequests", null, activeProject){
private static final long serialVersionUID = 1L;
@ -45,7 +47,9 @@ public class ProjectStartPage extends ProjectPage {
ProjectProgressPanel progressPanel = new ProjectProgressPanel("progress", activeProject);
leftColumn.add(progressPanel.getHelpIcon("progressHelp"));
leftColumn.add(progressPanel);
//leftColumn.add(new UpcomingEventPanel("upcomingEventPanel", activeProject));
leftColumn.add(new ProjectWallPanel("projectWallPanel", activeProject));
}

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:panel>
<div class="span-10 last">
<h5 class="peer-title">Upcoming events</h5>
<div wicket:id="eventListContainer">
<div wicket:id="events">
<span wicket:id="title"></span>
<span wicket:id="date"></span>
</div>
</div>
</div>
</wicket:panel>
</body>
</html>

@ -0,0 +1,90 @@
package se.su.dsv.scipro.project.panels;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
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.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.data.dao.interfaces.EventDao;
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
import se.su.dsv.scipro.data.dataobjects.Event;
import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.dataobjects.User;
public class UpcomingEventPanel extends Panel{
/**
*
*/
private static final long serialVersionUID = 4481663857329726445L;
@SpringBean
private ProjectDao projectDao;
@SpringBean
private EventDao eventDao;
private Project project;
private User user;
private ListView<Event> eventList;
private IModel<List<Event>> listModel;
private WebMarkupContainer wmc;
private int amountToShow;
public UpcomingEventPanel(String id, final Project p, final int amountToShow){
super(id);
this.project = projectDao.reLoad(p);
this.user = SciProSession.get().getUser();
this.amountToShow = amountToShow;
listModel = new LoadableDetachableModel<List<Event>>(){
/**
*
*/
private static final long serialVersionUID = 4397997418096384845L;
@Override
protected List<Event> load() {
List<Event> list = eventDao.getEventsByUserAndProject(user, project,
new Date(), null, null);
Collections.reverse(list);
if(amountToShow < list.size()){
list = list.subList(0, amountToShow);
}
return list;
}
};
eventList = new ListView<Event>("events", listModel){
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Event> item) {
final Event e = item.getModelObject();
item.add(new Label("title", e.getTitle()));
item.add(new Label("date", e.getDueDate().toString()));
}
};
wmc = new WebMarkupContainer("eventListContainer");
wmc.setOutputMarkupId(true);
wmc.add(eventList);
add(wmc);
}
}

@ -88,8 +88,8 @@
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"></property>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/scipro"></property>
<property name="hibernate.connection.username" value="scipro"></property>
<property name="hibernate.connection.password" value="pighleef"></property>
<property name="hibernate.connection.username" value="root"></property>
<property name="hibernate.connection.password" value="juju"></property>
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider"></property>
<property name="hibernate.c3p0.min_size" value="3"></property>
<property name="hibernate.c3p0.max_size" value="6"></property>

@ -64,8 +64,8 @@
<!-- Use deployment for production, development for development -->
<context-param>
<param-name>configuration</param-name>
<!-- <param-value>development</param-value>-->
<param-value>deployment</param-value>
<param-value>development</param-value>
<!--<param-value>deployment</param-value>-->
</context-param>