Skip to content
Snippets Groups Projects
Commit 51c09e8b authored by srosse's avatar srosse
Browse files

OO-4742: deduce question creator from test (copy of pool item)

parent f81e8aa4
No related branches found
No related tags found
No related merge requests found
...@@ -76,6 +76,7 @@ import org.olat.core.id.context.ContextEntry; ...@@ -76,6 +76,7 @@ import org.olat.core.id.context.ContextEntry;
import org.olat.core.logging.AssertException; import org.olat.core.logging.AssertException;
import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
import org.olat.core.util.Formatter; import org.olat.core.util.Formatter;
import org.olat.core.util.StringHelper;
import org.olat.core.util.Util; import org.olat.core.util.Util;
import org.olat.core.util.coordinate.CoordinatorManager; import org.olat.core.util.coordinate.CoordinatorManager;
import org.olat.core.util.coordinate.LockResult; import org.olat.core.util.coordinate.LockResult;
...@@ -956,6 +957,7 @@ public class AssessmentTestComposerController extends MainLayoutBasicController ...@@ -956,6 +957,7 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
String identifier = metadata.getOpenOLATMetadataIdentifier(); String identifier = metadata.getOpenOLATMetadataIdentifier();
metadata.setOpenOLATMetadataMasterIdentifier(identifier); metadata.setOpenOLATMetadataMasterIdentifier(identifier);
metadata.setOpenOLATMetadataIdentifier(UUID.randomUUID().toString()); metadata.setOpenOLATMetadataIdentifier(UUID.randomUUID().toString());
metadata.setOpenOLATMetadataCreator(getCreator());
doSaveManifest(); doSaveManifest();
// reselect the node (--force) // reselect the node (--force)
...@@ -966,6 +968,20 @@ public class AssessmentTestComposerController extends MainLayoutBasicController ...@@ -966,6 +968,20 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
return doReloadItem(ureq); return doReloadItem(ureq);
} }
private String getCreator() {
StringBuilder sb = new StringBuilder();
String firstName = getIdentity().getUser().getFirstName();
if(StringHelper.containsNonWhitespace(firstName)) {
sb.append(firstName);
}
String lastName = getIdentity().getUser().getFirstName();
if(StringHelper.containsNonWhitespace(lastName)) {
if(StringHelper.containsNonWhitespace(firstName)) sb.append(" ");
sb.append(lastName);
}
return sb.toString();
}
private TreeNode doReloadItem(UserRequest ureq) { private TreeNode doReloadItem(UserRequest ureq) {
TreeNode selectedNode = menuTree.getSelectedNode(); TreeNode selectedNode = menuTree.getSelectedNode();
updateTreeModel(false); updateTreeModel(false);
......
...@@ -210,6 +210,9 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource { ...@@ -210,6 +210,9 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource {
private TestHolder loadQuestionMetadata(RepositoryEntry testEntry) { private TestHolder loadQuestionMetadata(RepositoryEntry testEntry) {
TestHolder testHolder = new TestHolder(testEntry); TestHolder testHolder = new TestHolder(testEntry);
String owners = getOwners(testEntry);
testHolder.setOwners(owners);
List<QuestionInformations> questionList = new ArrayList<>(32); List<QuestionInformations> questionList = new ArrayList<>(32);
if(testHolder.isOk()) { if(testHolder.isOk()) {
AssessmentTest assessmentTest = testHolder.getAssessmentTest(); AssessmentTest assessmentTest = testHolder.getAssessmentTest();
...@@ -222,10 +225,6 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource { ...@@ -222,10 +225,6 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource {
} }
} }
testHolder.setQuestionList(questionList); testHolder.setQuestionList(questionList);
String owners = getOwners(testEntry);
testHolder.setOwners(owners);
return testHolder; return testHolder;
} }
...@@ -284,19 +283,20 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource { ...@@ -284,19 +283,20 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource {
infos = new QuestionInformations(assessmentItem); infos = new QuestionInformations(assessmentItem);
} }
} else if(!StringHelper.containsNonWhitespace(metadata.getOpenOLATMetadataIdentifier())) { } else if(!StringHelper.containsNonWhitespace(metadata.getOpenOLATMetadataIdentifier())) {
infos = new QuestionInformations(assessmentItem, metadata); infos = new QuestionInformations(assessmentItem, metadata, testHolder.getOwners());
} else { } else {
String identifier = metadata.getOpenOLATMetadataIdentifier(); String identifier = metadata.getOpenOLATMetadataIdentifier();
String masterIdentifier = metadata.getOpenOLATMetadataMasterIdentifier();
List<QuestionItem> items = qpoolService.loadItemByIdentifier(identifier); List<QuestionItem> items = qpoolService.loadItemByIdentifier(identifier);
if(items.isEmpty()) { if(items.isEmpty()) {
infos = new QuestionInformations(assessmentItem, metadata); infos = new QuestionInformations(assessmentItem, metadata, testHolder.getOwners());
} else { } else {
QuestionItem item = items.get(0); QuestionItem item = items.get(0);
String authors = getAuthors(item); String authors = getAuthors(item);
infos = new QuestionInformations(authors, item); infos = new QuestionInformations(authors, item);
} }
String masterIdentifier = metadata.getOpenOLATMetadataMasterIdentifier();
if(StringHelper.containsNonWhitespace(masterIdentifier)) { if(StringHelper.containsNonWhitespace(masterIdentifier)) {
List<QuestionItem> masterItems = qpoolService.loadItemByIdentifier(masterIdentifier); List<QuestionItem> masterItems = qpoolService.loadItemByIdentifier(masterIdentifier);
if(!masterItems.isEmpty()) { if(!masterItems.isEmpty()) {
...@@ -428,14 +428,21 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource { ...@@ -428,14 +428,21 @@ public class QuestionOriginMediaResource extends OpenXMLWorkbookResource {
masterIdentifier = item.getMasterIdentifier(); masterIdentifier = item.getMasterIdentifier();
} }
public QuestionInformations(AssessmentItem assessmentItem, ManifestMetadataBuilder metadata) { public QuestionInformations(AssessmentItem assessmentItem, ManifestMetadataBuilder metadata, String testOwners) {
identifier = metadata.getOpenOLATMetadataIdentifier(); identifier = metadata.getOpenOLATMetadataIdentifier();
if(StringHelper.containsNonWhitespace(metadata.getTitle())) { if(StringHelper.containsNonWhitespace(metadata.getTitle())) {
title = metadata.getTitle(); title = metadata.getTitle();
} else { } else {
title = assessmentItem.getTitle(); title = assessmentItem.getTitle();
} }
author = metadata.getOpenOLATMetadataCreator(); if(StringHelper.containsNonWhitespace(metadata.getOpenOLATMetadataCreator())) {
author = metadata.getOpenOLATMetadataCreator();
} else if(StringHelper.containsNonWhitespace(testOwners)) {
author = testOwners;
} else {
author = null;
}
keywords = metadata.getGeneralKeywords(); keywords = metadata.getGeneralKeywords();
taxonomyPath = metadata.getClassificationTaxonomy(); taxonomyPath = metadata.getClassificationTaxonomy();
topic = metadata.getOpenOLATMetadataTopic(); topic = metadata.getOpenOLATMetadataTopic();
......
...@@ -4,7 +4,7 @@ admin.menu.report.question.title.alt=Fragen zu Test ...@@ -4,7 +4,7 @@ admin.menu.report.question.title.alt=Fragen zu Test
report.course.displayname=Titel Kurs report.course.displayname=Titel Kurs
report.course.externalref=Kennzeichen Kurs report.course.externalref=Kennzeichen Kurs
report.course.id=Kurs ID report.course.id=Kurs ID
report.explain=Report alle Fragen in gew\u00E4hlten Test report.explain=Report: gew\u00E4hlte Tests inklusive aller enthaltenen Fragen
report.question.title=Titel der Frage report.question.title=Titel der Frage
report.question.author=Ersteller der Frage (Besitzer) report.question.author=Ersteller der Frage (Besitzer)
report.question.identifier=Frage ID report.question.identifier=Frage ID
...@@ -22,7 +22,7 @@ report.test.displayname=Titel der Lernressource Test ...@@ -22,7 +22,7 @@ report.test.displayname=Titel der Lernressource Test
report.test.externalref=Test Kennzeichen report.test.externalref=Test Kennzeichen
report.test.author=Ersteller Test (Besitzer) report.test.author=Ersteller Test (Besitzer)
search=Suchen search=Suchen
search.empty=Es wurden keine Test gefunden die Ihren Kriterien entsprechen. search.empty=Es wurden keine Tests gefunden, die ihren Kriterien entsprechen.
search.text=Titel / Kennzeichen / ID search.text=Titel / Kennzeichen / ID
search.author=Autor / Besitzer search.author=Autor / Besitzer
warning.at.least.one.test=Sie m\u00FCssen mindestens ein Test w\u00E4hlen. warning.at.least.one.test=Sie m\u00FCssen mindestens ein Test w\u00E4hlen.
#Thu Dec 07 19:13:19 CET 2017 #Thu Dec 07 19:13:19 CET 2017
admin.menu.report.question.title=Questions to tests admin.menu.report.question.title=Questions to tests
admin.menu.report.question.title.alt=Questions to tests admin.menu.report.question.title.alt=Questions to tests
atleastone.test=Sie m\u00FCssen mindestens ein Test w\u00E4hlen.
report.course.displayname=Course title report.course.displayname=Course title
report.course.externalref=Course reference report.course.externalref=Course reference
report.course.id=Course ID report.course.id=Course ID
report.explain=Report all questions in the selected tests. report.explain=Report: selected tests including all contained questions
report.question.title=Question's title report.question.title=Question's title
report.question.author=Question's creator (owner) report.question.author=Question's creator (owner)
report.question.identifier=Question ID report.question.identifier=Question ID
...@@ -23,7 +22,7 @@ report.test.displayname=Title of the learn resource test ...@@ -23,7 +22,7 @@ report.test.displayname=Title of the learn resource test
report.test.externalref=Test reference report.test.externalref=Test reference
report.test.author=Test creator (owner) report.test.author=Test creator (owner)
search=Search search=Search
search.empty=No tests found that matches the given criteria. search.empty=No tests were found that met your criteria.
search.text=Title / Ext. Ref. / ID search.text=Title / Ext. Ref. / ID
search.author=Author / owner search.author=Author / owner
warning.at.least.one.meeting=You must select at least one test. warning.at.least.one.meeting=You must select at least one test.
......
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