Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java,v diff -u -r1.37 -r1.38 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java 17 Jan 2014 21:42:44 -0000 1.37 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Forum.java 25 Jul 2014 13:49:34 -0000 1.38 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumOutputFactory.java,v diff -u -r1.10 -r1.11 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumOutputFactory.java 24 Nov 2010 14:35:55 -0000 1.10 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumOutputFactory.java 25 Jul 2014 13:49:34 -0000 1.11 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java,v diff -u -r1.124 -r1.125 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 6 Jun 2014 16:41:30 -0000 1.124 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 25 Jul 2014 13:49:34 -0000 1.125 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java,v diff -u -r1.80 -r1.81 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 17 Jan 2014 21:42:44 -0000 1.80 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/AuthoringAction.java 25 Jul 2014 13:49:34 -0000 1.81 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumPedagogicalPlannerForm.java,v diff -u -r1.5 -r1.6 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumPedagogicalPlannerForm.java 23 Mar 2010 15:30:02 -0000 1.5 +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/forms/ForumPedagogicalPlannerForm.java 25 Jul 2014 13:49:33 -0000 1.6 @@ -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()); + } } } }