diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java
index d43bb6968d..c78d650e5e 100644
--- a/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java
@@ -10,9 +10,10 @@ import se.su.dsv.scipro.admin.pages.settings.AdminFinalSeminarSettingsPage;
 import se.su.dsv.scipro.admin.pages.settings.AdminFinalSeminarSettingsPerProjectClassPage;
 import se.su.dsv.scipro.admin.pages.settings.AdminGeneralSettingsPage;
 import se.su.dsv.scipro.admin.pages.settings.AdminPeerSettingsPage;
+import se.su.dsv.scipro.admin.pages.settings.AdminProjectClassSettingsPage;
 import se.su.dsv.scipro.admin.pages.settings.AdminServerEnvironmentSettingsPage;
+
 import se.su.dsv.scipro.components.AbstractMenuPanel;
-import se.su.dsv.scipro.icons.ImageIcon;
 import se.su.dsv.scipro.security.auth.Authorization;
 import se.su.dsv.scipro.security.auth.roles.Roles;
 
@@ -32,8 +33,10 @@ public abstract class AbstractAdminSettingsPage extends AbstractAdminPage {
 				items.add(new MenuItem("General settings", AdminGeneralSettingsPage.class));
 				items.add(new MenuItem("Server Environment", AdminServerEnvironmentSettingsPage.class));
 				items.add(new MenuItem("Final seminar general settings", AdminFinalSeminarSettingsPage.class));
-				items.add(new MenuItem("Final seminar project level settings", AdminFinalSeminarSettingsPerProjectClassPage.class));
-				items.add(new MenuItem("Peer settings", AdminPeerSettingsPage.class /*,ImageIcon.ICON_SETTINGS */));
+				items.add(new MenuItem("Final seminar project level settings", AdminFinalSeminarSettingsPerProjectClassPage.class));
+				items.add(new MenuItem("Level settings", AdminPeerSettingsPage.class));
+				items.add(new MenuItem("Edit levels", AdminProjectClassSettingsPage.class));
+
 				return items;
 			}
 
diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminProjectClassSettingsPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminProjectClassSettingsPage.html
new file mode 100644
index 0000000000..9e85a06391
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminProjectClassSettingsPage.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html
+	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<body>
+	<wicket:extend>
+
+		<!-- Edit/add dialog -->
+		<div wicket:id="dialog">
+			<div wicket:id="dialogContent"></div>
+		</div>
+		
+		<a href=# wicket:id="createLink"><img src="images/icons/add_16x16.png" alt=""/> Create new level</a>
+		<div class="span-15 last">
+		<h3 class="section">Active</h3>
+		</div>
+		<table class="rounded-table-top">
+			<tr>
+				<th>Code</th>
+				<th>Name</th>
+				<th>Description</th>
+				<th>Edit</th>
+			</tr>
+			<tr>
+			</tr>
+			<tbody wicket:id="activeProjectClassContainer">
+			<tr wicket:id="projectClassList">
+				<td wicket:id="code"></td>
+				<td wicket:id="name"></td>
+				<td wicket:id="desc"></td>
+				<td><a href=# wicket:id="editLink"><img src="images/icons/edit_16x16.png" " alt="Edit" title="Edit"/></a>
+				</td>
+			</tr>
+			</tbody>
+		</table>
+		
+		<div class="span-15 last">
+		<h3 class="section">Inactive</h3>
+		</div>
+		<table class="rounded-table-top">
+			<tr>
+				<th>Code</th>
+				<th>Name</th>
+				<th>Description</th>
+				<th>Edit</th>
+			</tr>
+			<tr>
+			</tr>
+			<tbody wicket:id="deletedProjectClassContainer">
+			<tr wicket:id="projectClassListDel">
+				<td wicket:id="codeDel"></td>
+				<td wicket:id="nameDel"></td>
+				<td wicket:id="descDel"></td>
+				<td><a href=# wicket:id="undeleteLink">Activate</a>
+				</td>
+			</tr>
+			</tbody>
+		</table>
+	</wicket:extend>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminProjectClassSettingsPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminProjectClassSettingsPage.java
new file mode 100644
index 0000000000..fc5ad666cc
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminProjectClassSettingsPage.java
@@ -0,0 +1,154 @@
+package se.su.dsv.scipro.admin.pages.settings;
+
+import java.util.List;
+
+import org.apache.wicket.PageParameters;
+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.basic.MultiLineLabel;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.LoadableDetachableModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.odlabs.wiquery.ui.dialog.Dialog;
+
+import se.su.dsv.scipro.admin.pages.AbstractAdminSettingsPage;
+import se.su.dsv.scipro.admin.panels.AdminProjectClassPanel;
+import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
+import se.su.dsv.scipro.data.dataobjects.ProjectClass;
+
+public class AdminProjectClassSettingsPage extends AbstractAdminSettingsPage {
+
+	@SpringBean
+	ProjectClassDao projectClassDao;
+
+	public AdminProjectClassSettingsPage(PageParameters pp) {
+		super(pp);
+		
+		String msg = "";
+		if((msg = pp.getString("info")) != null)
+			info(msg);
+		else if((msg = pp.getString("error")) != null)
+			error(msg);
+		
+		final Dialog dialog = new Dialog("dialog");
+		dialog.setModal(true);
+		dialog.setAutoOpen(false);
+		dialog.add(new EmptyPanel("dialogContent"));
+
+		dialog.setWidth(500);
+		dialog.setHeight(360);
+		add(dialog);
+
+		IModel<List<ProjectClass>> activeProjectClass = new LoadableDetachableModel<List<ProjectClass>>() {
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected List<ProjectClass> load() {
+				return projectClassDao.findAll();
+			}
+		};
+		
+		final WebMarkupContainer activeWmc = new WebMarkupContainer("activeProjectClassContainer");
+		activeWmc.setOutputMarkupId(true);
+		add(activeWmc);
+		
+		final ListView<ProjectClass> listView = new ListView<ProjectClass>("projectClassList", activeProjectClass){
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void populateItem(ListItem<ProjectClass> item) {
+				final IModel<ProjectClass> model = item.getModel();
+
+				item.add(new Label("code", model.getObject().getCode()));
+				item.add(new Label("name", model.getObject().getName()));
+				item.add(new MultiLineLabel("desc", model.getObject().getDescription()));
+
+				AjaxLink<Void> editLink = new AjaxLink<Void>("editLink"){
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					public void onClick(AjaxRequestTarget target) {
+						dialog.replace(new AdminProjectClassPanel("dialogContent", model));
+						target.addComponent(dialog);
+						dialog.setTitle("Edit");
+						dialog.open(target);
+					}
+				};
+				item.add(editLink);
+			}
+
+		};
+		activeWmc.add(listView);
+
+		/*
+		 * Begin - list of deleted project classes
+		 */
+		
+		final IModel<List<ProjectClass>> deletedProjectClass = new LoadableDetachableModel<List<ProjectClass>>() {
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected List<ProjectClass> load() {
+				return projectClassDao.findAllDeleted();
+			}
+		};
+		
+		final WebMarkupContainer deletedWmc = new WebMarkupContainer("deletedProjectClassContainer");
+		deletedWmc.setOutputMarkupId(true);
+		add(deletedWmc);
+		
+		final ListView<ProjectClass> listViewDeleted = new ListView<ProjectClass>("projectClassListDel", deletedProjectClass){
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void populateItem(ListItem<ProjectClass> item) {
+				final IModel<ProjectClass> model = item.getModel();
+
+				item.add(new Label("codeDel", model.getObject().getCode()));
+				item.add(new Label("nameDel", model.getObject().getName()));
+				item.add(new MultiLineLabel("descDel", model.getObject().getDescription()));
+				
+				AjaxLink<Void> undeleteLink = new AjaxLink<Void>("undeleteLink"){
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					public void onClick(AjaxRequestTarget target) {
+						model.getObject().setDeleted(false);
+						model.setObject(projectClassDao.save(model.getObject()));
+						deletedProjectClass.detach();
+						target.addComponent(activeWmc);
+						target.addComponent(deletedWmc);
+						info("Level activated");
+					}
+				};
+				item.add(undeleteLink);
+			}
+
+		};
+		deletedWmc.add(listViewDeleted);
+		
+		AjaxLink<Void> createLink = new AjaxLink<Void>("createLink"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClick(AjaxRequestTarget target) {
+				dialog.replace(new AdminProjectClassPanel("dialogContent"));
+				target.addComponent(dialog);
+				dialog.setTitle("Add new...");
+				dialog.open(target);
+			}
+		};
+		add(createLink);
+
+	}
+
+}
diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/AdminProjectClassPanel.html b/src/main/java/se/su/dsv/scipro/admin/panels/AdminProjectClassPanel.html
new file mode 100644
index 0000000000..9f38ffb0e8
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/panels/AdminProjectClassPanel.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html
+	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<body>
+	<wicket:panel>
+		<form wicket:id="projectClassForm">
+				
+			<!-- Fix max lengths -->
+			<table>
+				<tr>
+					<td>Code: <input wicket:id="code" type="text" maxlength="50" />
+					</td>
+				</tr>
+				<tr>
+					<td>Name: <input wicket:id="name" type="text" maxlength="50" />
+					</td>
+				</tr>
+				<tr>
+					<td>Description:</td>
+				</tr>
+				<tr>
+					<td><textarea wicket:id="description" cols="60" rows="5"></textarea>
+					</td>
+				</tr>
+				<tr>
+					<td><input wicket:id="createButton" type="submit" value="Save" />
+					</td>
+					<td><input wicket:id="deleteButton" type="submit"
+						value="Inactivate" />
+					</td>
+				</tr>
+			</table>
+		</form>
+
+	</wicket:panel>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/AdminProjectClassPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/AdminProjectClassPanel.java
new file mode 100644
index 0000000000..c083732e8b
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/panels/AdminProjectClassPanel.java
@@ -0,0 +1,98 @@
+package se.su.dsv.scipro.admin.panels;
+
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.form.Button;
+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.IModel;
+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.admin.pages.settings.AdminProjectClassSettingsPage;
+import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
+import se.su.dsv.scipro.data.dataobjects.ProjectClass;
+
+public class AdminProjectClassPanel extends Panel {
+	
+	@SpringBean
+	ProjectClassDao projectClassDao;
+	
+	private static final long serialVersionUID = 1L;
+
+	public AdminProjectClassPanel(final String id) {
+		super(id);
+		
+		Model<ProjectClass> model = new Model<ProjectClass>(new ProjectClass());
+		add(new ProjectClassSettingsForm("projectClassForm", model, false));
+	}
+	
+	public AdminProjectClassPanel(String id, IModel<ProjectClass> model) {
+		super(id);
+
+		add(new ProjectClassSettingsForm("projectClassForm", model, true));
+	}
+	
+	private class ProjectClassSettingsForm extends Form<Void>{
+
+		private static final long serialVersionUID = 1L;
+		
+		IModel<ProjectClass> projectClassModel;
+
+		public ProjectClassSettingsForm(String id, final IModel<ProjectClass> model, final boolean editMode) {
+			super(id);
+
+			final PageParameters pp = new PageParameters();
+			setRedirect(true);
+			
+			projectClassModel = model;
+			
+			add(new TextField<ProjectClass>("code", new PropertyModel<ProjectClass>(projectClassModel, "code")));
+			add(new TextField<ProjectClass>("name", new PropertyModel<ProjectClass>(projectClassModel, "name")));
+			add(new TextArea<ProjectClass>("description", new PropertyModel<ProjectClass>(projectClassModel, "description")));
+
+			Button createButton = new Button("createButton"){
+				private static final long serialVersionUID = 1L;
+				@Override
+				public void onSubmit(){
+					
+					if (editMode) {
+						pp.add("info", "Level edited");
+						ProjectClass pc = projectClassDao.save(projectClassModel.getObject());
+						projectClassModel.setObject(pc);
+						setResponsePage(AdminProjectClassSettingsPage.class, pp);
+					} else {
+						ProjectClass duplicateCheck = projectClassDao.getProjectClass(projectClassModel.getObject().getCode());
+						if (duplicateCheck != null){
+							String msg = "Level already exists";
+							pp.add("error", msg);
+							setResponsePage(AdminProjectClassSettingsPage.class, pp);
+							return;
+						}
+						ProjectClass pc = projectClassDao.save(projectClassModel.getObject());
+						projectClassModel.setObject(pc);
+						pp.add("info", "New level created");
+						setResponsePage(AdminProjectClassSettingsPage.class, pp);
+					}
+				}
+			};
+			add(createButton);
+
+			Button deleteButton = new Button("deleteButton"){
+				private static final long serialVersionUID = 1L;
+				@Override
+				public void onSubmit(){
+					projectClassModel.getObject().setDeleted(true);
+					projectClassDao.save(projectClassModel.getObject());
+					pp.add("info", "Level inactivated");
+					setResponsePage(AdminProjectClassSettingsPage.class, pp);
+				}
+			};
+			add(deleteButton);
+			deleteButton.setEnabled(editMode);
+		}
+	}
+
+}
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectClassDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectClassDao.java
index c8eb98a5a4..f0bcf31b93 100644
--- a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectClassDao.java
+++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectClassDao.java
@@ -1,9 +1,13 @@
 package se.su.dsv.scipro.data.dao.interfaces;
 
