From 1d1cc060ac1c1314adb227520135618599a57af4 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Fri, 3 Jan 2020 09:16:09 +0100 Subject: [PATCH] OO-4428: make sure all sort key works in question pool table --- .../qpool/manager/QItemQueriesDAO.java | 1 + .../qpool/ui/AbstractItemListController.java | 2 +- .../qpool/ui/QuestionItemDataModel.java | 6 ++-- .../qpool/manager/QItemQueriesDAOTest.java | 31 +++++++++++++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java b/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java index e909b55ed3c..01070bbd402 100644 --- a/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java +++ b/src/main/java/org/olat/modules/qpool/manager/QItemQueriesDAO.java @@ -498,6 +498,7 @@ public class QItemQueriesDAO { sb.append(itemDbRef).append(".type.type "); appendAsc(sb, asc); break; + case "mark": case "marks": sb.append("marks"); appendAsc(sb, asc); diff --git a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java index dacf1d0100b..9aa36b2a0b1 100644 --- a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java +++ b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java @@ -188,7 +188,7 @@ public abstract class AbstractItemListController extends FormBasicController columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.lastModified)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.keywords)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.coverage)); - columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.additionalInfos)); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.additionalInformations)); if (getSecurityCallback().canUseTaxonomy()) { columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.taxonomyLevel)); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.taxonomyPath)); diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java index 7f3943518f5..d35e2c50d24 100644 --- a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java +++ b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java @@ -85,7 +85,7 @@ public class QuestionItemDataModel extends DefaultFlexiTableDataSourceModel<Item case topic: return item.getTopic(); case keywords: return item.getKeywords(); case coverage: return item.getCoverage(); - case additionalInfos: return item.getAdditionalInformations(); + case additionalInformations: return item.getAdditionalInformations(); case creationDate: return item.getCreationDate(); case lastModified: return item.getLastModified(); case taxonomyLevel: return item.getTaxonomyLevelName(); @@ -130,7 +130,7 @@ public class QuestionItemDataModel extends DefaultFlexiTableDataSourceModel<Item topic("general.topic"), keywords("general.keywords"), coverage("general.coverage"), - additionalInfos("general.additional.informations"), + additionalInformations("general.additional.informations"), creationDate("technical.creation"), lastModified("technical.lastModified"), taxonomyLevel("classification.taxonomy.level"), @@ -164,7 +164,7 @@ public class QuestionItemDataModel extends DefaultFlexiTableDataSourceModel<Item @Override public boolean sortable() { - return true; + return this != editable; } @Override diff --git a/src/test/java/org/olat/modules/qpool/manager/QItemQueriesDAOTest.java b/src/test/java/org/olat/modules/qpool/manager/QItemQueriesDAOTest.java index 565b59674d5..d546edd606a 100644 --- a/src/test/java/org/olat/modules/qpool/manager/QItemQueriesDAOTest.java +++ b/src/test/java/org/olat/modules/qpool/manager/QItemQueriesDAOTest.java @@ -55,6 +55,7 @@ import org.olat.modules.qpool.QuestionType; import org.olat.modules.qpool.model.QItemType; import org.olat.modules.qpool.model.QuestionItemImpl; import org.olat.modules.qpool.model.SearchQuestionItemParams; +import org.olat.modules.qpool.ui.QuestionItemDataModel; import org.olat.modules.taxonomy.Taxonomy; import org.olat.modules.taxonomy.TaxonomyCompetenceTypes; import org.olat.modules.taxonomy.TaxonomyLevel; @@ -234,6 +235,36 @@ public class QItemQueriesDAOTest extends OlatTestCase { } } + /** + * Check if all the queries works with the order by used + * by the main table in question pool. + */ + @Test + public void getItemsOfCollection_orderByColumns() { + //create a collection with 2 items + Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Coll-Onwer-3c-" + UUID.randomUUID().toString()); + QuestionItemCollection coll = collectionDao.createCollection("NGC collection 3c", id); + QuestionItem item = questionDao.createAndPersist(null, "NGC 92", QTIConstants.QTI_12_FORMAT, Locale.GERMAN.getLanguage(), null, null, null, qItemType); + collectionDao.addItemToCollection(item, singletonList(coll)); + dbInstance.commit();//check if it's alright + + SearchQuestionItemParams params = new SearchQuestionItemParams(id, null, Locale.ENGLISH); + params.setCollection(coll); + + //test order by + for(QuestionItemDataModel.Cols order: QuestionItemDataModel.Cols.values()) { + if(order.sortable()) { + SortKey sortAsc = new SortKey(order.name(), true); + List<QuestionItemView> ascOrderedItems = qItemQueriesDao.getItems(params, 0, -1, sortAsc); + Assert.assertNotNull(ascOrderedItems); + + SortKey sortDesc = new SortKey(order.name(), false); + List<QuestionItemView> descOrderedItems = qItemQueriesDao.getItems(params, 0, -1, sortDesc); + Assert.assertNotNull(descOrderedItems); + } + } + } + @Test public void getItemsByAuthor() { //create an author with 2 items -- GitLab