From 43c2e13dc3c16eeb729ef9a26bc2ef40a47f7384 Mon Sep 17 00:00:00 2001
From: Fredrik Norberg <fnorbe@dsv.su.se>
Date: Wed, 27 Jul 2011 17:20:13 +0200
Subject: [PATCH 1/2] added the 4th option to traffic lights

---
 .../checklists/panels/TrafficLightPanel.java     |   4 ++++
 .../se/su/dsv/scipro/data/enums/StateOfMind.java |   3 ++-
 src/main/webapp/images/icons/grey_ball_32.png    | Bin 0 -> 1081 bytes
 3 files changed, 6 insertions(+), 1 deletion(-)
 create mode 100644 src/main/webapp/images/icons/grey_ball_32.png

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 1aa44102c5..51082c7eb6 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
@@ -64,6 +64,10 @@ public class TrafficLightPanel extends Panel {
 					image = new StaticImage("image", new Model<String>(
 					"images/icons/yellow_ball_32.png"));
 				}
+				else if (stateOfMind.equals(StateOfMind.NOTAPLICABLE)) {
+					image = new StaticImage("image", new Model<String>(
+					"images/icons/grey_ball_32.png"));
+				}
 				item.add(image);
 			};
 		};
diff --git a/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java b/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java
index 85f0570407..67842eaf5b 100644
--- a/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java
+++ b/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java
@@ -10,7 +10,8 @@ package se.su.dsv.scipro.data.enums;
 public enum StateOfMind {
     NEEDHELP(0, "Need Help", "You think you need help to proceed or you are unsure of what to do next.", "som-needhelp"), 
     NEUTRAL(1, "Neutral", "This is the default option and signals that you don't have a clear standpoint on your status but no imminent help is needed.", "som-neutral"), 
-    FINE(2, "Everything is fine", "This means your work proceeds as planned and that no issues regarding the continuation are on the horizon.", "som-fine");
+    FINE(2, "Everything is fine", "This means your work proceeds as planned and that no issues regarding the continuation are on the horizon.", "som-fine"),
+    NOTAPLICABLE(3, "moo", "moo","som-moo");
 
     private int value;
     private String status;
diff --git a/src/main/webapp/images/icons/grey_ball_32.png b/src/main/webapp/images/icons/grey_ball_32.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9017f0aa57e508ee1854248ce8ab4877107c403
GIT binary patch
literal 1081
zcmV-91jhS`P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipf5
z4+;b6ue8qq00X&6L_t(o!_`;KYZOTo|8-4wM<<h=RmVvrhzHq=jE;<{5xj~2f=BTb
z7WV2vSlGKDd*6#kkNyvWcuI$`lMG%K7D9~UXf&u3GwH6b_E7b@s%vKQrJy!E>Z4!1
zkKe2Js>;LfIQF-&cJ>YcEMI>6__#8>!y2%#TECst1`j)1jSEOZhS*^U0R*vZ*1GG#
zR^|Tkl{Zhmi2=M@Ta3i~KiHk|kL23PPlEfKe?*O~N5?XNubityIMqXPx&o;u83R0K
zTKmf+Af;&mfB^{Jf8^Mnk6OLKp$%wvW*bZ1g${N?mMbp#hDbTnEh)?-kP1UIKOM_<
zw%%N7_PeewHb(jNC0ty~m6v=VJfX-B6$PQ0BML(EpXN$BYC9oY!o{_AXZHHO2=JA2
zmB>H;p`e@u+X&d9AOr|{8vzjmNv!%B2`)COb~p+fE0QxW$110mLg6vvoxKNAVR(d2
z6ORG$Q2pBpSrp8?1bV-Ygn)Nzi%9F$5#<EE3%flI9O&(Fpx2VYX}!w3wZ+j8{M$;f
zTlT?NQK{V?B?JV&-Nr-3bMmvm)s-MeU}3d>8@pvc_nv5+^25@kwE(bN_6Y?B0C8>b
zcOl&<#%}t#!fAXIBQ<Kn`rtus!0J}xe7<20E5zoda7^O0ozgXA?RE2v$$~wr;E*tT
zp*?oz0l?FH078k(B#>D~royz00V#mJzykorJF_<-U{Z!!&ndfK+lQk=0K7AM(}yn`
z#oB0jObhHWV`H*F2Qy<pD%E_(iY42X3jn@sFns6FhhW76LP|sSDd$O`1k-2QbDM|O
zNb6*DWfBhn2-am$v;Q<N$eE=ylf@(UYx{6?_(0U`KUJ!yVhItlLPevhR`QM4sov!f
zD!$o-N@ycM<5U#y3R6jz*MTdw?ndE2anE&^Y~i-xNxZg9jlku(&b!=z@ZI!ZxhLZm
zyJR1;sW7#EKck&X%856XKYyIV2mpAnaZl}RIqDIOMLa6lRbunF#z>VtJlME5{!X}Z
z=>zso|5CV$(V=5sNbGx|dm$m1$pPCy0GN9J5v>>1v3Ej_?RiYcDoCkNki|o_m|E(`
zL*uQ@XY&#dDW8rd$M*chOKH^V4cgiI4U~1NxbTyrgGe|b0)VnaJ6pfuUe8OoRzz}h
zZfBGC<7cme>RlwvQ=2Q*>60nS^F7ruPE=nCAWe(`GS$jO#_|8HsM&vhl!wV&gj4^0
zgNMn0WBa$L)qDMOJ<WcY$LT@n0Kh?B?)QBG3P9~LWaMsd00000NkvXXu0mjf3Bv$?

literal 0
HcmV?d00001


From 44c9b82b5aab7ab8c3058a0175574294e6d98080 Mon Sep 17 00:00:00 2001
From: Fredrik Norberg <fnorbe@dsv.su.se>
Date: Thu, 28 Jul 2011 15:53:56 +0200
Subject: [PATCH 2/2] changed trafficlightpanel to not use stateofmind

---
 .../admin/pages/AdminProjectPartnerPage.java  |  2 +-
 .../checklists/panels/TrafficLightPanel.html  | 45 ++++++++++++++----
 .../checklists/panels/TrafficLightPanel.java  | 46 +++++++++++--------
 .../su/dsv/scipro/data/enums/StateOfMind.java |  3 +-
 .../dsv/scipro/project/pages/ProjectPage.java |  1 +
 src/main/webapp/WEB-INF/web.xml               |  4 +-
 6 files changed, 68 insertions(+), 33 deletions(-)

diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminProjectPartnerPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminProjectPartnerPage.java
index cc47dc9a00..9913aa204e 100644
--- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminProjectPartnerPage.java
+++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminProjectPartnerPage.java
@@ -19,7 +19,7 @@ import se.su.dsv.scipro.security.auth.roles.Roles;
  *
  */
 
-@Authorization(authorizedRoles={Roles.SYSADMIN})
+@Authorization(authorizedRoles={Roles.SYSADMIN, Roles.ADMIN})
 public class AdminProjectPartnerPage extends AbstractAdminPage {
 	
 	@SpringBean
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 a235198823..5bc9e200e2 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
@@ -6,16 +6,41 @@
 </head>
 <body>
 	<wicket:panel>
-		<div wicket:id="stateOfMindContainer">
-			<form wicket:id="form">
-				<table wicket:id="group">
-					<tr wicket:id="persons">
+		<div wicket:id="trafficLightContainer">
+			<div wicket:id="group">
+				<div wicket:id="lights">
+				<table >
+					<tr >
 						<td><input type="radio" wicket:id="radio" /></td>
-						<td> <img wicket:id="image"/></td>
-					</tr> 
-				</table>
-			</form>
-		</div>
+						<td><img wicket:id="image"/></td>
+						</tr> 
+						<tr>
+							
+						</tr>
+					</table>
+					</div>
+				</div>
+			</div>
 	</wicket:panel>
 </body>
-</html>
\ No newline at end of file
+</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>
+	</wicket:panel>
+</body>
+</html> -->
\ No newline at end of file
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 51082c7eb6..35bc079230 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
@@ -1,5 +1,8 @@
 package se.su.dsv.scipro.checklists.panels;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -32,46 +35,53 @@ import edu.emory.mathcs.backport.java.util.Arrays;
  */
 
 public class TrafficLightPanel extends Panel {
-
+	
+	private List<TrafficLight> lights;
+	
+	enum TrafficLight{
+		GREEN, YELLOW, RED, NOT
+	}
 
 	private static final long serialVersionUID = 8862892008428526067L;
 
 
 	public TrafficLightPanel(String id, WebPage parent) {
 		super(id);
-		WebMarkupContainer stateOfMindContainer = new WebMarkupContainer(
-				"stateOfMindContainer");
-		add(stateOfMindContainer);
+		WebMarkupContainer trafficLightContainer = new WebMarkupContainer(
+				"trafficLightContainer");
+		add(trafficLightContainer);
+		lights = new ArrayList<TrafficLight>();
+		lights.add(TrafficLight.GREEN);lights.add(TrafficLight.YELLOW);lights.add(TrafficLight.RED);lights.add(TrafficLight.NOT);
+		RadioGroup<TrafficLight> group = new RadioGroup<TrafficLight>("group");
+		trafficLightContainer.add(group);
+		
 
-		Form<StateOfMind> f = new Form<StateOfMind>("form");
-		stateOfMindContainer.add(f);
-		RadioGroup<StateOfMind> group = new RadioGroup<StateOfMind>("group");
-		f.add(group);
+		ListView<TrafficLight> lightList = new ListView<TrafficLight>("lights", lights) {
+	
+			private static final long serialVersionUID = 1L;
 
-		ListView<StateOfMind> persons = new ListView<StateOfMind>("persons",
-				Arrays.asList(StateOfMind.values())) {
-			protected void populateItem(ListItem<StateOfMind> item) {
-				StateOfMind stateOfMind = item.getModelObject();
-				item.add(new Radio<StateOfMind>("radio", item.getModel()));
+			protected void populateItem(ListItem<TrafficLight> item) {
+				TrafficLight trafficLight = item.getModelObject();
+				item.add(new Radio<TrafficLight>("radio", item.getModel()));
 				StaticImage image = null;
-				if (stateOfMind.equals(StateOfMind.FINE)) {
+				if (trafficLight.equals(TrafficLight.GREEN)) {
 					image = new StaticImage("image", new Model<String>(
 							"images/icons/green_ball_32.png"));
-				} else if (stateOfMind.equals(StateOfMind.NEEDHELP)) {
+				} else if (trafficLight.equals(TrafficLight.YELLOW)) {
 					image = new StaticImage("image", new Model<String>(
 					"images/icons/red_ball_32.png"));
-				} else if (stateOfMind.equals(StateOfMind.NEUTRAL)) {
+				} else if (trafficLight.equals(TrafficLight.RED)) {
 					image = new StaticImage("image", new Model<String>(
 					"images/icons/yellow_ball_32.png"));
 				}
-				else if (stateOfMind.equals(StateOfMind.NOTAPLICABLE)) {
+				else if (trafficLight.equals(TrafficLight.NOT)) {
 					image = new StaticImage("image", new Model<String>(
 					"images/icons/grey_ball_32.png"));
 				}
 				item.add(image);
 			};
 		};
-		group.add(persons);
+		group.add(lightList);
 	}
 
 }
diff --git a/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java b/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java
index 67842eaf5b..85f0570407 100644
--- a/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java
+++ b/src/main/java/se/su/dsv/scipro/data/enums/StateOfMind.java
@@ -10,8 +10,7 @@ package se.su.dsv.scipro.data.enums;
 public enum StateOfMind {
     NEEDHELP(0, "Need Help", "You think you need help to proceed or you are unsure of what to do next.", "som-needhelp"), 
     NEUTRAL(1, "Neutral", "This is the default option and signals that you don't have a clear standpoint on your status but no imminent help is needed.", "som-neutral"), 
-    FINE(2, "Everything is fine", "This means your work proceeds as planned and that no issues regarding the continuation are on the horizon.", "som-fine"),
-    NOTAPLICABLE(3, "moo", "moo","som-moo");
+    FINE(2, "Everything is fine", "This means your work proceeds as planned and that no issues regarding the continuation are on the horizon.", "som-fine");
 
     private int value;
     private String status;
diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPage.java b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPage.java
index 9dacb4dea1..68ee7374f8 100644
--- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectPage.java
+++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectPage.java
@@ -27,6 +27,7 @@ public abstract class ProjectPage extends MenuPage implements FilePanelContainer
 	public ProjectPage(PageParameters pp)  {
 		
 		Project activeProject = SciProSession.get().getActiveProject();
+		User u = SciProSession.get().getUser();
 		
 		if(activeProject == null && (this.getClass() != NoActiveProjectPage.class && this.getClass() != ProjectPartnerPage.class)){
 			User user = SciProSession.get().getUser();
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 7ea6274a27..54e9218c03 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -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>