+import java.util.List;
+
 import se.su.dsv.scipro.data.dataobjects.ProjectClass;
 
 public interface ProjectClassDao extends Dao<ProjectClass>{
 	
-	ProjectClass getProjectClass(String projectCode);	
+	ProjectClass getProjectClass(String projectCode);
+	
+	List<ProjectClass> findAllDeleted();
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/ProjectClassDaoJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/ProjectClassDaoJPAImp.java
index 76db26d20d..f0b8bf5c38 100644
--- a/src/main/java/se/su/dsv/scipro/data/dao/jpa/ProjectClassDaoJPAImp.java
+++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/ProjectClassDaoJPAImp.java
@@ -1,9 +1,13 @@
 package se.su.dsv.scipro.data.dao.jpa;
 
+import java.util.List;
+
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceException;
 import javax.persistence.TypedQuery;
+
+import org.hibernate.ejb.QueryHints;
 import org.springframework.orm.jpa.JpaCallback;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,6 +42,16 @@ public class ProjectClassDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<ProjectCl
 		});
 	}
 	
+	@Transactional( readOnly=true )
+	public List<ProjectClass> findAllDeleted() {
+		return getJpaTemplate().execute(new JpaCallback<List<ProjectClass>>() {
+			public List<ProjectClass> doInJpa(EntityManager em) throws PersistenceException {
+				TypedQuery<ProjectClass> query = em.createQuery("SELECT x FROM ProjectClass x WHERE x.deleted = 1", ProjectClass.class);
+				return query.getResultList();
+			}
+		});
+	}
+	
 	@Override
 	@Transactional
 	public ProjectClass save(ProjectClass projectClass){
diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectClass.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectClass.java
index 04863505ec..d8fd980fe4 100644
--- a/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectClass.java
+++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectClass.java
@@ -9,7 +9,6 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Lob;
 import javax.persistence.OneToOne;
-import javax.persistence.PostLoad;
 import javax.persistence.Table;
 import org.hibernate.annotations.Cache;
 import org.hibernate.annotations.CacheConcurrencyStrategy;
diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectEvent.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectEvent.java
index 675f2858b3..6eb990fb61 100644
--- a/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectEvent.java
+++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/ProjectEvent.java
@@ -67,7 +67,7 @@ public class ProjectEvent extends Event {
 
 			@Override
 			protected void onFormSubmit(AjaxRequestTarget target) {
-				System.out.println("On form submitt in event class");
+				//System.out.println("On form submitt in event class");
 				callback.doCallback(target);
 				
 			}
diff --git a/src/main/java/se/su/dsv/scipro/project/panels/EventLayoutPanel.html b/src/main/java/se/su/dsv/scipro/project/panels/EventLayoutPanel.html
new file mode 100644
index 0000000000..b22216a478
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/project/panels/EventLayoutPanel.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<body>
+<wicket:panel>
+		<p></p>
+		<span class="event-title" wicket:id="eventTitle">Event title here</span>
+		<div>
+			<img wicket:id="eventDeleteIcon" class="right" />
+			<img wicket:id="eventEditIcon" class="right" />
+		<div>
+		<div wicket:id="showDetailsIcon" class="left"></div>
+			<span wicket:id="eventDueDate" class="span-2 left month"></span>	
+			<div>
+					<a href="#" wicket:id="eventPageLink"><span wicket:id="statusIcon"></span></a>
+				</div>
+			</div>
+		</div>
+		<p></p>
+		<div wicket:id="eventDetailsContainer" style="display:none;">
+			<div wicket:id="eventDetails"></div>
+		</div>	
+		<!--  
+			<div wicket:id="showDetailsIcon" class="left"></div>
+			<div wicket:id="month" class="span-1 left month"></div>
+			<img wicket:id="calendarIcon" class="left">
+				
+		<div>
+			<div>
+				
+				<span wicket:id="eventTitle">Event title here</span>
+				
+				<img wicket:id="eventDeleteIcon" class="right" />
+				<img wicket:id="eventEditIcon" class="right" />
+				<a href="#" class="right" wicket:id="eventPageLink"><img wicket:id="eventPageLinkIcon" /></a>
+				<span wicket:id="eventDueDate" class ="right"></span>
+				<div wicket:id="statusIcon"></div>
+			</div>
+		</div>
+		<p></p>
+		<div wicket:id="eventDetailsContainer" style="display:none;">
+			<div wicket:id="eventDetails"></div>
+		</div>	-->
+</wicket:panel>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/project/panels/EventLayoutPanel.java b/src/main/java/se/su/dsv/scipro/project/panels/EventLayoutPanel.java
new file mode 100644
index 0000000000..68e227f1fc
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/project/panels/EventLayoutPanel.java
@@ -0,0 +1,186 @@
+package se.su.dsv.scipro.project.panels;
+
+import java.util.Date;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.datetime.PatternDateConverter;
+import org.apache.wicket.datetime.markup.html.basic.DateLabel;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.odlabs.wiquery.core.effects.EffectSpeed;
+
+import se.su.dsv.scipro.SciProSession;
+import se.su.dsv.scipro.data.dao.interfaces.EventDao;
+import se.su.dsv.scipro.data.dao.interfaces.HandInActivityDao;
+import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
+import se.su.dsv.scipro.data.dao.interfaces.RoleDao;
+import se.su.dsv.scipro.data.dataobjects.Event;
+import se.su.dsv.scipro.data.dataobjects.HandInActivity;
+import se.su.dsv.scipro.data.dataobjects.Project;
+import se.su.dsv.scipro.data.dataobjects.User;
+import se.su.dsv.scipro.icons.AjaxActionIcon;
+import se.su.dsv.scipro.icons.ExpandContractActionIcon;
+import se.su.dsv.scipro.icons.IconPanel;
+import se.su.dsv.scipro.icons.ImageIcon;
+import se.su.dsv.scipro.schedule.baseevent.panels.EventScheduleDetailsPanel;
+import se.su.dsv.scipro.util.IAjaxCallback;
+import se.su.dsv.scipro.util.JavascriptEventConfirmation;
+import se.su.dsv.scipro.util.WiQueryCoreEffectsHelper;
+
+public abstract class EventLayoutPanel extends Panel {
+
+	private static final long serialVersionUID = 1L;
+	
+	@SpringBean
+	protected EventDao eventDao;
+	
+	@SpringBean
+	protected ProjectDao projectDao;
+	
+	@SpringBean
+	protected RoleDao roleDao;
+	
+	@SpringBean
+	protected HandInActivityDao handInActivityDao;
+	
+	public EventLayoutPanel(String id, final Event event, final Project project, final boolean isSupervisorView){
+		super(id);
+		final User user = SciProSession.get().getUser();
+		
+		//add(new CalendarIconImage("calendarIcon", event.getDueDate()));
+		//add(new DateLabel("month", new Model<Date>(event.getDueDate()), new PatternDateConverter("MMM", false)));
+		add(new DateLabel("eventDueDate", new Model<Date>(event.getDueDate()), new PatternDateConverter("yyyy-MM-dd HH:mm", false)));
+		 add(new Label("eventTitle", event.getTitle()));
+		
+		final WebMarkupContainer eventDetailsContainer = new WebMarkupContainer("eventDetailsContainer");
+		eventDetailsContainer.setOutputMarkupId(true);
+		eventDetailsContainer.add(new EmptyPanel("eventDetails"));
+		add(eventDetailsContainer);
+		
+		final ExpandContractActionIcon showDetailsIcon = new ExpandContractActionIcon("showDetailsIcon"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onExpand(AjaxRequestTarget target) {
+				eventDetailsContainer.replace(new EventScheduleDetailsPanel("eventDetails", event));
+				target.addComponent(eventDetailsContainer);
+				target.appendJavascript(WiQueryCoreEffectsHelper.slideDownJs(eventDetailsContainer, EffectSpeed.FAST));
+			}
+
+			@Override
+			public void onContract(AjaxRequestTarget target) {
+				target.appendJavascript(WiQueryCoreEffectsHelper.slideUpJs(eventDetailsContainer, EffectSpeed.FAST));
+			}
+			
+		};
+		add(showDetailsIcon);
+		
+		Link<Void> eventPageLink = new Link<Void>("eventPageLink"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClick() {
+				onEventDetailsClick();
+			}
+		};
+		
+		
+		add(eventPageLink);
+		
+		add(new AjaxActionIcon("eventEditIcon", AjaxActionIcon.ICON_EDIT){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onClick(AjaxRequestTarget target) {
+				final IAjaxCallback cb = new IAjaxCallback(){
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					public void doCallback(AjaxRequestTarget onSubmitTarget) {
+						closeDialogAndRefreshListView(onSubmitTarget);
+					}
+				};
+				
+				replaceAndOpenDialog(target, event.getCreationPanel("containerContent", cb, isSupervisorView));
+			}
+			
+			@Override
+			public boolean isVisible(){
+				return eventDao.isEditable(event, user);
+			}
+			
+		});
+		
+		add(new AjaxActionIcon("eventDeleteIcon", AjaxActionIcon.ICON_DELETE){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onClick(AjaxRequestTarget target) {
+				eventDao.lazyDelete(event);
+				refreshListView(target);
+			}
+			
+			@Override
+			public boolean isVisible(){
+				return eventDao.isDeletable(event, user);
+			}
+			
+		}.add(new JavascriptEventConfirmation("onclick", "Delete " + event.getTitle() + "?")));
+		
+		/*if(event.isRequireHandIn()){
+			add(new IconPanel("handInRequiredIcon", ImageIcon.ICON_RED_FLAG){
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				public String getDisplayString() {
+					return "Hand in required";
+				}
+			});
+		} else {
+			add(new EmptyPanel("handInRequiredIcon"));
+		}*/
+		
+		String statusIcon = ImageIcon.ICON_EMPTY;
+		final Model<String> statusMsgModel = new Model<String>("");
+		//Check the status
+		if(eventDao.eventIsDone(event, user, project)) {
+			statusIcon = ImageIcon.ICON_EVENT_DONE;
+			statusMsgModel.setObject("Event is done");
+		} else if (event.isRequireHandIn()){
+			//Ok, event is not done
+			HandInActivity hia = handInActivityDao.getHandInActivity(event, project);
+			//if there are hand ins and the event is not done, it must be awaiting feedback
+			if(hia != null && hia.getHandIns().size() > 0){
+				statusMsgModel.setObject("Awaiting supervisor feedback");
+			} else {
+				statusMsgModel.setObject("No hand in uploaded yet");	
+			}
+			statusIcon = ImageIcon.ICON_EVENT_ALERT;
+		} else {
+			//The event must be upcoming
+			if(event.getDueDate().getTime() > new Date().getTime()){
+				statusMsgModel.setObject("Event upcoming");
+				statusIcon = ImageIcon.ICON_EVENT_UPCOMING;
+			}
+		}
+		
+		eventPageLink.add(new IconPanel("statusIcon", statusIcon){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public String getDisplayString() {
+				return statusMsgModel.getObject();
+			}
+		});
+	}
+	
+	public abstract void replaceAndOpenDialog(AjaxRequestTarget target, Panel replacePanel);
+	public abstract void refreshListView(AjaxRequestTarget target);
+	public abstract void closeDialogAndRefreshListView(AjaxRequestTarget target);
+	public abstract void onEventDetailsClick();
+}
diff --git a/src/main/java/se/su/dsv/scipro/project/panels/UpcomingEventPanel.java b/src/main/java/se/su/dsv/scipro/project/panels/UpcomingEventPanel.java
index 5e6951d86e..0fa3ef87bb 100644
--- a/src/main/java/se/su/dsv/scipro/project/panels/UpcomingEventPanel.java
+++ b/src/main/java/se/su/dsv/scipro/project/panels/UpcomingEventPanel.java
@@ -26,8 +26,6 @@ import se.su.dsv.scipro.data.dataobjects.Project;
 import se.su.dsv.scipro.data.dataobjects.User;
 import se.su.dsv.scipro.project.pages.ProjectEventPage;
 import se.su.dsv.scipro.project.pages.ProjectScheduleGeneratorPage;
-import se.su.dsv.scipro.project.pages.ProjectSchedulePlannerPage;
-import se.su.dsv.scipro.schedule.baseevent.panels.EventSchedulePanel;
 import se.su.dsv.scipro.util.WiQueryCoreEffectsHelper;
 
 public class UpcomingEventPanel extends Panel{
@@ -100,7 +98,7 @@ public class UpcomingEventPanel extends Panel{
 				@Override
 				protected void populateItem(ListItem<Event> item) {
 					final Event e = item.getModelObject();
-					item.add(new EventSchedulePanel("eventPanel", e, project, false){
+					item.add(new EventLayoutPanel("eventPanel", e, project, false){
 						private static final long serialVersionUID = 1L;
 
 					 	@Override
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 0a178d1b52..7ea6274a27 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -64,7 +64,7 @@
 		<!-- Use deployment for production, development for development -->
 	<context-param>
 		<param-name>configuration</param-name>
-			<!--param-value>development</param-value-->
+<!-- 			<param-value>development</param-value> -->
 			<param-value>deployment</param-value>
 	</context-param>
 	
diff --git a/src/main/webapp/css/scipro.css b/src/main/webapp/css/scipro.css
index 39719404a2..1d5fe781cd 100644
--- a/src/main/webapp/css/scipro.css
+++ b/src/main/webapp/css/scipro.css
@@ -1042,4 +1042,14 @@ div.wicket-aa ul li.selected {
     background-color: #dedeff;
     padding: 0px;
     margin:0;
-}
\ No newline at end of file
+}
+
+.month{ 
+	font-size: 1em; 
+	font-style: strong; 
+}
+
+.event-title{ 
+	font-size: 1.4em; 
+	font-style: strong; 
+}
diff --git a/src/test/java/se/su/dsv/scipro/dao/jpa/TestPeerReviewDaoJPA.java b/src/test/java/se/su/dsv/scipro/dao/jpa/TestPeerReviewDaoJPA.java
index 0978026c3e..8044797a28 100644
--- a/src/test/java/se/su/dsv/scipro/dao/jpa/TestPeerReviewDaoJPA.java
+++ b/src/test/java/se/su/dsv/scipro/dao/jpa/TestPeerReviewDaoJPA.java
@@ -2,6 +2,7 @@ package se.su.dsv.scipro.dao.jpa;
 
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import org.junit.Assert;
@@ -528,8 +529,10 @@ public class TestPeerReviewDaoJPA {
 		review2.setSubmitted(true);
 		review2 = peerReviewDao.save(review2);
 		
+		review1.setLastModified(new Date());
+
 		List<PeerReview> sortedByDate = peerReviewDao.findReviewsSortedByDate();
-		Assert.assertEquals(review2, sortedByDate.get(0));
+		Assert.assertEquals(review1, sortedByDate.get(0));
 		Assert.assertEquals(2, peerReviewDao.countSubmittedReviews());
 	}