From 556a610949dc3a310bfd40cf75788c7c3fa49dbd Mon Sep 17 00:00:00 2001
From: Fredrik Norberg <fnorbe@dsv.su.se>
Date: Thu, 28 Jul 2011 17:10:21 +0200
Subject: [PATCH 1/5] added adminchecklistpage

---
 .../admin/pages/AdminCheckListPage.html       |  13 +++
 .../admin/pages/AdminCheckListPage.java       |  34 ++++++
 .../admin/panels/AdminTabMenuPanel.java       |   2 +
 .../panels/CreateCheckListTemplatePanel.html  |   5 +-
 .../checklists/panels/TrafficLightPanel.java  |  79 -------------
 .../checklists/panels/ViewCheckListPanel.java | 110 ++++++++++++++++++
 6 files changed, 160 insertions(+), 83 deletions(-)
 create mode 100644 src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html
 create mode 100644 src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java
 create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java

diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html
new file mode 100644
index 0000000000..27c3803811
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CheckLists</title>
+</head>
+<body>
+	<wicket:extend>
+			<div wicket:id="cCLPanel"></div>
+	</wicket:extend>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java
new file mode 100644
index 0000000000..f9d2db1f21
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java
@@ -0,0 +1,34 @@
+package se.su.dsv.scipro.admin.pages;
+
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.SubmitLink;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import se.su.dsv.scipro.checklists.panels.CreateCheckListTemplatePanel;
+import se.su.dsv.scipro.data.dao.interfaces.GeneralSystemSettingsDao;
+import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings;
+import se.su.dsv.scipro.project.panels.ProjectPartnerPanel;
+import se.su.dsv.scipro.security.auth.Authorization;
+import se.su.dsv.scipro.security.auth.roles.Roles;
+
+/**
+ * @author Fredrik Norberg - fnorbe@dsv.su.se
+ *
+ */
+
+@Authorization(authorizedRoles={Roles.SYSADMIN, Roles.ADMIN})
+public class AdminCheckListPage extends AbstractAdminPage {
+	
+
+	public static final String MAIN_MENU_LABEL = "CheckLists";
+	
+	public AdminCheckListPage(PageParameters pp) {
+		super(pp);
+		add(new CreateCheckListTemplatePanel("cCLPanel"));
+	}
+
+}
diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java
index 33c8432b34..fb319be8bc 100644
--- a/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java
+++ b/src/main/java/se/su/dsv/scipro/admin/panels/AdminTabMenuPanel.java
@@ -6,6 +6,7 @@ import java.util.List;
 import org.apache.wicket.Page;
 
 import se.su.dsv.scipro.admin.pages.AbstractAdminPage;
+import se.su.dsv.scipro.admin.pages.AdminCheckListPage;
 import se.su.dsv.scipro.admin.pages.AdminFinalSeminarPage;
 import se.su.dsv.scipro.admin.pages.AdminProjectPartnerPage;
 import se.su.dsv.scipro.admin.pages.AdminRolePage;
@@ -39,6 +40,7 @@ public class AdminTabMenuPanel extends AbstractMenuPanel {
 		items.add(new MenuItem("Settings", AdminGeneralSettingsPage.class, ImageIcon.ICON_SETTINGS));
 		items.add(new MenuItem("Role management", AdminRolePage.class));
 		items.add(new MenuItem("Project partner", AdminProjectPartnerPage.class));
+		items.add(new MenuItem("CheckList", AdminCheckListPage.class));
 
 		return items;
 	}
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
index ae81354e01..7f29e0238d 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
@@ -5,6 +5,7 @@
 <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
 </head>
 <body>
+
 	<wicket:panel>
 		<div wicket:id="feedbackPanel"></div>
 		<form wicket:id="form">
@@ -13,10 +14,6 @@
 			</div>
 			<input wicket:id="button" type="submit"/>
 		</form>
