Skip to content
Snippets Groups Projects
Commit a7441968 authored by uhensler's avatar uhensler
Browse files

OO-3304: RS if data collection topic is in invisible organisation

parent b19c054e
No related branches found
No related tags found
No related merge requests found
......@@ -98,7 +98,10 @@ public class QualityDataCollectionDAO {
if (dataCollectionRef == null || dataCollectionRef.getKey() == null) return null;
StringBuilder sb = new StringBuilder(256);
sb.append("select collection from qualitydatacollection as collection");
sb.append("select collection");
sb.append(" from qualitydatacollection as collection");
sb.append(" left join fetch collection.topicIdentity");
sb.append(" left join fetch collection.topicOrganisation");
sb.append(" where collection.key=:collectionKey");
List<QualityDataCollection> dataCollections = dbInstance.getCurrentEntityManager()
......
......@@ -275,12 +275,9 @@ public class DataCollectionConfigurationController extends AbstractDataCollectio
case ORGANISATION:
List<Organisation> organisations = organisationService.getOrganisations(getIdentity(),
OrganisationRoles.administrator, OrganisationRoles.qualitymanager);
if (topicOrganisation != null && !organisations.contains(topicOrganisation)) {
organisations.add(topicOrganisation);
}
OrganisationTreeModel organisationModel = new OrganisationTreeModel();
organisationModel.loadTreeModel(organisations);
KeysValues organistionKeysValues = QualityUIFactory.getTopicOrganisationKeysValues(organisationModel);
KeysValues organistionKeysValues = QualityUIFactory.getTopicOrganisationKeysValues(organisationModel, topicOrganisation);
topicOrganisationEl.setKeysAndValues(organistionKeysValues.getKeys(), organistionKeysValues.getValues(), null);
if (topicOrganisation != null) {
topicOrganisationEl.select(QualityUIFactory.getTopicOrganisationKey(topicOrganisation), true);
......@@ -293,10 +290,7 @@ public class DataCollectionConfigurationController extends AbstractDataCollectio
params.setOrganisations(QualityUIFactory.getSelectedOrganisationRefs(organisationsEl));
}
List<Curriculum> curriculums = curriculumService.getCurriculums(params);
if (topicCurriculum != null && !curriculums.contains(topicCurriculum)) {
curriculums.add(topicCurriculum);
}
KeysValues curriculumKeysValues = QualityUIFactory.getCurriculumKeysValues(curriculums);
KeysValues curriculumKeysValues = QualityUIFactory.getCurriculumKeysValues(curriculums, topicCurriculum);
topicCurriculumEl.setKeysAndValues(curriculumKeysValues.getKeys(), curriculumKeysValues.getValues(), null);
if (topicCurriculum != null) {
topicCurriculumEl.select(QualityUIFactory.getCurriculumKey(topicCurriculum), true);
......@@ -309,19 +303,14 @@ public class DataCollectionConfigurationController extends AbstractDataCollectio
params2.setOrganisations(QualityUIFactory.getSelectedOrganisationRefs(organisationsEl));
}
List<Curriculum> curriculums2 = curriculumService.getCurriculums(params2);
if (topicCurriculum != null && !curriculums2.contains(topicCurriculum)) {
curriculums2.add(topicCurriculum);
}
KeysValues curriculumKeysValues2 = QualityUIFactory.getCurriculumKeysValues(curriculums2);
KeysValues curriculumKeysValues2 = QualityUIFactory.getCurriculumKeysValues(curriculums2, topicCurriculum);
topicCurriculumEl.setKeysAndValues(curriculumKeysValues2.getKeys(), curriculumKeysValues2.getValues(), null);
if (topicCurriculum != null) {
topicCurriculumEl.select(QualityUIFactory.getCurriculumKey(topicCurriculum), true);
}
if (topicCurriculum != null) {
List<CurriculumElement> curriculumElements = curriculumService.getCurriculumElements(topicCurriculum, CurriculumElementStatus.values());
CurriculumTreeModel curriculumTreeModel = new CurriculumTreeModel();
curriculumTreeModel.loadTreeModel(curriculumElements);
KeysValues curriculumElementKeysValues = QualityUIFactory.getCurriculumElementKeysValues(curriculumTreeModel);
KeysValues curriculumElementKeysValues = QualityUIFactory.getCurriculumElementKeysValues(curriculumTreeModel, topicCurriculumElement);
topicCurriculumElementEl.setKeysAndValues(curriculumElementKeysValues.getKeys(), curriculumElementKeysValues.getValues(), null);
if (topicCurriculumElement != null) {
topicCurriculumElementEl.select(QualityUIFactory.getCurriculumElementKey(topicCurriculumElement), true);
......
......@@ -128,13 +128,17 @@ public class QualityUIFactory {
|| CoreSpringFactory.getImpl(CurriculumModule.class).isEnabled();
}
public static KeysValues getCurriculumKeysValues(List<Curriculum> curriculums) {
String[] keys = curriculums.stream()
public static KeysValues getCurriculumKeysValues(List<Curriculum> curriculums, Curriculum current) {
List<Curriculum> curriculumsCopy = new ArrayList<>(curriculums);
if (current != null && !curriculumsCopy.contains(current)) {
curriculumsCopy.add(0, current);
}
String[] keys = curriculumsCopy.stream()
.sorted(DISPLAY_NAME_COMPARATOR)
.map(Curriculum::getKey)
.map(String::valueOf)
.toArray(String[]::new);
String[] values = curriculums.stream()
String[] values = curriculumsCopy.stream()
.sorted(DISPLAY_NAME_COMPARATOR)
.map(Curriculum::getDisplayName)
.toArray(String[]::new);
......@@ -163,9 +167,12 @@ public class QualityUIFactory {
return null;
}
public static KeysValues getCurriculumElementKeysValues(CurriculumTreeModel curriculumTreeModel) {
public static KeysValues getCurriculumElementKeysValues(CurriculumTreeModel curriculumTreeModel, CurriculumElement current) {
List<CurriculumElement> elements = new ArrayList<>();
curriculumElementTreeToList(elements, curriculumTreeModel.getRootNode());
if (current != null && !elements.contains(current)) {
elements.add(0, current);
}
String[] keys = new String[elements.size()];
String[] values = new String[elements.size()];
for (int i = elements.size(); i-->0; ) {
......@@ -221,9 +228,12 @@ public class QualityUIFactory {
return null;
}
public static KeysValues getTopicOrganisationKeysValues(OrganisationTreeModel organisationModel) {
public static KeysValues getTopicOrganisationKeysValues(OrganisationTreeModel organisationModel, Organisation current) {
List<Organisation> organisations = new ArrayList<>();
organsiationTreeToList(organisations, organisationModel.getRootNode());
if (current != null && !organisations.contains(current)) {
organisations.add(0, current);
}
String[] keys = new String[organisations.size()];
String[] values = new String[organisations.size()];
for (int i = organisations.size(); i-->0; ) {
......
......@@ -89,7 +89,7 @@ public class AddCurriculumElementUserSelectionController extends StepFormBasicCo
CurriculumSearchParameters params = new CurriculumSearchParameters();
params.setOrganisations(organisationRefs);
List<Curriculum> curriculums = curriculumService.getCurriculums(params);
KeysValues curriculumKeysValues = QualityUIFactory.getCurriculumKeysValues(curriculums);
KeysValues curriculumKeysValues = QualityUIFactory.getCurriculumKeysValues(curriculums, null);
curriculumEl = uifactory.addDropdownSingleselect("participation.user.curele.add.choose.curriculum", formLayout,
curriculumKeysValues.getKeys(), curriculumKeysValues.getValues());
curriculumEl.addActionListener(FormEvent.ONCHANGE);
......@@ -108,7 +108,7 @@ public class AddCurriculumElementUserSelectionController extends StepFormBasicCo
List<CurriculumElement> curriculumElements = curriculumService.getCurriculumElements(curriculum, CurriculumElementStatus.notDeleted());
CurriculumTreeModel curriculumTreeModel = new CurriculumTreeModel();
curriculumTreeModel.loadTreeModel(curriculumElements);
KeysValues curriculumElementKeysValues = QualityUIFactory.getCurriculumElementKeysValues(curriculumTreeModel);
KeysValues curriculumElementKeysValues = QualityUIFactory.getCurriculumElementKeysValues(curriculumTreeModel, null);
curriculumElementEl.setKeysAndValues(curriculumElementKeysValues.getKeys(), curriculumElementKeysValues.getValues(), null);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment