Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java =================================================================== diff -u -r6d674e346dea6ce7a824366c8a7c315660677744 -r3fd384118cee7535fc2e8a3964be830e26b97612 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java (.../Forum.java) (revision 6d674e346dea6ce7a824366c8a7c315660677744) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java (.../Forum.java) (revision 3fd384118cee7535fc2e8a3964be830e26b97612) @@ -321,7 +321,7 @@ * * @return */ - public Set getMessages() { + public Set getMessages() { return messages; } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumOutputFactory.java =================================================================== diff -u -r4beb18f54cdba854ab69ce78c9fa313234a482cd -r3fd384118cee7535fc2e8a3964be830e26b97612 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumOutputFactory.java (.../ForumOutputFactory.java) (revision 4beb18f54cdba854ab69ce78c9fa313234a482cd) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumOutputFactory.java (.../ForumOutputFactory.java) (revision 3fd384118cee7535fc2e8a3964be830e26b97612) @@ -233,7 +233,7 @@ Set messages = new HashSet(); for (Message message : (Set) forum.getMessages()) { - if (message.getIsAuthored()) { + if (message.getIsAuthored() && message.getToolSession() == null) { messages.add(message); break; } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== diff -u -r40eb54374e84591563d8b6a679ac719dbc85c8f7 -r3fd384118cee7535fc2e8a3964be830e26b97612 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 40eb54374e84591563d8b6a679ac719dbc85c8f7) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 3fd384118cee7535fc2e8a3964be830e26b97612) @@ -750,7 +750,7 @@ while (iter.hasNext()) { Message msg = (Message) iter.next(); // set this message forum Uid as toContent - if (!msg.getIsAuthored()) { + if (!msg.getIsAuthored() || msg.getToolSession() != null) { continue; } msg.setReplyNumber(0); @@ -875,11 +875,10 @@ Set items = toolContentObj.getMessages(); Set authorItems = new HashSet(); for (Message item : items) { - if (item.getIsAuthored()) { + if (item.getIsAuthored() && item.getToolSession() == null) { authorItems.add(item); item.setCreatedBy(null); item.setModifiedBy(null); - item.setToolSession(null); item.setForum(null); item.setReport(null); item.setReplyNumber(0); Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java =================================================================== diff -u -r6d674e346dea6ce7a824366c8a7c315660677744 -r3fd384118cee7535fc2e8a3964be830e26b97612 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 6d674e346dea6ce7a824366c8a7c315660677744) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 3fd384118cee7535fc2e8a3964be830e26b97612) @@ -935,20 +935,29 @@ forum.setInstructions(plannerForm.getInstructions()); int topicIndex = 0; + int sequenceId = 1; + Date currentDate = new Date(); String topic = null; String subject = null; Message message = null; List newTopics = new LinkedList(); Set forumTopics = new TreeSet(new MessageComparator()); - forumTopics.addAll(forum.getMessages()); + for (Message existingMessage : forum.getMessages()) { + if (existingMessage.getIsAuthored() && existingMessage.getToolSession() == null){ + forumTopics.add(existingMessage); + } + } Iterator forumTopicIterator = forumTopics.iterator(); Pattern regexPattern = Pattern.compile(ForumConstants.WORD_REGEX, ForumConstants.PATTERN_MATCHING_OPTIONS); Matcher matcher = null; - + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + ForumUser forumUser = getForumManager().getUserByID(new Long(user.getUserID().intValue())); + do { topic = plannerForm.getTopic(topicIndex); - subject = WebUtil.removeHTMLtags(topic); + subject = WebUtil.removeHTMLtags(topic).trim(); // Getting 3 first words from body and making the subject out of it if (StringUtils.isBlank(subject)) { @@ -968,47 +977,31 @@ if (StringUtils.isEmpty(topic)) { plannerForm.removeTopic(topicIndex); + } else if (forumTopicIterator.hasNext()) { + message = forumTopicIterator.next(); + message.setUpdated(currentDate); + message.setSubject(subject); + message.setBody(topic); + message.setSequenceId(sequenceId++); } else { - if (forumTopicIterator.hasNext()) { - message = forumTopicIterator.next(); - message.setUpdated(new Date()); - message.setSubject(subject); - message.setBody(topic); - } else { - message = new Message(); - message.setIsAuthored(true); - Date currentDate = new Date(); - message.setCreated(currentDate); - message.setUpdated(currentDate); - message.setLastReplyDate(currentDate); + message = new Message(); + message.setIsAuthored(true); + message.setCreated(currentDate); + message.setUpdated(currentDate); + message.setLastReplyDate(currentDate); + message.setCreatedBy(forumUser); + message.setModifiedBy(forumUser); + message.setSubject(subject); + message.setBody(topic); + message.setSequenceId(sequenceId++); - HttpSession ss = SessionManager.getSession(); - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - ForumUser forumUser = getForumManager().getUserByID(new Long(user.getUserID().intValue())); - message.setCreatedBy(forumUser); - message.setModifiedBy(forumUser); - - message.setSubject(subject); - message.setBody(topic); - - int maxSeq = 1; - SortedSet allTopics = new TreeSet(new MessageComparator()); - allTopics.addAll(forum.getMessages()); - allTopics.addAll(newTopics); - if (allTopics.size() > 0) { - Message last = allTopics.last(); - maxSeq = last.getSequenceId() + 1; - } - message.setSequenceId(maxSeq); - - newTopics.add(message); - message.setForum(forum); - getForumManager().createRootTopic(forum.getUid(), null, message); - } - topicIndex++; + newTopics.add(message); + message.setForum(forum); + getForumManager().createRootTopic(forum.getUid(), null, message); } - + topicIndex++; } while (topic != null); + while (forumTopicIterator.hasNext()) { message = forumTopicIterator.next(); forumTopicIterator.remove(); Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumPedagogicalPlannerForm.java =================================================================== diff -u -r2dbea686e81e6a5843328d8c0bd814b63e64d36f -r3fd384118cee7535fc2e8a3964be830e26b97612 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumPedagogicalPlannerForm.java (.../ForumPedagogicalPlannerForm.java) (revision 2dbea686e81e6a5843328d8c0bd814b63e64d36f) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumPedagogicalPlannerForm.java (.../ForumPedagogicalPlannerForm.java) (revision 3fd384118cee7535fc2e8a3964be830e26b97612) @@ -79,7 +79,9 @@ if (messages != null) { int topicIndex = 0; for (Message message : (Set) messages) { - setTopic(topicIndex++, message.getBody()); + if (message.getIsAuthored() && message.getToolSession() == null) { + setTopic(topicIndex++, message.getBody()); + } } } }