-		<div>
-			<a href="#" wicket:id="link">Print</a>
-		</div>
-		
 		<div>
 			<a href="#" wicket:id="newLink">New Link</a>
 		</div>
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java
index 149ec7bdfc..81dcdee7ba 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.java
@@ -38,18 +38,6 @@ public class TrafficLightPanel extends Panel {
 
 	private static final long serialVersionUID = 8862892008428526067L;
 
-	@SpringBean
-	private CheckListDao checkListDao;
-
-	@SpringBean
-	private CheckListAnswerDao checkListAnswerDao;
-
-	@SpringBean
-	private CheckListQuestionDao checkListQuestionDao;
-
-	@SpringBean
-	private CheckListTemplateDao checkListTemplateDao;
-
 	public TrafficLightPanel(String id) {
 		super(id);
 
@@ -94,71 +82,4 @@ public class TrafficLightPanel extends Panel {
 		group.add(lightList);
 	}
 
-
-		List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get()
-				.getActiveProject());{
-		if (checkLists.size() < 1) {
-			CheckList checkList = new CheckList("Test", SciProSession.get().getActiveProject());
-			CheckListQuestion checkListQuestion = new CheckListQuestion("Testquestion?");
-			checkListQuestion = checkListQuestionDao.save(checkListQuestion);
-			checkList.getQuestions().add(checkListQuestion);
-			checkList = checkListDao.save(checkList);
-		}
-
-		ListView<CheckList> checkListsListView = new ListView<CheckList>("checkLists", checkLists) {
-
-			/**
-			 * 
-			 */
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			protected void populateItem(ListItem<CheckList> item) {
-
-				ListView<CheckListQuestion> listView = new ListView<CheckListQuestion>(
-						"listView",
-						new ArrayList<CheckListQuestion>(item.getModel().getObject().getQuestions())) {
-
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					protected void populateItem(ListItem<CheckListQuestion> item) {
-						CheckListQuestion checkListQuestion = item.getModel().getObject();
-						if(checkListQuestion.getAnswers().size() == 0){
-							CheckListAnswer checkListAnswer = new CheckListAnswer(SciProSession.get().getUser(), CheckListQuestionAnswer.GREEN);
-							checkListAnswer = checkListAnswerDao.save(checkListAnswer);
-							checkListQuestion.getAnswers().add(checkListAnswer);
-							checkListQuestionDao.save(checkListQuestion);
-							
-						}
-						item.add(new Label("question", item.getModel().getObject().getQuestion()));
-						
-						ListView<CheckListAnswer> listView = new ListView<CheckListAnswer>(
-								"listViewAnswer",
-								new ArrayList<CheckListAnswer>(item.getModel().getObject().getAnswers())) {
-
-							private static final long serialVersionUID = 1L;
-
-							@Override
-							protected void populateItem(ListItem<CheckListAnswer> item) {
-								item.add(new Label("answer", item.getModel().getObject().getAnswer().toString()));
-								
-
-							}
-
-						};
-						item.add(listView);
-
-					}
-
-				};
-
-				item.add(listView);
-
-			}
-		};
-
-		add(checkListsListView);
-	};
-
 }
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java
new file mode 100644
index 0000000000..3dab763499
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java
@@ -0,0 +1,110 @@
+package se.su.dsv.scipro.checklists.panels;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.spring.injection.annot.SpringBean;
+
+import se.su.dsv.scipro.SciProSession;
+import se.su.dsv.scipro.data.dao.interfaces.CheckListAnswerDao;
+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.CheckListTemplateDao;
+import se.su.dsv.scipro.data.dataobjects.CheckList;
+import se.su.dsv.scipro.data.dataobjects.CheckListAnswer;
+import se.su.dsv.scipro.data.dataobjects.CheckListQuestion;
+import se.su.dsv.scipro.data.enums.CheckListQuestionAnswer;
+
+public class ViewCheckListPanel extends Panel {
+	
+	
+	private static final long serialVersionUID = 1L;
+
+	@SpringBean
+	private CheckListDao checkListDao;
+
+	@SpringBean
+	private CheckListAnswerDao checkListAnswerDao;
+
+	@SpringBean
+	private CheckListQuestionDao checkListQuestionDao;
+
+	@SpringBean
+	private CheckListTemplateDao checkListTemplateDao;
+	
+	
+	public ViewCheckListPanel(String id){
+		super(id);
+
+		List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get()
+				.getActiveProject());{
+		if (checkLists.size() < 1) {
+			CheckList checkList = new CheckList("Test", SciProSession.get().getActiveProject());
+			CheckListQuestion checkListQuestion = new CheckListQuestion("Testquestion?");
+			checkListQuestion = checkListQuestionDao.save(checkListQuestion);
+			checkList.getQuestions().add(checkListQuestion);
+			checkList = checkListDao.save(checkList);
+		}
+	
+		ListView<CheckList> checkListsListView = new ListView<CheckList>("checkLists", checkLists) {
+	
+			/**
+			 * 
+			 */
+			private static final long serialVersionUID = 1L;
+	
+			@Override
+			protected void populateItem(ListItem<CheckList> item) {
+	
+				ListView<CheckListQuestion> listView = new ListView<CheckListQuestion>(
+						"listView",
+						new ArrayList<CheckListQuestion>(item.getModel().getObject().getQuestions())) {
+	
+					private static final long serialVersionUID = 1L;
+	
+					@Override
+					protected void populateItem(ListItem<CheckListQuestion> item) {
+						CheckListQuestion checkListQuestion = item.getModel().getObject();
+						if(checkListQuestion.getAnswers().size() == 0){
+							CheckListAnswer checkListAnswer = new CheckListAnswer(SciProSession.get().getUser(), CheckListQuestionAnswer.GREEN);
+							checkListAnswer = checkListAnswerDao.save(checkListAnswer);
+							checkListQuestion.getAnswers().add(checkListAnswer);
+							checkListQuestionDao.save(checkListQuestion);
+							
+						}
+						item.add(new Label("question", item.getModel().getObject().getQuestion()));
+						
+						ListView<CheckListAnswer> listView = new ListView<CheckListAnswer>(
+								"listViewAnswer",
+								new ArrayList<CheckListAnswer>(item.getModel().getObject().getAnswers())) {
+	
+							private static final long serialVersionUID = 1L;
+	
+							@Override
+							protected void populateItem(ListItem<CheckListAnswer> item) {
+								item.add(new Label("answer", item.getModel().getObject().getAnswer().toString()));
+								
+	
+							}
+	
+						};
+						item.add(listView);
+	
+					}
+	
+				};
+	
+				item.add(listView);
+	
+			}
+		};
+	
+		add(checkListsListView);
+	};
+	
+	}
+}

From d026cfb9d3814a789bfae973471b6122b3290ac7 Mon Sep 17 00:00:00 2001
From: joha-asc <aschan.johan@gmail.com>
Date: Fri, 29 Jul 2011 15:35:11 +0200
Subject: [PATCH 2/5] checklist foundation

---
 .../panels/CreateCheckListTemplatePanel.html  |  28 +++++-
 .../panels/CreateCheckListTemplatePanel.java  |  88 +++++++-----------
 .../pm-null                                   | Bin 5404 -> 0 bytes
 .../pm-null                                   | Bin 5404 -> 0 bytes
 .../pm-null                                   | Bin 5404 -> 0 bytes
 .../pm-null                                   | Bin 5404 -> 0 bytes
 .../pm-null                                   | Bin 5404 -> 0 bytes
 7 files changed, 58 insertions(+), 58 deletions(-)
 delete mode 100644 target/work/WicketMockServlet-filestore/2225/4400/e95749e4_308e_4698_a057_bb86050ac96e/pm-null
 delete mode 100644 target/work/WicketMockServlet-filestore/2349/5733/fd6064a1_8b84_4446_82cc_69fd7167e7c6/pm-null
 delete mode 100644 target/work/WicketMockServlet-filestore/4435/793/a137fc0e_994c_4fd1_94a7_801290d34f88/pm-null
 delete mode 100644 target/work/WicketMockServlet-filestore/6408/4902/a7851e5b_30d6_4edf_a954_3f4f8c6690fb/pm-null
 delete mode 100644 target/work/WicketMockServlet-filestore/7238/3517/7b8c41d4_a788_46e0_a576_ab3eb0b03be8/pm-null

diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
index 7f29e0238d..28b3eaac96 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
@@ -8,15 +8,33 @@
 
 	<wicket:panel>
 		<div wicket:id="feedbackPanel"></div>
+		<form wicket:id="form2">
+			<div wicket:id="container">
+				<div wicket:id="questions">
+					<span wicket:id=questionLabel></span>
+				</div>
+			</div>
+			<div>
+				<input wicket:id="question" type="text" />
+
+			</div>
+			<input wicket:id="button2" type="submit" />
+
+		</form>
 		<form wicket:id="form">
 			<div>
-				<input wicket:id="questions" type="text" />
+
+				<input wicket:id="title" type="text" />
 			</div>
-			<input wicket:id="button" type="submit"/>
+			<div wicket:id="radioChoice">
+				<input type="radio" />
+			</div>
+
+
+			<div></div>
+			<input wicket:id="button" type="submit" />
 		</form>
-		<div>
-			<a href="#" wicket:id="newLink">New Link</a>
-		</div>
+
 	</wicket:panel>
 </body>
 </html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
index 5705cfbd88..c111457a1c 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
@@ -1,27 +1,19 @@
 package se.su.dsv.scipro.checklists.panels;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.SortedSet;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
-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.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.basic.MultiLineLabel;
 import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.Radio;
 import org.apache.wicket.markup.html.form.RadioChoice;
-import org.apache.wicket.markup.html.form.RadioGroup;
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.model.Model;
@@ -29,21 +21,10 @@ import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import se.su.dsv.scipro.SciProSession;
-import se.su.dsv.scipro.data.dao.interfaces.CheckListAnswerDao;
-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.CheckListTemplateDao;
 import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
-import se.su.dsv.scipro.data.dataobjects.CheckList;
-import se.su.dsv.scipro.data.dataobjects.CheckListAnswer;
-import se.su.dsv.scipro.data.dataobjects.CheckListQuestion;
 import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
-import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings;
 import se.su.dsv.scipro.data.dataobjects.ProjectClass;
-import se.su.dsv.scipro.data.enums.CheckListQuestionAnswer;
-import se.su.dsv.scipro.data.enums.StateOfMind;
-import se.su.dsv.scipro.knol.resource.page.StaticImage;
-import edu.emory.mathcs.backport.java.util.Arrays;
 
 /**
  * @author fnorbe@dsv.su.se
@@ -53,15 +34,6 @@ public class CreateCheckListTemplatePanel extends Panel {
 
 	private static final long serialVersionUID = 8862892008428526067L;
 
-	@SpringBean
-	private CheckListDao checkListDao;
-
-	@SpringBean
-	private CheckListAnswerDao checkListAnswerDao;
-
-	@SpringBean
-	private CheckListQuestionDao checkListQuestionDao;
-
 	@SpringBean
 	private CheckListTemplateDao checkListTemplateDao;
 
@@ -82,36 +54,41 @@ public class CreateCheckListTemplatePanel extends Panel {
 		feedbackPanel.setOutputMarkupId(true);
 		add(feedbackPanel);
 		Form<CheckListTemplate> form = new Form<CheckListTemplate>("form");
+		Form<CheckListTemplate> form2 = new Form<CheckListTemplate>("form2");
 		final TextField<String> titleField = new RequiredTextField<String>("title",
 				new PropertyModel<String>(this, "title"));
-		final TextField<String> questionField = new RequiredTextField<String>("questions",
+		final TextField<String> questionField = new RequiredTextField<String>("question",
 				new PropertyModel<String>(this, "question"));
 		questionField.setOutputMarkupId(true);
-		RadioChoice<ProjectClass> radioChoice = new RadioChoice<ProjectClass>("view",
+		RadioChoice<ProjectClass> radioChoice = new RadioChoice<ProjectClass>("radioChoice",
 				new PropertyModel<ProjectClass>(this, "projectClass"), projectClassDao.findAll());
 
-		IModel<List<String>> questionModel = new LoadableDetachableModel<List<String>>() {
+		final IModel<List<String>> questionModel = new LoadableDetachableModel<List<String>>(){
 
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected List<String>  load() {
-				// TODO Auto-generated method stub
+			protected List<String> load() {
 				return checkListTemplate.getQuestions();
 			}
 		};
-		
-		AjaxLink<Void> printLink = new AjaxLink<Void>("addQuestionLink") {
+		final WebMarkupContainer container = new WebMarkupContainer("container");
+		container.setOutputMarkupId(true);
+		ListView<String> listView = new ListView<String>("questions", questionModel) {
 
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			public void onClick(AjaxRequestTarget target) {
-				checkListTemplate.getQuestions().add(question);
-				question = "";
-				target.addComponent(questionField);
+			protected void populateItem(ListItem<String> item) {
+				Label question = new Label("questionLabel", item.getModel().getObject());
+				item.add(question);
+				
 			}
 		};
+		
+		container.add(listView);
+	
+		
 		AjaxButton button = new AjaxButton("button", new Model<String>("Save")) {
 
 			/**
@@ -125,20 +102,13 @@ public class CreateCheckListTemplatePanel extends Panel {
 				checkListTemplate.setLevel(projectClass);
 				checkListTemplate.setCreator(SciProSession.get().getUser());
 				checkListTemplate.setName(title);
-
+				checkListTemplate = checkListTemplateDao.save(checkListTemplate);
 				target.addComponent(feedbackPanel);
 				
 			}
 		};
-		form.add(titleField);
-		form.add(radioChoice);
-		form.add(button);
-		form.add(questionField);
-		add(form);
-
-
-
-		AjaxLink<Void> newLink = new AjaxLink<Void>("newLink") {
+		
+		AjaxButton button2 = new AjaxButton("button2", new Model<String>("Add")) {
 
 			/**
 			 * 
@@ -146,13 +116,25 @@ public class CreateCheckListTemplatePanel extends Panel {
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			public void onClick(AjaxRequestTarget target) {
-				checkListTemplate = new CheckListTemplate();
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
 
+				checkListTemplate.getQuestions().add(new String(question));
+				questionModel.detach();
+				question  = "";
+				target.addComponent(questionField);
+				target.addComponent(container);
+				
 			}
 		};
-		add(printLink);
-		add(newLink);
+		form.add(titleField);
+		form.add(radioChoice);
+		form.add(button);
+		form2.add(questionField);
+		form2.add(container);
+		form2.add(button2);
+		add(form);
+		add(form2);
+		//add(addQuestionLink);
 
 	};
 
diff --git a/target/work/WicketMockServlet-filestore/2225/4400/e95749e4_308e_4698_a057_bb86050ac96e/pm-null b/target/work/WicketMockServlet-filestore/2225/4400/e95749e4_308e_4698_a057_bb86050ac96e/pm-null
deleted file mode 100644
index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5404
zcmb7I&u`n-9e=iCSC-v4&bnksFw9+@x>;f}b=sgsHrTQ~F9al8h|*+GSFBIuv-Dz$
zWZrwU<Q}%muyeQFav65tAJL)cbwIBju*-HCwq14|iuU_`PZTMUmJ$J`Me6(e*ZX|=
z=l_y<MOL41_k^ih=$<r~IQ5y5g4~wOlCkB<Q%kx$5~1aXZ63fSjFlD9Hj`ErpVZ;&
z7hnHw>-B%U`+Sy=z92VptSu^;VX4P0pS#HOzv}hN^u|{o8=f~N@azINa{P9m{^oE0
z{9<*M%v8xD%6r5WSW9kIL(#TrMBNUvd)gVhOT|eX*&WsOZBWl$yGmQkzmN6-wPmO+
zLv0yq3#qLqtcBW$`OIi-WjE|bf=L+)MGgwoL4Z`~hCV1%kuBJ>m`P>F!cQ1^(6&Di
z{@zdyT5=_C$*Agu23e%B3Z1}XeTS5X-?tpH7{pyBxa)XTvV_s7(ddwNAs&~jPw6SO
zeF{1oN`UJ7RZ@<qz+ah=iu|y^1=L(0(g4TBQ=sKxP@@6-1diJUTmu^0LH5TZ4CvwO
zc@JwkGkam6C=ZwziF3*AaNiRw7<J;P^^~~^<z3Iq!;ppnvJ5gdM;071f9%t?bjWI(
zffA~iXY@LrLzYasbx^D1f=3m7Mt((>t7MjY_^nhW3lJ`lsmL1zPLH{8zaRCWOrlEV
zz31NyKCvL*`B3M<!aP_57e4*#&;NKy-t@8RBd~W4TP^QXi*@KJ4~6xBQI81>mf$TY
zgwb%VcE*2JWUIhl<F9E3Cnpl)`pyI!DlMr5bybcr3AkzDTQ4ADci>l+GlCFo<#~<G
zrX}|pjXHHtpu!$98OFk8>-SO-vsJQuO8s>|bg6=R9b|A3pLLnXb#hDnNRf-Kl=fhp
z!B;3U=?cbz+iTFjSYp5}k^Qp1URC6K$kFm+7C{>+;6-u^9wODXQQE7cw3-7+6`9xH
zqo^Mv+a)l49-Q7hXXXXWmsaCUD%L#=6?dU4;Zf=@&e)ri0~R5NHO4p7Br82Ck0KWA
z`JrTwXd5K$PnHDJaID&&aMh{6By@S&RjF|>nwL%L9xy+`sj)YuAcvEnNU#xt6?*4o
z?M!VVeGL0jW#^7=PxxUKieXu1LW~3}eMpKmS&a$oPrH#i8;h<{vYt^gAEDHnczLUj
zRbH7a`vn4#`ZU`l*MqPY3T94kY)(k1toVM|V{jxay2*r{J`?guzOO^}-5E6g7SVNn
zTi?7zz>z7{r_WnUpSP*OShYWz8~`vQH_UOipb@WD>ci||^GpI631C=%J5>*Lxu7~+
zuHRAQMpZIf#x{VP!8AaKU=WI(Fk{Va7T6nl&{@eyd<aoL3jDJgK24RuY)6|{R0gK#
z2UubGwjV`Sy8ZVXkIlGk-uwHX{!sgJH;F^Gz^*|RFM<<>(kO^Bxq2USW#y(!fw}>b
z8yPbfnq-v+t{;0ab-S$FVxq>Hq%4LvRZ@zml)X@Rirkyh=EtGv+VuhXBi2_3ocSKW
zj8ZI_2sCg3L^%=2X&EW6E{tqIz7GLelDr)_087Cc6O!T3orQ3`U64`@NX$uN`ul(}
zuLTFrSc^jqt#knd!Z}psQa$FZH+{TmiS~%Z_1dTq(`;Es=E0HD@xTi7VjC;x?n~Q#
zUI*Nr66gY>jgcEWJ8Q`hMI+0Jk+BZ;KAJgY%oT)qJRoT&rEQB*_!;zM0nErk1s@V)
zCD}>k%mH{l<^X*)=+jjUW#_;V3mCC<3Yl#1PZ)?lABhMSF*xx=ruof-RErr^8$0#2
z-zPW_;!$vNB~i1Ix)@Z192+D6Z5EEX4_Xx|%2^`EcE$u9XeQ{cRa{wM1Hi!w;2sd9
zB3I0Q5G(H6>2pA_5tiMc!u1?^pg}4jzXo?O0sH!r88Q0=pVYw1_g`+#tT%L<9>7#c
z;|K1R0f`}O;IKcDje;`ORs*z)nf(~Au=RkO!`Xf(Kif0&&ep{zVUf|BD~t#n^Ba@<
z3a5@WYUl;n%et|zI4n%6O0IeAn8Ix%Zgsgz!mXDQMSfD?gsE5q$n{WjP<{bBu3<<3
zu5#E@LZM?1o60L)+Q*VDUQl$9^!~SdrkEV`Ze=HW4#A#*zcTi&nUts*lenFt({r|x
zY@eY~)^HT3Da2#`y%&gQa)P3W!b88XZ*mr(@dfO2aI6U0bAl*V=o>6_C3O}t+>ZzM
zWvHQSNWtzOzkuBu)i5uQn9>ly%qsi%vOzbqB5OqjfPlevG)0n~`dvLWK+r|#r=qtM
z8hg}DgN$Pi)XMt$B}K9WflE^n%=yw56cufz!?&#AYk@^rXO?b8D{00|9GYa2ce}Bo
zEgwhgReUR9X_hJvPMG(A$_}*eJD(l?;*$T_|6zr0k|pZ8a5^3dSbKqIHRTyl&%g53
zUp~L`@t1RC_5k7>QttqE(@?+*5!HcLG@a1*`qB1|wqv<hg8#U1kv<_X+!CyTMer0a
zO_+L$T>5bH@M!a4<;kXVSpVSB=11^IYu3BFd53}szF<wxm1GX%XiK2&w12OHiA*Il
z8o_*2slS_K-YlLjTE@ZL1YY62hLmV7-kjjYk7o2Z*vKp$uYot9Bf)DA!yZyL@m!vA
za_WxW>oE6ZH-up657=zZv|j@JPHeoQm1-NeVTz>6P}3=1o+Vbo%f&Q|yJ6@v8o+B0
zIB1ZJ<7GQ@nrxF9y=3SWz6B<4<PH@B)HOyv2tzm+>j?Bd|5W_@UvK{B2Z^~^EVTv^
cSvpQ>QRxa4H2ya`%_oGsmN*QiY1_8G1%kiuT>t<8

diff --git a/target/work/WicketMockServlet-filestore/2349/5733/fd6064a1_8b84_4446_82cc_69fd7167e7c6/pm-null b/target/work/WicketMockServlet-filestore/2349/5733/fd6064a1_8b84_4446_82cc_69fd7167e7c6/pm-null
deleted file mode 100644
index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5404
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

diff --git a/target/work/WicketMockServlet-filestore/4435/793/a137fc0e_994c_4fd1_94a7_801290d34f88/pm-null b/target/work/WicketMockServlet-filestore/4435/793/a137fc0e_994c_4fd1_94a7_801290d34f88/pm-null
deleted file mode 100644
index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5404
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

diff --git a/target/work/WicketMockServlet-filestore/6408/4902/a7851e5b_30d6_4edf_a954_3f4f8c6690fb/pm-null b/target/work/WicketMockServlet-filestore/6408/4902/a7851e5b_30d6_4edf_a954_3f4f8c6690fb/pm-null
deleted file mode 100644
index 147e0c190a640c463089eb697c906c8a928f579a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5404
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

diff --git a/target/work/WicketMockServlet-filestore/7238/3517/7b8c41d4_a788_46e0_a576_ab3eb0b03be8/pm-null b/target/work/WicketMockServlet-filestore/7238/3517/7b8c41d4_a788_46e0_a576_ab3eb0b03be8/pm-null
deleted file mode 100644
index ec767529171c9b9af6758aef8ab6f412233d25bc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5404
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


From 6e36c1b685b9d2fc3861390a6d581dfd6db2a081 Mon Sep 17 00:00:00 2001
From: Fredrik Norberg <fnorbe@dsv.su.se>
Date: Mon, 1 Aug 2011 17:10:19 +0200
Subject: [PATCH 3/5] Implemented creation of checklist templates

---
 .gitignore                                    |  3 +
 .../panels/CreateCheckListTemplatePanel.html  | 36 +++++------
 .../panels/CreateCheckListTemplatePanel.java  | 37 ++++++++----
 .../checklists/panels/TrafficLightPanel.html  | 36 -----------
 .../resources/META-INF/base-repository.xml    | 60 -------------------
 5 files changed, 45 insertions(+), 127 deletions(-)
 delete mode 100644 src/main/resources/META-INF/base-repository.xml

diff --git a/.gitignore b/.gitignore
index 2115d5fd97..a1b64d57b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,6 @@
 \.classpath
 \target/**/*
 \target/*
+/.settings
+/.classpath
+/target
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
index 28b3eaac96..a43e02bacd 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.html
@@ -8,31 +8,31 @@
 
 	<wicket:panel>
 		<div wicket:id="feedbackPanel"></div>
-		<form wicket:id="form2">
-			<div wicket:id="container">
-				<div wicket:id="questions">
-					<span wicket:id=questionLabel></span>
-				</div>
-			</div>
-			<div>
-				<input wicket:id="question" type="text" />
-
-			</div>
-			<input wicket:id="button2" type="submit" />
-
-		</form>
 		<form wicket:id="form">
 			<div>
 
-				<input wicket:id="title" type="text" />
+				Template name:  <input wicket:id="title" type="text" />
 			</div>
+			<p></p>
 			<div wicket:id="radioChoice">
 				<input type="radio" />
 			</div>
-
-
-			<div></div>
-			<input wicket:id="button" type="submit" />
+			<div>
+			<form wicket:id="addQuestionForm">
+				<div wicket:id="container">
+					<div>Questions</div>
+					<div wicket:id="questions">
+						<span wicket:id=questionLabel></span>
+					</div>
+				</div>
+			<div>
+				<input wicket:id="question" type="text" />
+			</div>
+			<input wicket:id="addQuestionButton" type="submit" />
+		</form>
+		</div>
+		<p></p>
+			<input wicket:id="save" type="submit" />
 		</form>
 
 	</wicket:panel>
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
index c111457a1c..f100f19bd9 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
@@ -43,6 +43,8 @@ public class CreateCheckListTemplatePanel extends Panel {
 	private String question = "";
 	private String title = "";
 	
+	private final FeedbackPanel feedbackPanel;
+	
 	private ProjectClass projectClass;
 
 	private CheckListTemplate checkListTemplate = new CheckListTemplate();
@@ -50,16 +52,18 @@ public class CreateCheckListTemplatePanel extends Panel {
 	public CreateCheckListTemplatePanel(String id) {
 		super(id);
 		projectClass = projectClassDao.getProjectClass(ProjectClass.BACHELOR);
-		final FeedbackPanel feedbackPanel = new FeedbackPanel("feedbackPanel");
+		feedbackPanel = new FeedbackPanel("feedbackPanel");
 		feedbackPanel.setOutputMarkupId(true);
 		add(feedbackPanel);
 		Form<CheckListTemplate> form = new Form<CheckListTemplate>("form");
-		Form<CheckListTemplate> form2 = new Form<CheckListTemplate>("form2");
+		final Form<CheckListTemplate> addQuestionForm = new Form<CheckListTemplate>("addQuestionForm");
 		final TextField<String> titleField = new RequiredTextField<String>("title",
 				new PropertyModel<String>(this, "title"));
+		titleField.setOutputMarkupId(true);
 		final TextField<String> questionField = new RequiredTextField<String>("question",
 				new PropertyModel<String>(this, "question"));
 		questionField.setOutputMarkupId(true);
+		questionField.setRequired(false);
 		RadioChoice<ProjectClass> radioChoice = new RadioChoice<ProjectClass>("radioChoice",
 				new PropertyModel<ProjectClass>(this, "projectClass"), projectClassDao.findAll());
 
@@ -87,9 +91,9 @@ public class CreateCheckListTemplatePanel extends Panel {
 		};
 		
 		container.add(listView);
-	
+		//add(new FeedbackPanel("feedbackPanel"));
 		
-		AjaxButton button = new AjaxButton("button", new Model<String>("Save")) {
+		AjaxButton save = new AjaxButton("save", new Model<String>("Save template")) {
 
 			/**
 			 * 
@@ -102,13 +106,17 @@ public class CreateCheckListTemplatePanel extends Panel {
 				checkListTemplate.setLevel(projectClass);
 				checkListTemplate.setCreator(SciProSession.get().getUser());
 				checkListTemplate.setName(title);
-				checkListTemplate = checkListTemplateDao.save(checkListTemplate);
-				target.addComponent(feedbackPanel);
+				checkListTemplateDao.save(checkListTemplate);
+				checkListTemplate = new CheckListTemplate();
+				title ="";
+				question="";
+				target.addComponent(container);
+				target.addComponent(titleField);
 				
 			}
 		};
 		
-		AjaxButton button2 = new AjaxButton("button2", new Model<String>("Add")) {
+		AjaxButton addQuestionButton = new AjaxButton("addQuestionButton", new Model<String>("Add question")) {
 
 			/**
 			 * 
@@ -118,22 +126,25 @@ public class CreateCheckListTemplatePanel extends Panel {
 			@Override
 			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
 
-				checkListTemplate.getQuestions().add(new String(question));
+				if(question != null || question != ""){
+					checkListTemplate.getQuestions().add(new String(question));
+				}
 				questionModel.detach();
 				question  = "";
 				target.addComponent(questionField);
 				target.addComponent(container);
+				System.out.println("mooooo");
 				
 			}
 		};
+		addQuestionForm.add(questionField);
+		addQuestionForm.add(container);
+		addQuestionForm.add(addQuestionButton);
 		form.add(titleField);
 		form.add(radioChoice);
-		form.add(button);
-		form2.add(questionField);
-		form2.add(container);
-		form2.add(button2);
+		form.add(addQuestionForm);
+		form.add(save);
 		add(form);
-		add(form2);
 		//add(addQuestionLink);
 
 	};
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html
index 4f3970ab18..9b0f684344 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/TrafficLightPanel.html
@@ -12,21 +12,6 @@
 				<table >
 					<tr >
 						<td><input type="radio" wicket:id="radio" /></td>
-<!--  
-						<td><img wicket:id="image" /></td>
-					</tr>
-				</table>
-			</form>
-		</div>
-		<div wicket:id="checkLists">
-			<div wicket:id="listView">
-				<span wicket:id="question"></span>
-				<div wicket:id="listViewAnswer">
-					<span wicket:id="answer"></span>
-				</div>
-			</div>
-		</div>
--->
 						<td><img wicket:id="image"/></td>
 						</tr> 
 						<tr>
@@ -39,24 +24,3 @@
 	</wicket:panel>
 </body>
 </html>
-<!--
-<!DOCTYPE html>
-<html
-	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
-<head>
-<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
-</head>
-<body>
-	<wicket:panel>
-		<div wicket:id="trafficLightContainer">
-			<table wicket:id="group">
-				<tr wicket:id="lights">
-					<td><input type="radio" wicket:id="radio" /></td>
-					<td> <img wicket:id="image"/></td>
-					</tr> 
-				</table>
-			</div>
->>>>>>> checklists
-	</wicket:panel>
-</body>
-</html> -->
\ No newline at end of file
diff --git a/src/main/resources/META-INF/base-repository.xml b/src/main/resources/META-INF/base-repository.xml
deleted file mode 100644
index 4bbf38d867..0000000000
--- a/src/main/resources/META-INF/base-repository.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE Repository
-          PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN"
-          "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
-<Repository>
-	<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-		<param name="path" value="/jackrabbit" />
-	</FileSystem>
-	<Security appName="Jackrabbit">
-		<AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager" />
-		<LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
-			<param name="anonymousId" value="anonymous" />
-		</LoginModule>
-	</Security>
-	<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
-	
-	<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
-        <param name="path" value="${rep.home}/repository/datastore"/>
-        <param name="minRecordLength" value="100"/>
-    </DataStore>
-	
-	<Workspace name="${wsp.name}">
-		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-			<param name="path" value="${wsp.home}" />
-		</FileSystem>
-		
-		<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager">
-			<param name="blobFSBlockSize" value="0"/>
-			<param name="minBlobSize" value="4096"/>
-			<param name="errorHandling" value=""/>
-		</PersistenceManager>
-
-		<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
-			<param name="path" value="${wsp.home}/index" />
-			<param name="indexingConfiguration" value="${wsp.home}/index-config.xml"/>
-			<param name="textFilterClasses" value="
-			  org.apache.jackrabbit.extractor.MsWordTextExtractor,
-              org.apache.jackrabbit.extractor.MsExcelTextExtractor,
-              org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,
-              org.apache.jackrabbit.extractor.PdfTextExtractor,
-              org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,
-              org.apache.jackrabbit.extractor.RTFTextExtractor,
-              org.apache.jackrabbit.extractor.XMLTextExtractor,
-              org.apache.jackrabbit.extractor.PngTextExtractor,
-			  org.apache.jackrabbit.extractor.HTMLTextExtractor"/>
-            <param name="extractorPoolSize " value="2"/>
-            <param name="supportHighlighting" value="true"/>
-		</SearchIndex>
-	</Workspace>
-	<Versioning rootPath="${rep.home}/versions">
-		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-			<param name="path" value="${rep.home}/versions" />
-		</FileSystem>
-<!--		<PersistenceManager class="org.apache.jackrabbit.core.persistence.xml.XMLPersistenceManager" />-->
-		<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager">
-			<param name="blobFSBlockSize" value="0"/>
-			<param name="minBlobSize" value="4096"/>
-			<param name="errorHandling" value=""/>
-		</PersistenceManager>
-	</Versioning>
-</Repository>

From a2b09124f77d4ae0a713c0438f49f2fdce48bc3c Mon Sep 17 00:00:00 2001
From: Fredrik Norberg <fnorbe@dsv.su.se>
Date: Tue, 2 Aug 2011 14:12:26 +0200
Subject: [PATCH 4/5] added listCheckListPanel

---
 .../admin/pages/AdminCheckListPage.html       | 16 ++++-
 .../admin/pages/AdminCheckListPage.java       |  2 +
 .../panels/CreateCheckListTemplatePanel.java  |  2 -
 .../checklists/panels/ListCheckListPanel.java | 66 ++++++++++++++++++
 .../panels/ListCheckListTemplatePanel.java    | 67 +++++++++++++++++++
 .../checklists/panels/ViewCheckListPanel.java |  9 ++-
 .../data/dao/interfaces/CheckListDao.java     |  5 +-
 .../data/dao/jpa/CheckListDaoJPAImp.java      | 26 ++++++-
 .../dsv/scipro/data/dataobjects/Project.java  | 22 +++++-
 .../dsv/scipro/data/enums/CheckListRole.java  |  7 ++
 .../project/pages/ProjectChecklistPage.java   |  7 +-
 .../project/pages/ProjectPartnerPage.html     |  1 -
 .../project/pages/ProjectPartnerPage.java     | 12 +++-
 src/main/resources/applicationContext.xml     |  4 ++
 14 files changed, 229 insertions(+), 17 deletions(-)
 create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java
 create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java
 create mode 100644 src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java

diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html
index 27c3803811..815340b389 100644
--- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.html
@@ -6,7 +6,21 @@
 </head>
 <body>
 	<wicket:extend>
-			<div wicket:id="cCLPanel"></div>
+	
+	<div class="span-22 last">
+	<!-- Left column -->
+		<div class="span-10 colborder">
+			<div class="span-10 last">
+				<div wicket:id="cCLPanel"></div>
+				</div>
+		</div>
+		<!-- Right column -->
+		<div class="span-10 last">
+			<div class="span-10 last">
+			<div wicket:id="listCLPanel"></div>
+			</div>
+		</div>
+	</div>
 	</wicket:extend>
 
 </body>
diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java
index f9d2db1f21..0148b8c6f4 100644
--- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java
@@ -9,6 +9,7 @@ import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import se.su.dsv.scipro.checklists.panels.CreateCheckListTemplatePanel;
+import se.su.dsv.scipro.checklists.panels.ListCheckListTemplatePanel;
 import se.su.dsv.scipro.data.dao.interfaces.GeneralSystemSettingsDao;
 import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings;
 import se.su.dsv.scipro.project.panels.ProjectPartnerPanel;
@@ -29,6 +30,7 @@ public class AdminCheckListPage extends AbstractAdminPage {
 	public AdminCheckListPage(PageParameters pp) {
 		super(pp);
 		add(new CreateCheckListTemplatePanel("cCLPanel"));
+		add(new ListCheckListTemplatePanel("listCLPanel"));
 	}
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
index f100f19bd9..5e72d75a4d 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/CreateCheckListTemplatePanel.java
@@ -133,7 +133,6 @@ public class CreateCheckListTemplatePanel extends Panel {
 				question  = "";
 				target.addComponent(questionField);
 				target.addComponent(container);
-				System.out.println("mooooo");
 				
 			}
 		};
@@ -145,7 +144,6 @@ public class CreateCheckListTemplatePanel extends Panel {
 		form.add(addQuestionForm);
 		form.add(save);
 		add(form);
-		//add(addQuestionLink);
 
 	};
 
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java
new file mode 100644
index 0000000000..38bc18914f
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListPanel.java
@@ -0,0 +1,66 @@
+package se.su.dsv.scipro.checklists.panels;
+
+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 se.su.dsv.scipro.data.dao.interfaces.CheckListDao;
+import se.su.dsv.scipro.data.dataobjects.CheckList;
+import se.su.dsv.scipro.data.dataobjects.Project;
+import se.su.dsv.scipro.data.enums.CheckListRole;
+
+/**
+ * @author Fredrik Norberg fnorbe@dsv.su.se
+ * 
+ */
+
+public class ListCheckListPanel extends Panel {
+	
+	private List<CheckList> checkLists;
+	private CheckListRole role;
+	private CheckListDao checkListDao;
+	private Project project;
+	
+
+	private static final long serialVersionUID = 1L;
+
+	public ListCheckListPanel(String id, CheckListRole role, final Project project) {
+		super(id);
+		this.role = role;
+		checkLists = checkListDao.findCheckLists(project, role);
+		
+		IModel<List<CheckList>> checkListModel = new LoadableDetachableModel<List<CheckList>>() {
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected List<CheckList> load() {
+				return project.getCheckLists();
+				
+			}
+		};
+		
+		final WebMarkupContainer container = new WebMarkupContainer("container");
+		container.setOutputMarkupId(true);
+		ListView<CheckList> checkLists = new ListView<CheckList>("checkLists", checkListModel) {
+
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void populateItem(ListItem<CheckList> item) {
+				Label listName = new Label("listName", item.getModel().getObject().getName());
+				item.add(listName);
+				
+			}
+		};
+		
+		container.add(checkLists);
+	}
+
+}
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java
new file mode 100644
index 0000000000..268c615bad
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java
@@ -0,0 +1,67 @@
+package se.su.dsv.scipro.checklists.panels;
+
+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.model.PropertyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import se.su.dsv.scipro.data.dao.interfaces.CheckListTemplateDao;
+import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
+
+
+/**
+ * @author Fredrik Norberg - fnorbe@dsv.su.se
+ *
+ */
+
+public class ListCheckListTemplatePanel extends Panel{
+	
+	@SpringBean
+	private CheckListTemplateDao checkListTemplateDao;
+	
+	private static final long serialVersionUID = 1L;
+	
+	public ListCheckListTemplatePanel(String id) {
+		super(id);
+	
+	IModel<List<CheckListTemplate>> checkListTemplateModel = new LoadableDetachableModel<List<CheckListTemplate>>() {
+
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected List<CheckListTemplate> load() {
+			return checkListTemplateDao.findAll();
+			
+		}
+	};
+	
+	
+	final WebMarkupContainer container = new WebMarkupContainer("container");
+	container.setOutputMarkupId(true);
+	ListView<CheckListTemplate> checkListTemplates = new ListView<CheckListTemplate>("checkListTemplates", checkListTemplateModel) {
+
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected void populateItem(ListItem<CheckListTemplate> item) {
+			Label templateName = new Label("templateName", new PropertyModel<String>(item.getModel(),"name"));
+			Label templateOwner = new Label("templateOwner", new PropertyModel<String>(item.getModel(), "owner"));
+			item.add(templateName);
+			item.add(templateOwner);
+			
+		}
+	};
+	
+	container.add(checkListTemplates);
+	}
+
+}
+
+
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java
index 3dab763499..777a44d6a7 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ViewCheckListPanel.java
@@ -40,7 +40,7 @@ public class ViewCheckListPanel extends Panel {
 	public ViewCheckListPanel(String id){
 		super(id);
 
-		List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get()
+	/*	List<CheckList> checkLists = checkListDao.findCheckLists(SciProSession.get()
 				.getActiveProject());{
 		if (checkLists.size() < 1) {
 			CheckList checkList = new CheckList("Test", SciProSession.get().getActiveProject());
@@ -48,13 +48,12 @@ public class ViewCheckListPanel extends Panel {
 			checkListQuestion = checkListQuestionDao.save(checkListQuestion);
 			checkList.getQuestions().add(checkListQuestion);
 			checkList = checkListDao.save(checkList);
+			
 		}
 	
 		ListView<CheckList> checkListsListView = new ListView<CheckList>("checkLists", checkLists) {
 	
-			/**
-			 * 
-			 */
+		
 			private static final long serialVersionUID = 1L;
 	
 			@Override
@@ -104,7 +103,7 @@ public class ViewCheckListPanel extends Panel {
 		};
 	
 		add(checkListsListView);
-	};
+	};*/
 	
 	}
 }
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java
index 4c5058033e..4e0117545c 100644
--- a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java
+++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/CheckListDao.java
@@ -4,8 +4,11 @@ import java.util.List;
 
 import se.su.dsv.scipro.data.dataobjects.CheckList;
 import se.su.dsv.scipro.data.dataobjects.Project;
