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 e909b55ed3c3c651658fdccaa89b4f1a9f2f84fc..01070bbd402483d3b53f8d31444a914422945149 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 dacf1d0100b68a839e59dddc3196444fdc1bd569..9aa36b2a0b1fc17627e79f81f88001f7456fee60 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 7f3943518f53591a46efa25dda125bffc565bac1..d35e2c50d247aaac573cc1e015a0ad5e7c5a329e 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 565b59674d534c0af69fbd4f3608948c00b8dbe2..d546edd606ad0d3db78e2ee8171d041d7e9ed3d2 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