diff --git a/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java b/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java index d9950048b27a6aa502172e8fb9a1088d02287241..dd2498f33600a8e4cf6d2458b3d19a2ab15bd271 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java @@ -203,24 +203,28 @@ public class IdentityCompetencesController extends FormBasicController implement } private void doAddTaxonomyLevelsAsCompetence(TaxonomyLevel selectedLevel, TaxonomyCompetenceTypes competenceType) { - boolean found = false; - List<TaxonomyCompetence> currentCompetences = taxonomyService.getTaxonomyCompetences(assessedIdentity, competenceType); - for(TaxonomyCompetence currentCompetence:currentCompetences) { - if(selectedLevel.equals(currentCompetence.getTaxonomyLevel())) { - found = true; + if(selectedLevel == null) { + showWarning("warning.atleastone.level.competence"); + } else { + boolean found = false; + List<TaxonomyCompetence> currentCompetences = taxonomyService.getTaxonomyCompetences(assessedIdentity, competenceType); + for(TaxonomyCompetence currentCompetence:currentCompetences) { + if(selectedLevel.equals(currentCompetence.getTaxonomyLevel())) { + found = true; + } } + + if(!found) { + TaxonomyLevel taxonomyLevel = taxonomyService.getTaxonomyLevel(selectedLevel); + Taxonomy taxonomy = taxonomyLevel.getTaxonomy(); + TaxonomyCompetence competence = taxonomyService.addTaxonomyLevelCompetences(taxonomyLevel, assessedIdentity, competenceType, null); + String after = taxonomyService.toAuditXml(competence); + taxonomyService.auditLog(TaxonomyCompetenceAuditLog.Action.addCompetence, null, after, null, taxonomy, competence, assessedIdentity, getIdentity()); + } + + loadModel(); + tableEl.reset(true, true, true); } - - if(!found) { - TaxonomyLevel taxonomyLevel = taxonomyService.getTaxonomyLevel(selectedLevel); - Taxonomy taxonomy = taxonomyLevel.getTaxonomy(); - TaxonomyCompetence competence = taxonomyService.addTaxonomyLevelCompetences(taxonomyLevel, assessedIdentity, competenceType, null); - String after = taxonomyService.toAuditXml(competence); - taxonomyService.auditLog(TaxonomyCompetenceAuditLog.Action.addCompetence, null, after, null, taxonomy, competence, assessedIdentity, getIdentity()); - } - - loadModel(); - tableEl.reset(true, true, true); } private void doConfirmRemove(UserRequest ureq, IdentityCompetenceRow row) { diff --git a/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java b/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java index 8b6202a634c5945371492b08a0f7c106cca2aed9..885ce45261dc23482928f0b294ad347c268f08c5 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java @@ -73,6 +73,7 @@ public class SelectTaxonomyLevelController extends FormBasicController { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { taxonomyTreesModel = new GenericTreeModel(); taxonomyTreesEl = uifactory.addTreeMultiselect("taxonomy", null, formLayout, taxonomyTreesModel, this); + taxonomyTreesEl.setRootVisible(false); uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl()); uifactory.addFormSubmitButton("ok", formLayout); diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties index 66bb6dbbb99cd9b41188c797bc4d3229a345bd0d..99f760944e6cc20ce0d493be7dc925f2591426ce 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties @@ -130,5 +130,6 @@ teach=Dozieren tools=$\:table.header.actions type.taxonomy.level=Ebenentyp zuweisen warning.atleastone.level=Sie m\u00FCssen mindestens eine Ebene w\u00E4hlen dass Sie editieren d\u00FCrfen. +warning.atleastone.level.competence=Sie m\u00FCssen mindestens eine Ebene w\u00E4hlen. warning.delete.level=Die Ebene darf nicht gel\u00F6scht werden. Sie wird noch benutzt. warning.delete.level.type=Der Ebenentype wurde nicht gel\u00F6scht. Er ist noch benutzt. diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties index bed9a6afcc22748c414f04941a2f229640a9ea75..e48fce6efaa5801c924d074d236b3e1317694b27 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties @@ -129,5 +129,6 @@ teach=Teach tools=$\:table.header.actions type.taxonomy.level=Assign level type warning.atleastone.level=You must at least one taxonomy level you can edit. +warning.atleastone.level.competence=You must at least one taxonomy level. warning.delete.level=The level cannot be deleted because it is still in use. warning.delete.level.type=The level type "{0}" was not deleted because it is still in use.