+import se.su.dsv.scipro.data.enums.CheckListRole;
 
 public interface CheckListDao extends Dao<CheckList> {
 
-	public List<CheckList> findCheckLists(final Project project);
+	public List<CheckList> findCheckLists(final Project project, CheckListRole role);
+	//use this if a dataview is necesary
+	//public int countCheckLists (final CheckList cl, Project project);
 }
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java b/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java
index 94994e3311..7241462343 100644
--- a/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java
+++ b/src/main/java/se/su/dsv/scipro/data/dao/jpa/CheckListDaoJPAImp.java
@@ -1,6 +1,7 @@
 package se.su.dsv.scipro.data.dao.jpa;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -9,12 +10,16 @@ import javax.persistence.PersistenceException;
 import javax.persistence.TypedQuery;
 
 import org.hibernate.ejb.QueryHints;
+import org.joda.time.DateTime;
 import org.springframework.orm.jpa.JpaCallback;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 
 import se.su.dsv.scipro.data.dao.interfaces.CheckListDao;
 import se.su.dsv.scipro.data.dataobjects.CheckList;
 import se.su.dsv.scipro.data.dataobjects.Project;
+import se.su.dsv.scipro.data.dataobjects.ProjectClass;
+import se.su.dsv.scipro.data.enums.CheckListRole;
 
 /**
  * 
@@ -29,7 +34,7 @@ public class CheckListDaoJPAImp extends AbstractDaoJPAImp<CheckList> implements
 		super(CheckList.class);
 	}
 
-	public List<CheckList> findCheckLists(final Project project) {
+	public List<CheckList> findCheckLists(final Project project, CheckListRole role) {
 		return getJpaTemplate().execute(new JpaCallback<List<CheckList>>() {
 			public List<CheckList> doInJpa(EntityManager em) throws PersistenceException {
 				String q = "select s " + "from CheckList s " + "where s.project = :project";
@@ -47,4 +52,23 @@ public class CheckListDaoJPAImp extends AbstractDaoJPAImp<CheckList> implements
 
 		});
 	}
+	//use this if a dataview is necesary
+	/*@Override
+	@Transactional(readOnly = true)
+	public int countCheckLists(final CheckList cl,final  Project project) {
+		return getJpaTemplate().execute(new JpaCallback<Integer>() {
+
+			@Override
+			public Integer doInJpa(EntityManager em)
+					throws PersistenceException {
+		String q = "SELECT COUNT(cl) from CheckList cl WHERE cl.project = :p" ;
+		TypedQuery<Long> query = em.createQuery(q,
+				Long.class);
+		query.setHint(QueryHints.HINT_CACHEABLE, "true");
+		query.setParameter("p", project);
+		
+		return (query.getSingleResult()).intValue();
+			}
+		});
+	}*/
 }
diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java
index 455ff5a680..a97b96ccfa 100644
--- a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java
+++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java
@@ -1,6 +1,8 @@
 package se.su.dsv.scipro.data.dataobjects;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
@@ -41,6 +43,7 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz
 	private static final long serialVersionUID = 9071570648984376188L;
 	
 	public static final String PP_PROJECT_ID = "pid";
+	
 
 	@Id
 	@GeneratedValue
@@ -82,6 +85,10 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz
 	private String statusMessage = "";
 	
 	private Date daisyStartDate;
+	
+	@OneToMany(targetEntity=CheckList.class, cascade=CascadeType.ALL, orphanRemoval=true)
+	@Sort(type=SortType.NATURAL) //Required by hibernate
+	private List<CheckList> checkLists = new ArrayList<CheckList>();
 
 	public Project() {}
 
@@ -208,6 +215,18 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz
 	public void setStatusMessage(String statusMessage) {
 		this.statusMessage = statusMessage;
 	}
+	
+	public List<CheckList> getCheckLists() {
+		return checkLists;
+	}
+
+	public void setCheckLists(List<CheckList> checkLists) {
+		this.checkLists = checkLists;
+	}
+	
+	public void addCheckList(CheckList cl){
+		checkLists.add(cl);
+	}
 
 	@Override
 	public int hashCode() {
@@ -268,6 +287,5 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz
 	final public String getCommentKey() {
 		return Project.class.getCanonicalName().toString();
 	}
-	
-	
+
 }
