From e08a0b21c6d8519cf385d20aab64f50e67ce010b Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 23 Feb 2016 10:01:53 +0100
Subject: [PATCH] OO-1906: check if the question type already exists in the
 validate method, wording

---
 .../olat/modules/qpool/ui/admin/PoolsAdminController.java   | 3 ++-
 .../modules/qpool/ui/admin/QItemTypeEditController.java     | 6 ++++++
 .../modules/qpool/ui/admin/_i18n/LocalStrings_de.properties | 1 +
 .../modules/qpool/ui/admin/_i18n/LocalStrings_en.properties | 1 +
 .../modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties | 1 +
 5 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/PoolsAdminController.java b/src/main/java/org/olat/modules/qpool/ui/admin/PoolsAdminController.java
index 7449b12bf5b..3a62b20af43 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/PoolsAdminController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/PoolsAdminController.java
@@ -213,8 +213,9 @@ public class PoolsAdminController extends FormBasicController {
 		poolEditCtrl = new PoolEditController(ureq, getWindowControl(), pool);
 		listenTo(poolEditCtrl);
 		
+		String title = pool == null ? translate("create.pool") : translate("edit.pool");
 		cmc = new CloseableModalController(getWindowControl(), translate("close"),
-				poolEditCtrl.getInitialComponent(), true, translate("edit.pool"));
+				poolEditCtrl.getInitialComponent(), true, title);
 		cmc.activate();
 		listenTo(cmc);	
 	}
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/QItemTypeEditController.java b/src/main/java/org/olat/modules/qpool/ui/admin/QItemTypeEditController.java
index f6b6b7d406e..eef174108d8 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/QItemTypeEditController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/QItemTypeEditController.java
@@ -81,6 +81,12 @@ public class QItemTypeEditController extends FormBasicController {
 		if(!StringHelper.containsNonWhitespace(nameEl.getValue())) {
 			nameEl.setErrorKey("form.mandatory.hover", null);
 			allOk = false;
+		} else if(itemType == null) {
+			QItemType type = qpoolService.getItemType(nameEl.getValue());
+			if(type != null) {
+				nameEl.setErrorKey("error.item.type.unique", null);
+				allOk = false;
+			}
 		}
 
 		return allOk && super.validateFormLogic(ureq);
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties
index a860cc1194d..3b5c81be41a 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties
@@ -19,6 +19,7 @@ delete.type.confirm=Wollen Sie wirklich diesen Typ l\u00F6schen?
 edit.taxonomyLevel=Fachbereich bearbeiten
 educational.context.deleted=Fachbereich wurde erfolgreich gel\u00F6scht
 educational.context.notdeleted=Fachbereich konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
+error.item.type.unique=Ein Fragetyp mit diesem Name existiert schon.
 item.type.deleted=Fragetyp wurde erfolgreich gel\u00F6scht
 item.type.notdeleted=Fragetyp konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
 level.key=ID
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties
index a40d30fa6fd..c0fa43e907e 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties
@@ -19,6 +19,7 @@ delete.type.confirm=Do you really want to delete this type?
 edit.taxonomyLevel=Edit subject
 educational.context.deleted=Subject has been successfully deleted.
 educational.context.notdeleted=Subject cannot be deleted, it is probably in use.
+error.item.type.unique=A question type with this name already exists.
 item.type.deleted=Type has been successfully deleted.
 item.type.notdeleted=Type cannot be deleted, it is probably in use.
 level.key=ID
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties
index bff10ec9598..de1ac666df0 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties
@@ -19,6 +19,7 @@ delete.type.confirm=Voulez-vous vraiment effacer ce type?
 edit.taxonomyLevel=Editer le sujet
 educational.context.deleted=Le sujet a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
 educational.context.notdeleted=Le sujet n'a pas pu \u00EAtre effac\u00E9, il est probablement utilis\u00E9.
+error.item.type.unique=Un type de question avec ce nom existe déjà.
 item.type.deleted=Le type a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
 item.type.notdeleted=Le type n'a pas pu \u00EAtre effac\u00E9 avec succ\u00E8s, il est probablement encore utilis\u00E9.
 level.key=ID
-- 
GitLab