use of org.olat.modules.qpool.QuestionItemAuditLogBuilder in project OpenOLAT by OpenOLAT.
the class QuestionPoolMainEditorController method doCopyToMy.
private void doCopyToMy(QuestionItemShort item) {
List<QuestionItem> copiedItems = qpoolService.copyItems(getIdentity(), singletonList(item));
for (QuestionItem copy : copiedItems) {
QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(getIdentity(), Action.CREATE_QUESTION_ITEM_BY_COPY);
builder.withAfter(copy);
qpoolService.persist(builder.create());
}
showInfo("item.copied", Integer.toString(copiedItems.size()));
if (currentCtrl instanceof QuestionsController) {
((QuestionsController) currentCtrl).updateSource();
}
}
use of org.olat.modules.qpool.QuestionItemAuditLogBuilder in project OpenOLAT by OpenOLAT.
the class ImportController method formOK.
@Override
protected void formOK(UserRequest ureq) {
String filename = fileEl.getUploadFileName();
File file = fileEl.getUploadFile();
List<QuestionItem> importItems = qpoolService.importItems(getIdentity(), getLocale(), filename, file);
if (importItems == null || importItems.isEmpty()) {
fireEvent(ureq, Event.DONE_EVENT);
showWarning("import.failed");
} else {
boolean editable = editableEl == null ? true : editableEl.isSelected(0);
source.postImport(importItems, editable);
for (QuestionItem item : importItems) {
QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(getIdentity(), Action.CREATE_QUESTION_ITEM_BY_IMPORT);
builder.withAfter(item);
qpoolService.persist(builder.create());
}
fireEvent(ureq, Event.DONE_EVENT);
showInfo("import.success", Integer.toString(importItems.size()));
}
}
use of org.olat.modules.qpool.QuestionItemAuditLogBuilder in project OpenOLAT by OpenOLAT.
the class QuestionPoolUserDataDeletable method deleteUserData.
@Override
public void deleteUserData(Identity identity, String newDeletedUserName, File archivePath) {
if (!qpoolModule.isDeleteQuestionsWithoutAuthor())
return;
List<QuestionItem> itemsWithOneAuthor = questionItemDao.getItemsWithOneAuthor(identity);
qpoolService.deleteItems(itemsWithOneAuthor);
for (QuestionItem item : itemsWithOneAuthor) {
QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(null, Action.DELETE_QUESTION_ITEM);
builder.withBefore(item);
builder.withMessage("Author deleted");
qpoolService.persist(builder.create());
}
String logMessage = getLogMessage(identity, itemsWithOneAuthor);
log.info(logMessage);
}
use of org.olat.modules.qpool.QuestionItemAuditLogBuilder in project OpenOLAT by OpenOLAT.
the class QuestionMetadataEditController method formOK.
@Override
protected void formOK(UserRequest ureq) {
if (item instanceof QuestionItemImpl) {
QuestionItemImpl itemImpl = (QuestionItemImpl) item;
QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(getIdentity(), Action.UPDATE_QUESTION_ITEM_METADATA);
builder.withBefore(itemImpl);
int day = learningTimeDayElement.getIntValue();
int hour = learningTimeHourElement.getIntValue();
int minute = learningTimeMinuteElement.getIntValue();
int seconds = learningTimeSecondElement.getIntValue();
String timeStr = MetadataConverterHelper.convertDuration(day, hour, minute, seconds);
itemImpl.setEducationalLearningTime(timeStr);
BigDecimal difficulty = toBigDecimal(difficultyEl.getValue());
itemImpl.setDifficulty(difficulty);
BigDecimal stdevDifficulty = toBigDecimal(stdevDifficultyEl.getValue());
itemImpl.setStdevDifficulty(stdevDifficulty);
BigDecimal differentiation = toBigDecimal(differentiationEl.getValue());
itemImpl.setDifferentiation(differentiation);
int numOfAnswerAlternatives = toInt(numAnswerAltEl.getValue());
itemImpl.setNumOfAnswerAlternatives(numOfAnswerAlternatives);
int numUsage = toInt(usageEl.getValue());
itemImpl.setUsage(numUsage);
item = qpoolService.updateItem(itemImpl);
builder.withAfter(item);
qpoolService.persist(builder.create());
fireEvent(ureq, new QItemEdited(item));
}
}
use of org.olat.modules.qpool.QuestionItemAuditLogBuilder in project OpenOLAT by OpenOLAT.
the class RightsMetadataEditController method formOK.
@Override
protected void formOK(UserRequest ureq) {
if (item instanceof QuestionItemImpl) {
QuestionItemImpl itemImpl = (QuestionItemImpl) item;
QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(getIdentity(), Action.UPDATE_QUESTION_ITEM_METADATA);
builder.withBefore(itemImpl);
if (licenseModule.isEnabled(licenseHandler)) {
if (licenseEl != null && licenseEl.isOneSelected()) {
String licenseTypeKey = licenseEl.getSelectedKey();
LicenseType licneseType = licenseService.loadLicenseTypeByKey(licenseTypeKey);
license.setLicenseType(licneseType);
}
String licensor = null;
String freetext = null;
if (licensorEl != null && licensorEl.isVisible()) {
licensor = StringHelper.containsNonWhitespace(licensorEl.getValue()) ? licensorEl.getValue() : null;
}
if (licenseFreetextEl != null && licenseFreetextEl.isVisible()) {
freetext = StringHelper.containsNonWhitespace(licenseFreetextEl.getValue()) ? licenseFreetextEl.getValue() : null;
}
license.setLicensor(licensor);
license.setFreetext(freetext);
license = licenseService.update(license);
licensorEl.setValue(license.getLicensor());
licenseFreetextEl.setValue(license.getFreetext());
}
item = qpoolService.updateItem(item);
builder.withAfter(itemImpl);
qpoolService.persist(builder.create());
fireEvent(ureq, new QItemEdited(item));
}
}
Aggregations