diff --git a/src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java b/src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java
new file mode 100644
index 0000000000..06cbbf71bf
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/data/enums/CheckListRole.java
@@ -0,0 +1,7 @@
+package se.su.dsv.scipro.data.enums;
+
+public enum CheckListRole {
+	AUTHOR,
+	SUPERVISOR,
+	ADMIN
+}
diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java b/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java
index ad39c2dbc3..8fbc7f753c 100644
--- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java
+++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectChecklistPage.java
@@ -2,6 +2,9 @@ package se.su.dsv.scipro.project.pages;
 
 import org.apache.wicket.PageParameters;
 
+import se.su.dsv.scipro.SciProSession;
+import se.su.dsv.scipro.checklists.panels.ListCheckListPanel;
+import se.su.dsv.scipro.data.enums.CheckListRole;
 import se.su.dsv.scipro.security.auth.Authorization;
 import se.su.dsv.scipro.security.auth.roles.Roles;
 
@@ -10,11 +13,13 @@ import se.su.dsv.scipro.security.auth.roles.Roles;
  * 
  */
 
-@Authorization(authorizedRoles={Roles.SYSADMIN}) //TODO Hidden for initial deployment
+@Authorization(authorizedRoles={Roles.SYSADMIN}) 
 public class ProjectChecklistPage extends ProjectPage {
 
 	public ProjectChecklistPage(PageParameters pp) {
 		super(pp);
+		add(new ListCheckListPanel("listCheckListPanel", CheckListRole.AUTHOR,
+				SciProSession.get().getActiveProject()));
 		//add(new TrafficLightPanel("trafficLightPanel"));
 		//add(new CreateCheckListTemplatePanel("createCheckList"));
 	}
diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html
index 2195675938..5ac372575a 100644
--- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html
+++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.html
@@ -7,7 +7,6 @@
 	<div class="span-22 last">
 	<div wicket:id=feedback></div>
 	<!-- Left column -->
-	
 		<div class="span-10 colborder">
 			<div class="span-10 last">
 				<h5 class="peer-title">Look for project partner</h5>
diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java
index 2f738710b4..83ffa48803 100644
--- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java
+++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPartnerPage.java
@@ -59,7 +59,6 @@ public class ProjectPartnerPage extends ProjectPage {
 	
 	private DataView<ProjectPartner> dataView;
 	private WebMarkupContainer wmc;
-	private IModel<List<ProjectPartner>> listModel;
 	
 	private RadioChoice<ProjectClass> degreeChoice;
 	private RadioChoice<ProjectClass> showChoice;
@@ -76,7 +75,7 @@ public class ProjectPartnerPage extends ProjectPage {
 			
 			settings = generalSystemSettingsDao.getGeneralSystemSettingsInstance();
 			choices = new ArrayList<ProjectClass>();
-			days = settings.getProjectPartnerDaysToLive();
+			setDays(settings.getProjectPartnerDaysToLive());
 			ProjectClass bachelor = projectClassDao.getProjectClass(ProjectClass.BACHELOR);
 			choices.add(bachelor);
 			choices.add(projectClassDao.getProjectClass(ProjectClass.MASTER));
@@ -142,7 +141,6 @@ public class ProjectPartnerPage extends ProjectPage {
 		
 		private void loadListView(ProjectPartnerDataProvider projectPartnerDataProvider){
 			dataView = new DataView<ProjectPartner>("list", projectPartnerDataProvider, 5 ){
-			//wmc.add(new ListView<ProjectPartner>("list", new PropertyModel<List<ProjectPartner>>(this, "ProjectPartnerDao.getProjectPartner")){
 			
 			
 				
@@ -160,5 +158,13 @@ public class ProjectPartnerPage extends ProjectPage {
 				}
 			};	
 		}
+
+		public int getDays() {
+			return days;
+		}
+
+		public void setDays(int days) {
+			this.days = days;
+		}
 	}
 
diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml
index 78cb9aa86b..14ed77e032 100644
--- a/src/main/resources/applicationContext.xml
+++ b/src/main/resources/applicationContext.xml
@@ -38,6 +38,10 @@
 	"projectClassDao"
 	"projectScheduleDao"
 	"projectFollowerDao"
+	"checkListDao"
+	"checkListQuestion"
+	"checkListTemplate"
+	"checkListAnswer"
 	"stringResourceDao"
 	"fileDescriptionDao"
 	"projectEventTemplateDao"

From 19a80d3935fb42f9a3a701f37f7b9d186e577076 Mon Sep 17 00:00:00 2001
From: Fredrik Norberg <fnorbe@dsv.su.se>
Date: Tue, 2 Aug 2011 15:42:38 +0200
Subject: [PATCH 5/5] added ListCheckListTemplatePanel

---
 .../panels/ListCheckListTemplatePanel.html      | 17 +++++++++++++++++
 .../panels/ListCheckListTemplatePanel.java      |  5 +++--
 2 files changed, 20 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html

diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html
new file mode 100644
index 0000000000..acdf122fe6
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html
+	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<head>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+</head>
+<body>
+	<wicket:panel>		
+		<div wicket:id="container">
+			<div wicket:id="checkListTemplates">
+				<div wicket:id="templateName"></div>
+				<div wicket:id="templateOwner"></div>
+			</div>
+		</div>
+	</wicket:panel>
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java
index 268c615bad..840ead4a8c 100644
--- a/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java
+++ b/src/main/java/se/su/dsv/scipro/checklists/panels/ListCheckListTemplatePanel.java
@@ -52,7 +52,7 @@ public class ListCheckListTemplatePanel extends Panel{
 		@Override
 		protected void populateItem(ListItem<CheckListTemplate> item) {
 			Label templateName = new Label("templateName", new PropertyModel<String>(item.getModel(),"name"));
-			Label templateOwner = new Label("templateOwner", new PropertyModel<String>(item.getModel(), "owner"));
+			Label templateOwner = new Label("templateOwner", new PropertyModel<String>(item.getModel(), "creator"));
 			item.add(templateName);
 			item.add(templateOwner);
 			
@@ -60,8 +60,9 @@ public class ListCheckListTemplatePanel extends Panel{
 	};
 	
 	container.add(checkListTemplates);
-	}
+	add(container);
 
+	}	
 }