Index: lams_tool_forum/build.properties
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/build.properties,v
diff -u -r1.24.8.1 -r1.24.8.2
--- lams_tool_forum/build.properties 1 Apr 2010 17:08:31 -0000 1.24.8.1
+++ lams_tool_forum/build.properties 27 Oct 2010 15:18:44 -0000 1.24.8.2
@@ -9,7 +9,7 @@
### project properties ###
signature=lafrum11
project.displayname = lams forum tool
-tool.version=20100303
+tool.version=20101025
# hide tool option
hideTool=false
Index: lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Attic/Forum.hbm.xml,v
diff -u -r1.19 -r1.19.10.1
--- lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml 27 Oct 2008 00:53:02 -0000 1.19
+++ lams_tool_forum/conf/hibernate/mappings/org/lamsfoundation/lams/tool/forum/persistence/Forum.hbm.xml 27 Oct 2010 15:18:44 -0000 1.19.10.1
@@ -253,6 +253,22 @@
/>
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_tool_forum/db/sql/create_lams_tool_forum.sql
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/db/sql/create_lams_tool_forum.sql,v
diff -u -r1.33.8.1 -r1.33.8.2
--- lams_tool_forum/db/sql/create_lams_tool_forum.sql 1 Apr 2010 17:08:31 -0000 1.33.8.1
+++ lams_tool_forum/db/sql/create_lams_tool_forum.sql 27 Oct 2010 15:18:44 -0000 1.33.8.2
@@ -45,6 +45,8 @@
limited_input_flag smallint,
reflect_instructions varchar(255),
reflect_on_activity smallint,
+ notify_learners_on_forum_posting tinyint DEFAULT 0,
+ notify_teachers_on_forum_posting tinyint DEFAULT 0,
mark_release_notify tinyint DEFAULT 0,
primary key (uid)
)TYPE=InnoDB;
@@ -153,8 +155,8 @@
alter table tl_lafrum11_timestamp add index MessageFK (message_uid), add constraint MessageFK foreign key (message_uid) references tl_lafrum11_message (uid);
INSERT INTO tl_lafrum11_forum (uid,title,instructions,online_instructions,offline_instructions,content_id,allow_anonym,run_offline,lock_on_finished,content_in_use,define_later,allow_edit,allow_rich_editor,
- allow_new_topic,allow_upload,maximum_reply, minimum_reply,limited_input_flag,limited_of_chars,reflect_on_activity)
-VALUES(1,"Forum","Instructions",null,null,${default_content_id},0,0,0,0,0,1,0,1,0,1,0,1,5000,0);
+ allow_new_topic,allow_upload,maximum_reply, minimum_reply,limited_input_flag,limited_of_chars,notify_learners_on_forum_posting,notify_teachers_on_forum_posting,reflect_on_activity)
+VALUES(1,"Forum","Instructions",null,null,${default_content_id},0,0,0,0,0,1,0,1,0,1,0,1,5000,0,0,0);
INSERT INTO `tl_lafrum11_message` (`uid`, `create_date`, `last_reply_date`, `update_date`, `create_by`, `modified_by`, `subject`, `body`, `sequence_id`, `is_authored`, `is_anonymous`, `forum_session_uid`, `parent_uid`, `forum_uid`, `reply_number`, `hide_flag`, `report_id`) VALUES
(1,NOW(),NOW(),NOW(),null,null,'Topic Heading','Topic message',1,1,0,NULL,NULL,1,0,0,NULL);
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml,v
diff -u -r1.22.2.1 -r1.22.2.1.4.1
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml 22 Apr 2009 08:41:38 -0000 1.22.2.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml 27 Oct 2010 15:18:44 -0000 1.22.2.1.4.1
@@ -133,6 +133,12 @@
+
+
+
+
+
+
+
+
+
+ conditions = new TreeSet(new TextSearchConditionComparator());
@@ -593,8 +597,32 @@
public void setReflectOnActivity(boolean reflectOnActivity) {
this.reflectOnActivity = reflectOnActivity;
}
+
+ /**
+ * @hibernate.property column="notify_learners_on_forum_posting"
+ * @return
+ */
+ public boolean isNotifyLearnersOnForumPosting() {
+ return notifyLearnersOnForumPosting;
+ }
+ public void setNotifyLearnersOnForumPosting(boolean notifyLearnersOnForumPosting) {
+ this.notifyLearnersOnForumPosting = notifyLearnersOnForumPosting;
+ }
+
/**
+ * @hibernate.property column="notify_teachers_on_forum_posting"
+ * @return
+ */
+ public boolean isNotifyTeachersOnForumPosting() {
+ return notifyTeachersOnForumPosting;
+ }
+
+ public void setNotifyTeachersOnForumPosting(boolean notifyTeachersOnForumPosting) {
+ this.notifyTeachersOnForumPosting = notifyTeachersOnForumPosting;
+ }
+
+ /**
* @hibernate.property column="mark_release_notify"
* @return
*/
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.99.4.3.4.1 -r1.99.4.3.4.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 1 Apr 2010 17:08:31 -0000 1.99.4.3.4.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 27 Oct 2010 15:18:43 -0000 1.99.4.3.4.2
@@ -56,18 +56,23 @@
import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
import org.lamsfoundation.lams.contentrepository.service.IRepositoryService;
import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
+import org.lamsfoundation.lams.events.DeliveryMethodMail;
import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.gradebook.service.IGradebookService;
import org.lamsfoundation.lams.learning.service.ILearnerService;
+import org.lamsfoundation.lams.learningdesign.ToolActivity;
+import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO;
import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException;
import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
+import org.lamsfoundation.lams.lesson.service.ILessonService;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolOutput;
import org.lamsfoundation.lams.tool.ToolOutputDefinition;
+import org.lamsfoundation.lams.tool.ToolSession;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
import org.lamsfoundation.lams.tool.exception.DataMissingException;
@@ -158,6 +163,11 @@
private IGradebookService gradebookService;
private IEventNotificationService eventNotificationService;
+
+ private ILessonService lessonService;
+
+ private IActivityDAO activityDAO;
+
private Random generator = new Random();
// ---------------------------------------------------------------------
@@ -1299,6 +1309,14 @@
this.gradebookService = gradebookService;
}
+ public void setLessonService(ILessonService lessonService) {
+ this.lessonService = lessonService;
+ }
+
+ public void setActivityDAO(IActivityDAO activityDAO) {
+ this.activityDAO = activityDAO;
+ }
+
/**
* {@inheritDoc}
*/
@@ -1357,5 +1375,42 @@
public void saveTimestamp(Timestamp timestamp) {
timestampDao.saveOrUpdate(timestamp);
}
+
+ public void sendNotificationsOnNewPosting(Long forumId, Long sessionId, Message message) {
+ Forum forum = getForum(forumId);
+ ForumUser postAuthor = message.getCreatedBy();
+ String fullName = postAuthor.getLastName() + " " + postAuthor.getFirstName();
+ ToolSession toolSession = toolService.getToolSession(sessionId);
+ Long activityId = toolSession.getToolActivity().getActivityId();
+ ToolActivity activity = (ToolActivity) activityDAO.getActivityByActivityId(activityId, ToolActivity.class);
+
+ if (forum.isNotifyLearnersOnForumPosting()) {
+ List learners = lessonService.getLearnersHaveAttemptedActivity(activity);
+ if (learners != null && !learners.isEmpty()) {
+ ArrayList learnerIds = new ArrayList();
+ for (User learner : learners) {
+ learnerIds.add(learner.getUserId().longValue());
+ }
+
+ getEventNotificationService().sendMessage(learnerIds.toArray(new Long[0]), DeliveryMethodMail.getInstance(),
+ getLocalisedMessage("event.newposting.subject", new Object[] { forum.getTitle() }),
+ getLocalisedMessage("event.newposting.body", new Object[] { fullName, message.getBody() }));
+ }
+ }
+
+ if (forum.isNotifyTeachersOnForumPosting()) {
+ List monitoringUsers = lessonService.getMonitorsByToolSessionId(sessionId);
+ if (monitoringUsers != null && !monitoringUsers.isEmpty()) {
+ ArrayList monitoringUsersIds = new ArrayList();
+ for (User monitoringUser : monitoringUsers) {
+ monitoringUsersIds.add(monitoringUser.getUserId().longValue());
+ }
+ getEventNotificationService().sendMessage(monitoringUsersIds.toArray(new Long[0]), DeliveryMethodMail.getInstance(),
+ getLocalisedMessage("event.newposting.subject", new Object[] { forum.getTitle() }),
+ getLocalisedMessage("event.newposting.body", new Object[] { fullName, message.getBody() }));
+ }
+ }
+ }
+
}
\ No newline at end of file
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java,v
diff -u -r1.44.4.2.4.1 -r1.44.4.2.4.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 1 Apr 2010 17:08:31 -0000 1.44.4.2.4.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 27 Oct 2010 15:18:44 -0000 1.44.4.2.4.2
@@ -431,4 +431,6 @@
public String createTextSearchConditionName(Collection existingConditions);
public void deleteCondition(ForumCondition condition) throws PersistenceException;
+
+ void sendNotificationsOnNewPosting(Long forumId, Long sessionId, Message message);
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java,v
diff -u -r1.65.8.1 -r1.65.8.2
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 1 Apr 2010 17:08:31 -0000 1.65.8.1
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 27 Oct 2010 15:18:43 -0000 1.65.8.2
@@ -599,6 +599,9 @@
messageDTO.setLastTopicDate(forumService.getLastTopicDate(messageDTO.getMessage().getUid()));
}
+ // notify learners and teachers
+ forumService.sendNotificationsOnNewPosting(forumId, sessionId, message);
+
return mapping.findForward("success");
}
@@ -705,6 +708,10 @@
// Saving or updating user timestamp
saveUserTimestamp(rootTopicId, forumUser);
+
+ // notify learners and teachers
+ Long forumId = (Long) sessionMap.get(ForumConstants.FORUM_ID);
+ forumService.sendNotificationsOnNewPosting(forumId, sessionId, message);
return mapping.findForward("success");
}
Index: lams_tool_forum/web/jsps/authoring/advance.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/authoring/advance.jsp,v
diff -u -r1.24.10.1 -r1.24.10.2
--- lams_tool_forum/web/jsps/authoring/advance.jsp 16 Nov 2009 02:25:12 -0000 1.24.10.1
+++ lams_tool_forum/web/jsps/authoring/advance.jsp 27 Oct 2010 15:18:44 -0000 1.24.10.2
@@ -50,6 +50,22 @@
+
+
+
+
+
+
+
+
+
+
+
+