use of org.olat.modules.qpool.Pool in project OpenOLAT by OpenOLAT.
the class PoolDAOTest method removeItemFromPools.
@Test
public void removeItemFromPools() {
Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Poolman-" + UUID.randomUUID().toString());
// create a pool with an item
String poolName = "NGC-" + UUID.randomUUID().toString();
Pool pool = poolDao.createPool(null, poolName, true);
QItemType mcType = qItemTypeDao.loadByType(QuestionType.MC.name());
QuestionItem item = questionItemDao.createAndPersist(id, "Galaxy", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, mcType);
poolDao.addItemToPool(item, Collections.singletonList(pool), false);
dbInstance.commitAndCloseSession();
SearchQuestionItemParams params = new SearchQuestionItemParams(id, null);
params.setPoolKey(pool.getKey());
// check the pool and remove the items
List<QuestionItemView> items = qItemQueriesDao.getItemsOfPool(params, null, 0, -1);
Assert.assertEquals(1, items.size());
List<QuestionItemShort> toDelete = Collections.<QuestionItemShort>singletonList(items.get(0));
int count = poolDao.removeFromPools(toDelete);
Assert.assertEquals(1, count);
dbInstance.commitAndCloseSession();
// check if the pool is empty
List<QuestionItemView> emptyItems = qItemQueriesDao.getItemsOfPool(params, null, 0, -1);
Assert.assertTrue(emptyItems.isEmpty());
}
use of org.olat.modules.qpool.Pool in project OpenOLAT by OpenOLAT.
the class QItemQueriesDAOTest method getItemsOfPool_orderBy.
@Test
public void getItemsOfPool_orderBy() {
Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Poolman-" + UUID.randomUUID().toString());
// create a pool
String poolTitle = "NGC-" + UUID.randomUUID().toString();
Pool pool = poolDao.createPool(null, poolTitle, true);
QuestionItem item = questionItemDao.createAndPersist(id, "Mega cluster of galaxies", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, qItemType);
poolDao.addItemToPool(item, Collections.singletonList(pool), false);
dbInstance.commitAndCloseSession();
SearchQuestionItemParams params = new SearchQuestionItemParams(id, null);
params.setPoolKey(pool.getKey());
// test order by
for (QuestionItemView.OrderBy order : QuestionItemView.OrderBy.values()) {
SortKey sortAsc = new SortKey(order.name(), true);
List<QuestionItemView> ascOrderedItems = qItemQueriesDao.getItemsOfPool(params, null, 0, -1, sortAsc);
Assert.assertNotNull(ascOrderedItems);
SortKey sortDesc = new SortKey(order.name(), false);
List<QuestionItemView> descOrderedItems = qItemQueriesDao.getItemsOfPool(params, null, 0, -1, sortDesc);
Assert.assertNotNull(descOrderedItems);
}
}
use of org.olat.modules.qpool.Pool in project OpenOLAT by OpenOLAT.
the class QItemQueriesDAOTest method getItemsOfPool.
@Test
public void getItemsOfPool() {
Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Poolman-" + UUID.randomUUID().toString());
// create a pool
String poolTitle = "NGC-" + UUID.randomUUID().toString();
Pool pool = poolDao.createPool(null, poolTitle, true);
QuestionItem item = questionItemDao.createAndPersist(id, "Galaxy", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, qItemType);
poolDao.addItemToPool(item, Collections.singletonList(pool), false);
dbInstance.commitAndCloseSession();
SearchQuestionItemParams params = new SearchQuestionItemParams(id, null);
params.setPoolKey(pool.getKey());
// retrieve
List<QuestionItemView> items = qItemQueriesDao.getItemsOfPool(params, null, 0, -1);
Assert.assertNotNull(items);
Assert.assertEquals(1, items.size());
Assert.assertTrue(items.get(0).getKey().equals(item.getKey()));
// count
int numOfItems = poolDao.countItemsInPool(params);
Assert.assertEquals(1, numOfItems);
}
use of org.olat.modules.qpool.Pool in project OpenOLAT by OpenOLAT.
the class PoolsController method formInnerEvent.
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source == poolTable) {
if (event instanceof SelectionEvent) {
SelectionEvent se = (SelectionEvent) event;
if ("select-pool".equals(se.getCommand())) {
Pool row = model.getObject(se.getIndex());
fireEvent(ureq, new QPoolSelectionEvent(Collections.singletonList(row)));
}
}
} else if (source == selectButton) {
Set<Integer> selectIndexes = poolTable.getMultiSelectedIndex();
if (!selectIndexes.isEmpty()) {
List<Pool> rows = new ArrayList<Pool>(selectIndexes.size());
for (Integer index : selectIndexes) {
Pool row = model.getObject(index.intValue());
rows.add(row);
}
fireEvent(ureq, new QPoolSelectionEvent(rows));
}
}
super.formInnerEvent(ureq, source, event);
}
use of org.olat.modules.qpool.Pool in project OpenOLAT by OpenOLAT.
the class PoolsAdminController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (source == poolEditCtrl) {
if (event == Event.DONE_EVENT) {
reloadModel();
fireEvent(ureq, new QPoolEvent(QPoolEvent.POOL_CREATED));
}
cmc.deactivate();
cleanUp();
} else if (source == groupCtrl) {
Pool selectedPool = (Pool) groupCtrl.getUserObject();
if (event instanceof IdentitiesAddEvent) {
IdentitiesAddEvent identitiesAddedEvent = (IdentitiesAddEvent) event;
List<Identity> list = identitiesAddedEvent.getAddIdentities();
qpoolService.addOwners(list, Collections.singletonList(selectedPool));
identitiesAddedEvent.getAddedIdentities().addAll(list);
} else if (event instanceof IdentitiesRemoveEvent) {
IdentitiesRemoveEvent identitiesRemoveEvent = (IdentitiesRemoveEvent) event;
List<Identity> list = identitiesRemoveEvent.getRemovedIdentities();
qpoolService.removeOwners(list, Collections.singletonList(selectedPool));
}
} else if (source == confirmDeleteCtrl) {
if (DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) {
Pool pool = (Pool) confirmDeleteCtrl.getUserObject();
doDelete(ureq, pool);
}
} else if (source == cmc) {
cleanUp();
}
}
Aggregations