Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -re62e56b0f0d04f6820592e95b0271619784a2c9f -rcef487db738be5b97de9a572b44ae098b4af34c6 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision e62e56b0f0d04f6820592e95b0271619784a2c9f) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision cef487db738be5b97de9a572b44ae098b4af34c6) @@ -3647,6 +3647,7 @@ QbCollection collection = null; Set collectionUUIDs = null; + Long privateCollectionUUID = null; for (JsonNode questionJSONData : questions) { AssessmentQuestion question = new AssessmentQuestion(); @@ -3759,21 +3760,27 @@ } Long collectionUid = JsonUtil.optLong(questionJSONData, RestTags.COLLECTION_UID); - boolean addToCollection = collectionUid != null; - if (addToCollection) { - // check if it is the same collection - there is a good chance it is - if (collection == null || collectionUid != collection.getUid()) { - collection = qbService.getCollection(collectionUid); - if (collection == null) { - addToCollection = false; - } else { - collectionUUIDs = qbService.getCollectionQuestions(collection.getUid()).stream() - .filter(q -> q.getUuid() != null) - .collect(Collectors.mapping(q -> q.getUuid().toString(), Collectors.toSet())); - } + if (collectionUid == null) { + // if no collection UUID was specified, questions end up in user's private collection + if (privateCollectionUUID == null) { + privateCollectionUUID = qbService.getUserPrivateCollection(userID).getUid(); } + collectionUid = privateCollectionUUID; } + boolean addToCollection = true; + // check if it is the same collection - there is a good chance it is + if (collection == null || collectionUid != collection.getUid()) { + collection = qbService.getCollection(collectionUid); + if (collection == null) { + addToCollection = false; + } else { + collectionUUIDs = qbService.getCollectionQuestions(collection.getUid()).stream() + .filter(q -> q.getUuid() != null) + .collect(Collectors.mapping(q -> q.getUuid().toString(), Collectors.toSet())); + } + } + if (isModification) { if (collectionUUIDs != null) { addToCollection &= !collectionUUIDs.contains(uuid); @@ -3830,7 +3837,6 @@ checkType(question.getType()); newQuestionSet.add(question); - // all questions need to end up in user's private collection if (addToCollection) { qbService.addQuestionToCollection(collectionUid, qbQuestion.getQuestionId(), false); collectionUUIDs.add(uuid); Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -re62e56b0f0d04f6820592e95b0271619784a2c9f -rcef487db738be5b97de9a572b44ae098b4af34c6 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision e62e56b0f0d04f6820592e95b0271619784a2c9f) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision cef487db738be5b97de9a572b44ae098b4af34c6) @@ -2826,6 +2826,7 @@ QbCollection collection = null; Set collectionUUIDs = null; + Long privateCollectionUUID = null; ArrayNode questions = JsonUtil.optArray(toolContentJSON, RestTags.QUESTIONS); for (int i = 0; i < questions.size(); i++) { @@ -2850,21 +2851,26 @@ } Long collectionUid = JsonUtil.optLong(questionData, RestTags.COLLECTION_UID); - boolean addToCollection = collectionUid != null; - - if (addToCollection) { - // check if it is the same collection - there is a good chance it is - if (collection == null || collectionUid != collection.getUid()) { - collection = qbService.getCollection(collectionUid); - if (collection == null) { - addToCollection = false; - } else { - collectionUUIDs = qbService.getCollectionQuestions(collection.getUid()).stream() - .filter(q -> q.getUuid() != null) - .collect(Collectors.mapping(q -> q.getUuid().toString(), Collectors.toSet())); - } + if (collectionUid == null) { + // if no collection UUID was specified, questions end up in user's private collection + if (privateCollectionUUID == null) { + privateCollectionUUID = qbService.getUserPrivateCollection(userID).getUid(); } + collectionUid = privateCollectionUUID; } + + boolean addToCollection = true; + // check if it is the same collection - there is a good chance it is + if (collection == null || collectionUid != collection.getUid()) { + collection = qbService.getCollection(collectionUid); + if (collection == null) { + addToCollection = false; + } else { + collectionUUIDs = qbService.getCollectionQuestions(collection.getUid()).stream() + .filter(q -> q.getUuid() != null) + .collect(Collectors.mapping(q -> q.getUuid().toString(), Collectors.toSet())); + } + } if (qbQuestion == null) { qbQuestion = new QbQuestion();