diff --git a/src/main/java/org/olat/course/assessment/AssessmentHelper.java b/src/main/java/org/olat/course/assessment/AssessmentHelper.java
index 14aff5c5d15cb0016c88b6284a1810eaf7d5da3e..13efac1c7a948de6dc488f23a0665100cbda5fab 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentHelper.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentHelper.java
@@ -319,8 +319,7 @@ public class AssessmentHelper {
 		// - it is of an assessable course node type
 		boolean hasDisplayableValuesConfigured = false;
 		boolean hasDisplayableUserValues = false;
-		if ( (childrenData.size() > 0 || courseNode instanceof AssessableCourseNode) && !(courseNode instanceof ProjectBrokerCourseNode) ) {
-		  // TODO:cg 04.11.2010 ProjectBroker : no assessment-tool in V1.0 , remove projectbroker completely form assessment-tool gui
+		if (childrenData.size() > 0 || courseNode instanceof AssessableCourseNode) {
 			// Store node and user data in object array. This object array serves as data model for 
 			// the user assessment overview table
 			Map<String,Object> nodeData = new HashMap<String, Object>();
@@ -332,7 +331,10 @@ public class AssessmentHelper {
 			nodeData.put(KEY_TITLE_LONG, courseNode.getLongTitle());
 			nodeData.put(KEY_IDENTIFYER, courseNode.getIdent());
 			
-			if (courseNode instanceof AssessableCourseNode) {
+			if(courseNode instanceof ProjectBrokerCourseNode) {
+				//ProjectBroker : no assessment-tool in V1.0 , remove project broker completely form assessment-tool gui
+				nodeData.put(KEY_SELECTABLE, Boolean.FALSE);
+			} else if (courseNode instanceof AssessableCourseNode) {
 				AssessableCourseNode assessableCourseNode = (AssessableCourseNode) courseNode;
 				ScoreEvaluation scoreEvaluation = userCourseEnv.getScoreAccounting().getScoreEvaluation(courseNode);
 				// details 
diff --git a/src/main/java/org/olat/course/assessment/AssessmentMainController.java b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
index ee961a001dac87f3f3b8f04e6c10a16f6c0d7e6b..f85956c50ae6a0b141f1454aa6877798a9f2d5bd 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentMainController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
@@ -404,7 +404,6 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 				} else if (cmd.equals(CMD_USERFOCUS)) {
 					mode = MODE_USERFOCUS;
 					identitiesList = getAllAssessableIdentities();
-					//fxdiff FXOLAT-108: improve results table of tests
 					doUserChooseWithData(ureq, identitiesList, null, null);
 				} else if (cmd.equals(CMD_GROUPFOCUS)) {
 					mode = MODE_GROUPFOCUS;
@@ -1106,8 +1105,7 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 		}
 		
 		boolean hasDisplayableValuesConfigured = false;
-		if ( (childrenData.size() > 0 || courseNode instanceof AssessableCourseNode) && !(courseNode instanceof ProjectBrokerCourseNode) ) {
-			// TODO:cg 04.11.2010 ProjectBroker : no assessment-tool in V1.0 , remove projectbroker completely form assessment-tool gui			// Store node data in hash map. This hash map serves as data model for 
+		if (childrenData.size() > 0 || courseNode instanceof AssessableCourseNode) {
 			// the user assessment overview table. Leave user data empty since not used in
 			// this table. (use only node data)
 			NodeTableRow nodeData = new NodeTableRow(recursionLevel, courseNode);
@@ -1121,9 +1119,11 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 					nodeData.setOnyx(false);
 				}
 			}
-
 			
-			if (courseNode instanceof AssessableCourseNode) {
+			if(courseNode instanceof ProjectBrokerCourseNode) {
+				//ProjectBroker : no assessment-tool in V1.0 , remove project broker completely form assessment-tool gui
+				nodeData.setSelectable(false);
+			} else if (courseNode instanceof AssessableCourseNode) {
 				AssessableCourseNode assessableCourseNode = (AssessableCourseNode) courseNode;
 				if ( assessableCourseNode.hasDetails()
 					|| assessableCourseNode.hasAttemptsConfigured()
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java
index 80afc9276d1dcea021418ffd6ca1b6792aca98fb..7aa0b6976b6dc05aed387aa2ed0fc55bc1e4fb78 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java
@@ -34,7 +34,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
 
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
@@ -56,6 +55,7 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.id.Identity;
 import org.olat.core.id.UserConstants;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.vfs.LocalFileImpl;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.course.nodes.CourseNode;
@@ -68,6 +68,7 @@ import org.olat.course.nodes.projectbroker.service.ProjectBrokerModuleConfigurat
 import org.olat.course.nodes.projectbroker.service.ProjectGroupManager;
 import org.olat.course.run.environment.CourseEnvironment;
 import org.olat.resource.OLATResource;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -86,7 +87,7 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 	private RichTextElement projectDescription;
 	private IntegerElement maxMembers;
 	private StaticTextElement projectState;
-	FormLayoutContainer stateLayout;
+	private FormLayoutContainer stateLayout;
 	private FileElement attachmentFileName;
 
 	private TextElement projectLeaders;
@@ -111,9 +112,12 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 	private final static String[] values = new String[] { "" };
 	private static final int MAX_MEMBERS_DEFAULT = 1;
 
-	private final ProjectBrokerMailer projectBrokerMailer;
-	private final ProjectGroupManager projectGroupManager;
-	private final ProjectBrokerManager projectBrokerManager;
+	@Autowired
+	private ProjectBrokerMailer projectBrokerMailer;
+	@Autowired
+	private ProjectGroupManager projectGroupManager;
+	@Autowired
+	private ProjectBrokerManager projectBrokerManager;
 
 	/**
 	 * Modules selection form.
@@ -127,12 +131,9 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 		this.courseNode = courseNode;
 		this.projectBrokerModuleConfiguration = projectBrokerModuleConfiguration;
 		this.enableCancel = enableCancel;
-		projectBrokerMailer = CoreSpringFactory.getImpl(ProjectBrokerMailer.class);
-		projectGroupManager = CoreSpringFactory.getImpl(ProjectGroupManager.class);
-		projectBrokerManager = CoreSpringFactory.getImpl(ProjectBrokerManager.class);
-		customfieldElementList = new ArrayList<FormItem>();
-		eventStartElementList = new HashMap<Project.EventType, DateChooser>();
-		eventEndElementList = new HashMap<Project.EventType, DateChooser>();
+		customfieldElementList = new ArrayList<>();
+		eventStartElementList = new HashMap<>();
+		eventEndElementList = new HashMap<>();
 		initForm(ureq);
 	}
 
@@ -343,12 +344,13 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 			projectGroupManager.setProjectGroupMaxMembers(getIdentity(), project.getProjectGroup(), maxMembers.getIntValue());
 			projectChanged = true;
 		}			
-		if (attachmentFileName.getUploadFileName() != null && !attachmentFileName.getUploadFileName().equals("")) {
+		if (StringHelper.containsNonWhitespace(attachmentFileName.getUploadFileName())) {
 			// First call uploadFiles than setAttachedFileName because uploadFiles needs old attachment name 
 			uploadFiles(attachmentFileName);
 			project.setAttachedFileName(attachmentFileName.getUploadFileName());
 			projectChanged = true;
-		} else if (project.getAttachmentFileName() != null && !project.getAttachmentFileName().equals("")) {
+		} else if (StringHelper.containsNonWhitespace(project.getAttachmentFileName())
+				&& attachmentFileName.getInitialFile() == null) {
 			// Attachment file has been removed
 			project.setAttachedFileName("");
 			projectChanged = true;
@@ -396,7 +398,7 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 				projectBrokerManager.updateProject(project);
 				projectBrokerMailer.sendProjectChangedEmailToParticipants(ureq.getIdentity(), project, this.getTranslator());
 			} else {
-				this.showInfo("info.project.nolonger.exist", project.getTitle());
+				showInfo("info.project.nolonger.exist", project.getTitle());
 			}
 		}
 		fireEvent(ureq, Event.DONE_EVENT);
diff --git a/src/main/java/org/olat/modules/wiki/WikiMainController.java b/src/main/java/org/olat/modules/wiki/WikiMainController.java
index f7ff86a931290f198d4e15ccc0cdc0e5cf282839..4ac6f0846142640e225054b50dae30d5731bf8e8 100644
--- a/src/main/java/org/olat/modules/wiki/WikiMainController.java
+++ b/src/main/java/org/olat/modules/wiki/WikiMainController.java
@@ -1172,7 +1172,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 	}
 	
 	private void clearPortfolioLink(){
-		content.put("portfolio-link", new Panel("empty"));
+		navigationContent.put("portfolio-link", new Panel("empty"));
 	}
 	
 	private Wiki getWiki(){
diff --git a/src/main/java/org/olat/portfolio/ui/structel/edit/EPCollectRestrictionResultController.java b/src/main/java/org/olat/portfolio/ui/structel/edit/EPCollectRestrictionResultController.java
index 927989691261c0a53f39a0aac44a8adaa9593321..9c0321fb59baf27ef2a14af1ff196dec653a4686 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/edit/EPCollectRestrictionResultController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/edit/EPCollectRestrictionResultController.java
@@ -22,6 +22,7 @@ package org.olat.portfolio.ui.structel.edit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
@@ -49,11 +50,13 @@ import org.olat.portfolio.ui.filter.PortfolioFilterController;
 public class EPCollectRestrictionResultController extends BasicController {
 	
 	private final VelocityContainer mainVc;
+	private static final AtomicLong restrictionsCounter = new AtomicLong(1l);
 	
 	public EPCollectRestrictionResultController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 
 		mainVc = createVelocityContainer("restrictions_msg");
+		mainVc.contextPut("restrictionId", Long.toString(restrictionsCounter.getAndIncrement()));
 		putInitialPanel(mainVc);
 	}
 
diff --git a/src/main/java/org/olat/portfolio/ui/structel/edit/_content/restrictions_msg.html b/src/main/java/org/olat/portfolio/ui/structel/edit/_content/restrictions_msg.html
index 27870125841d08dfb7ebd5533c6b86909931ad96..af2db8790a2b5bc6aa4f7e2ff89125358f42e44f 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/edit/_content/restrictions_msg.html
+++ b/src/main/java/org/olat/portfolio/ui/structel/edit/_content/restrictions_msg.html
@@ -1,12 +1,12 @@
 #if($messages)
-<div class="panel-group" id="o_ep_restrictions">
+<div class="panel-group" id="o_ep_restrictions_$restrictionId">
 	<div class="panel #if($restrictionsPassed) panel-success #else panel-warning #end">
     	<div class="panel-heading">
       		<h4 class="panel-title">
-       			 <a data-toggle="collapse" data-parent="#o_ep_restrictions" href="#collapseMessages">$r.translate("collect.restriction")</a>
+       			 <a data-toggle="collapse" data-parent="#o_ep_restrictions_$restrictionId" href="#collapseMessages_$restrictionId">$r.translate("collect.restriction")</a>
       		</h4>
     	</div>
-		<div id="collapseMessages" class="panel-collapse collapse">
+		<div id="collapseMessages_$restrictionId" class="panel-collapse collapse">
 			<div class="panel-body">
 			#foreach($message in $messages)
 				<p>$message</p>