Index: lams_tool_spreadsheet/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -49,6 +49,9 @@ label.learning.title =Share Resource Learning label.learning.comment.or.instruction =Comment/Instruction label.learning.heading =Share Resources +label.learning.comments =Comments +label.learning.marks =Marks +label.learning.not.available =Not Available label.monitoring.summary.learner =Learner label.monitoring.summary.marked =Marked? label.monitoring.summary.lock.when.finished =Lock when finished: @@ -64,6 +67,10 @@ label.monitoring.summary.viewAllMarks.button =View All Marks label.monitoring.summary.releaseMarks.button =Release Marks label.monitoring.summary.downloadMarks.button =Download Marks +label.monitoring.summary.marking.marking =Marking +label.monitoring.summary.marking.marks =Marks +label.monitoring.summary.marking.comments =Comments +label.monitoring.summary.marking.update.marks =Update Marks label.monitoring.edit.activity.cancel =Cancel label.monitoring.edit.activity.update =Update label.monitoring.edit.activity.edit =Edit @@ -72,12 +79,24 @@ label.monitoring.statistics.not.marked =Not marked spreadsheets label.monitoring.statistics.total.spreadsheets.sent.by.learners =Total spreadsheets sent by learners label.monitoring.heading.access =Learners list +label.monitoring.downloadmarks.learner.name =Learner name +label.monitoring.downloadmarks.marks =Marks +label.monitoring.downloadmarks.comments =Comments +label.monitoring.vieawallmarks.heading.marking =Marking +label.monitoring.vieawallmarks.learner =Learner: +label.monitoring.vieawallmarks.spreadsheet.submitted =Spreadsheet submitted +label.monitoring.vieawallmarks.true =True +label.monitoring.vieawallmarks.false =False +label.monitoring.vieawallmarks.marks =Marks: +label.monitoring.vieawallmarks.comments =Comments: + label.reviewitem.spreadsheet.sent.by =Spreadsheet sent by label.reviewitem.user.hasnot.sent.spreadsheet =User hasn't sent spreadsheet yet. label.reviewitem.title =Review User's Spreadsheet label.description =Description: authoring.exception =There is a problem in shared resources authoring page, the reason is {0} -error.resource.item.title.blank =Title can not be blank. +error.summary.marks.blank =Marks can not be blank. +error.summary.comments.blank =Comments can not be blank. error.resource.item.file.blank =File can not be blank. error.upload.failed =Upload file failed: {0} error.msg.upload.file.not.found =Could not find upload file {0}. @@ -161,6 +180,7 @@ monitoring.label.attachments =Attachments message.activityLocked =The instructor has set this activity not to allow you to view or share any more resources after you have finished it. msg.no.instruction =No instruction available. +msg.mark.released =Marks in {0} have been released. label.export.reflection =Notebook Entries message.warnLockOnFinish =Note: After you click on \u201cNext Activity\u201d, if you come back to this Spreadsheet, you won\u2019t be able to submit apreadsheet's changes. monitoring.label.instructions =Instructions Index: lams_tool_spreadsheet/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -101,6 +101,7 @@ validate="false" input="/pages/learning/learning.jsp" scope="request"> + @@ -138,8 +139,21 @@ - - + + + + + + + + + - - + + - + @@ -304,15 +304,15 @@ - +
- + @@ -330,8 +330,8 @@ - + @@ -537,11 +537,11 @@ - + - + @@ -564,12 +564,12 @@ - + - + Index: lams_tool_spreadsheet/db/sql/create_lams_tool_spreadsheet.sql =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/db/sql/create_lams_tool_spreadsheet.sql (.../create_lams_tool_spreadsheet.sql) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/db/sql/create_lams_tool_spreadsheet.sql (.../create_lams_tool_spreadsheet.sql) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -1,7 +1,7 @@ SET FOREIGN_KEY_CHECKS=0; drop table if exists tl_lasprd10_attachment; drop table if exists tl_lasprd10_spreadsheet; -drop table if exists tl_lasprd10_user_edited_spreadsheet; +drop table if exists tl_lasprd10_user_modified_spreadsheet; drop table if exists tl_lasprd10_session; drop table if exists tl_lasprd10_user; create table tl_lasprd10_attachment ( @@ -35,9 +35,9 @@ reflect_on_activity smallint, primary key (uid) )type=innodb; -create table tl_lasprd10_user_edited_spreadsheet ( +create table tl_lasprd10_user_modified_spreadsheet ( uid bigint not null auto_increment, - user_edited_spreadsheet text, + user_modified_spreadsheet text, mark_id bigint, primary key (uid) )type=innodb; @@ -67,16 +67,16 @@ session_finished smallint, session_uid bigint, spreadsheet_uid bigint, - user_edited_spreadsheet_uid bigint, + user_modified_spreadsheet_uid bigint, primary key (uid) )type=innodb; alter table tl_lasprd10_attachment add index FK_NEW_2065267438_1E7009430E79035 (spreadsheet_uid), add constraint FK_NEW_2065267438_1E7009430E79035 foreign key (spreadsheet_uid) references tl_lasprd10_spreadsheet (uid); alter table tl_lasprd10_spreadsheet add index FK_NEW_2065267438_89093BF758092FB (create_by), add constraint FK_NEW_2065267438_89093BF758092FB foreign key (create_by) references tl_lasprd10_user (uid); alter table tl_lasprd10_session add index FK_NEW_2065267438_24AA78C530E79035 (spreadsheet_uid), add constraint FK_NEW_2065267438_24AA78C530E79035 foreign key (spreadsheet_uid) references tl_lasprd10_spreadsheet (uid); alter table tl_lasprd10_user add index FK_NEW_2065267438_30113BFCEC0D3147 (session_uid), add constraint FK_NEW_2065267438_30113BFCEC0D3147 foreign key (session_uid) references tl_lasprd10_session (uid); alter table tl_lasprd10_user add index FK_NEW_2065267438_30113BFC309ED320 (spreadsheet_uid), add constraint FK_NEW_2065267438_30113BFC309ED320 foreign key (spreadsheet_uid) references tl_lasprd10_spreadsheet (uid); -alter table tl_lasprd10_user add index FK_NEW_2065267438_693580A441F9365D (user_edited_spreadsheet_uid), add constraint FK_NEW_2065267438_693580A441F9365D foreign key (user_edited_spreadsheet_uid) references tl_lasprd10_user_edited_spreadsheet (uid); -alter table tl_lasprd10_user_edited_spreadsheet add index FK_tl_lasprd10_user_edited_spreadsheet_1 (mark_id), add constraint FK_tl_lasprd10_user_edited_spreadsheet_1 foreign key (mark_id) references tl_lasprd10_spreadsheet_mark (uid); +alter table tl_lasprd10_user add index FK_NEW_2065267438_693580A441F9365D (user_modified_spreadsheet_uid), add constraint FK_NEW_2065267438_693580A441F9365D foreign key (user_modified_spreadsheet_uid) references tl_lasprd10_user_modified_spreadsheet (uid); +alter table tl_lasprd10_user_modified_spreadsheet add index FK_tl_lasprd10_user_modified_spreadsheet_1 (mark_id), add constraint FK_tl_lasprd10_user_modified_spreadsheet_1 foreign key (mark_id) references tl_lasprd10_spreadsheet_mark (uid); Index: lams_tool_spreadsheet/db/sql/drop_lams_tool_spreadsheet.sql =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/db/sql/drop_lams_tool_spreadsheet.sql (.../drop_lams_tool_spreadsheet.sql) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/db/sql/drop_lams_tool_spreadsheet.sql (.../drop_lams_tool_spreadsheet.sql) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -1,7 +1,7 @@ SET FOREIGN_KEY_CHECKS=0; drop table if exists tl_lasprd10_attachment; drop table if exists tl_lasprd10_spreadsheet; -drop table if exists tl_lasprd10_user_edited_spreadsheet; +drop table if exists tl_lasprd10_user_modified_spreadsheet; drop table if exists tl_lasprd10_spreadsheet_mark; drop table if exists tl_lasprd10_session; drop table if exists tl_lasprd10_user; Index: lams_tool_spreadsheet/db/sql/table-schema.sql =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/db/sql/table-schema.sql (.../table-schema.sql) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/db/sql/table-schema.sql (.../table-schema.sql) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -4,23 +4,23 @@ alter table tl_lasprd10_user drop foreign key FK_NEW_2065267438_30113BFC30E79035; alter table tl_lasprd10_user drop foreign key FK_NEW_2065267438_30113BFCEC0D3147; alter table tl_lasprd10_user drop foreign key FK_NEW_2065267438_63195BC941F9365D; -alter table tl_lasprd10_user_edited_spreadsheet drop foreign key FK_tl_lasprd10_user_edited_spreadsheet_1; +alter table tl_lasprd10_user_modified_spreadsheet drop foreign key FK_tl_lasprd10_user_modified_spreadsheet_1; drop table if exists tl_lasprd10_attachment; -drop table if exists tl_lasprd10_user_edited_spreadsheet; +drop table if exists tl_lasprd10_user_modified_spreadsheet; drop table if exists tl_lasprd10_spreadsheet_mark; drop table if exists tl_lasprd10_spreadsheet; drop table if exists tl_lasprd10_session; drop table if exists tl_lasprd10_user; create table tl_lasprd10_attachment (uid bigint not null auto_increment, file_version_id bigint, file_type varchar(255), file_name varchar(255), file_uuid bigint, create_date datetime, spreadsheet_uid bigint, primary key (uid)); -create table tl_lasprd10_user_edited_spreadsheet (uid bigint, user_edited_spreadsheet text, mark_id bigint, primary key (uid)); +create table tl_lasprd10_user_modified_spreadsheet (uid bigint, user_modified_spreadsheet text, mark_id bigint, primary key (uid)); create table tl_lasprd10_spreadsheet_mark (uid bigint, marks varchar(255), comments text, date_marks_released datetime, primary key (uid)); create table tl_lasprd10_spreadsheet (uid bigint not null auto_increment, create_date datetime, update_date datetime, create_by bigint, title varchar(255), run_offline bit, is_learner_allowed_to_save bit, is_marking_enabled bit, lock_on_finished bit, instructions text, code text, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, content_id bigint unique, reflect_instructions varchar(255), reflect_on_activity bit, primary key (uid)); create table tl_lasprd10_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, spreadsheet_uid bigint, session_id bigint, session_name varchar(250), primary key (uid)); -create table tl_lasprd10_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), first_name varchar(255), login_name varchar(255), session_uid bigint, spreadsheet_uid bigint, session_finished bit, user_edited_spreadsheet_uid bigint, primary key (uid)); +create table tl_lasprd10_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), first_name varchar(255), login_name varchar(255), session_uid bigint, spreadsheet_uid bigint, session_finished bit, user_modified_spreadsheet_uid bigint, primary key (uid)); alter table tl_lasprd10_attachment add index FK_NEW_2065267438_1E7009430E79035 (spreadsheet_uid), add constraint FK_NEW_2065267438_1E7009430E79035 foreign key (spreadsheet_uid) references tl_lasprd10_spreadsheet (uid); alter table tl_lasprd10_spreadsheet add index FK_NEW_2065267438_89093BF758092FB (create_by), add constraint FK_NEW_2065267438_89093BF758092FB foreign key (create_by) references tl_lasprd10_user (uid); alter table tl_lasprd10_session add index FK_NEW_2065267438_24AA78C530E79035 (spreadsheet_uid), add constraint FK_NEW_2065267438_24AA78C530E79035 foreign key (spreadsheet_uid) references tl_lasprd10_spreadsheet (uid); alter table tl_lasprd10_user add index FK_NEW_2065267438_30113BFC30E79035 (spreadsheet_uid), add constraint FK_NEW_2065267438_30113BFC30E79035 foreign key (spreadsheet_uid) references tl_lasprd10_spreadsheet (uid); alter table tl_lasprd10_user add index FK_NEW_2065267438_30113BFCEC0D3147 (session_uid), add constraint FK_NEW_2065267438_30113BFCEC0D3147 foreign key (session_uid) references tl_lasprd10_session (uid); -alter table tl_lasprd10_user add index FK_NEW_2065267438_63195BC941F9365D (user_edited_spreadsheet_uid), add constraint FK_NEW_2065267438_63195BC941F9365D foreign key (user_edited_spreadsheet_uid) references tl_lasprd10_user_edited_spreadsheet (uid); -alter table tl_lasprd10_user_edited_spreadsheet add index FK_tl_lasprd10_user_edited_spreadsheet_1 (mark_id), add constraint FK_tl_lasprd10_user_edited_spreadsheet_1 foreign key (mark_id) references tl_lasprd10_spreadsheet_mark (uid); \ No newline at end of file +alter table tl_lasprd10_user add index FK_NEW_2065267438_63195BC941F9365D (user_modified_spreadsheet_uid), add constraint FK_NEW_2065267438_63195BC941F9365D foreign key (user_modified_spreadsheet_uid) references tl_lasprd10_user_modified_spreadsheet (uid); +alter table tl_lasprd10_user_modified_spreadsheet add index FK_tl_lasprd10_user_modified_spreadsheet_1 (mark_id), add constraint FK_tl_lasprd10_user_modified_spreadsheet_1 foreign key (mark_id) references tl_lasprd10_spreadsheet_mark (uid); \ No newline at end of file Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java (.../SpreadsheetConstants.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/SpreadsheetConstants.java (.../SpreadsheetConstants.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -72,10 +72,8 @@ public static final String ATTR_USER_FINISHED = "userFinished"; //error message keys - public static final String ERROR_MSG_TITLE_BLANK = "error.resource.item.title.blank"; - public static final String ERROR_MSG_URL_BLANK = "error.resource.item.url.blank"; - public static final String ERROR_MSG_DESC_BLANK = "error.resource.item.desc.blank"; - public static final String ERROR_MSG_FILE_BLANK = "error.resource.item.file.blank"; + public static final String ERROR_MSG_MARKS_BLANK = "error.summary.marks.blank"; + public static final String ERROR_MSG_COMMENTS_BLANK = "error.summary.comments.blank"; public static final String ERROR_MSG_INVALID_URL = "error.resource.item.invalid.url"; public static final String ERROR_MSG_UPLOAD_FAILED = "error.upload.failed"; @@ -89,6 +87,7 @@ public static final String ATTR_REFLECT_LIST = "reflectList"; public static final String ATTR_USER_UID = "userUid"; public static final String ATTR_USER_NAME = "userName"; + public static final String ATTR_USER_MARK = "mark"; public static final String ATTR_CODE = "code"; public static final String DEFUALT_PROTOCOL_REFIX = "http://"; Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/SpreadsheetMarkDAO.java =================================================================== diff -u --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/SpreadsheetMarkDAO.java (revision 0) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/SpreadsheetMarkDAO.java (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -0,0 +1,30 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.spreadsheet.dao; + +public interface SpreadsheetMarkDAO extends DAO { + +} + + Fisheye: Tag a7fed1be51941ace379dbb695d52bd08a315dae6 refers to a dead (removed) revision in file `lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/UserEditedSpreadsheetDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/UserModifiedSpreadsheetDAO.java =================================================================== diff -u --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/UserModifiedSpreadsheetDAO.java (revision 0) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/UserModifiedSpreadsheetDAO.java (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -0,0 +1,33 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.spreadsheet.dao; + +import java.util.List; +import java.util.Map; + +import org.lamsfoundation.lams.tool.spreadsheet.dto.Summary; + +public interface UserModifiedSpreadsheetDAO extends DAO { + +} Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/SpreadsheetMarkDAOHibernate.java =================================================================== diff -u --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/SpreadsheetMarkDAOHibernate.java (revision 0) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/SpreadsheetMarkDAOHibernate.java (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -0,0 +1,32 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.spreadsheet.dao.hibernate; + +import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetMarkDAO; +import org.lamsfoundation.lams.tool.spreadsheet.dao.UserModifiedSpreadsheetDAO; + +public class SpreadsheetMarkDAOHibernate extends BaseDAOHibernate implements SpreadsheetMarkDAO{ + +} + \ No newline at end of file Fisheye: Tag a7fed1be51941ace379dbb695d52bd08a315dae6 refers to a dead (removed) revision in file `lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/UserEditedSpreadsheetDAOHibernate.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/UserModifiedSpreadsheetDAOHibernate.java =================================================================== diff -u --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/UserModifiedSpreadsheetDAOHibernate.java (revision 0) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dao/hibernate/UserModifiedSpreadsheetDAOHibernate.java (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -0,0 +1,35 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.spreadsheet.dao.hibernate; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.lamsfoundation.lams.tool.spreadsheet.dao.UserModifiedSpreadsheetDAO; + +public class UserModifiedSpreadsheetDAOHibernate extends BaseDAOHibernate implements UserModifiedSpreadsheetDAO{ + +} Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dto/StatisticDTO.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dto/StatisticDTO.java (.../StatisticDTO.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dto/StatisticDTO.java (.../StatisticDTO.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -36,7 +36,7 @@ public StatisticDTO() { } - public StatisticDTO(String sessionName, int notMarkedCounter, int markedCounter, int totalSpreadsheetsSentByLearners) { + public StatisticDTO(String sessionName, int markedCounter, int notMarkedCounter, int totalSpreadsheetsSentByLearners) { this.sessionName = sessionName; this.notMarkedCounter = notMarkedCounter; this.markedCounter = markedCounter; Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dto/Summary.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dto/Summary.java (.../Summary.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/dto/Summary.java (.../Summary.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -29,6 +29,7 @@ import java.util.Set; import org.lamsfoundation.lams.tool.spreadsheet.model.Spreadsheet; +import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetSession; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; import org.lamsfoundation.lams.tool.spreadsheet.util.SpreadsheetWebUtils; @@ -63,8 +64,9 @@ * @param item * @param isInitGroup */ - public Summary(String sessionName, Spreadsheet spreadsheet, List users){ - this.sessionName = sessionName; + public Summary(SpreadsheetSession session, Spreadsheet spreadsheet, List users){ + this.sessionId = session.getSessionId(); + this.sessionName = session.getSessionName(); this.spreadsheet = spreadsheet; if (users != null) { this.users = users; Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.hbm.xml =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.hbm.xml (.../SpreadsheetMark.hbm.xml) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.hbm.xml (.../SpreadsheetMark.hbm.xml) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -27,7 +27,7 @@ + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/UserModifiedSpreadsheet.java =================================================================== diff -u --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/UserModifiedSpreadsheet.java (revision 0) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/model/UserModifiedSpreadsheet.java (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -0,0 +1,74 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $$Id$$ */ +package org.lamsfoundation.lams.tool.spreadsheet.model; + +import java.util.Date; +/** + * Spreadsheet + * @author Andrey Balan + * + * @hibernate.class table="tl_lasprd10_user_modified_spreadsheet" + * + */ +public class UserModifiedSpreadsheet { + + private Long uid; + private String userModifiedSpreadsheet; + private SpreadsheetMark mark; + + + /** + * @hibernate.id column="uid" generator-class="native" + */ + public Long getUid() { + return uid; + } + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="user_modified_spreadsheet" type="text" + * + * @return + */ + public String getUserModifiedSpreadsheet() { + return userModifiedSpreadsheet; + } + public void setUserModifiedSpreadsheet(String userModifiedSpreadsheet) { + this.userModifiedSpreadsheet = userModifiedSpreadsheet; + } + + /** + * @hibernate.many-to-one column="mark_id" + * cascade="all" + */ + public SpreadsheetMark getMark() { + return mark; + } + public void setMark(SpreadsheetMark mark) { + this.mark = mark; + } +} Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/ISpreadsheetService.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/ISpreadsheetService.java (.../ISpreadsheetService.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/ISpreadsheetService.java (.../ISpreadsheetService.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -38,6 +38,8 @@ import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetAttachment; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetSession; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; +import org.lamsfoundation.lams.tool.spreadsheet.model.UserModifiedSpreadsheet; +import org.lamsfoundation.lams.util.MessageService; /** * @author Andrey Balan @@ -72,13 +74,20 @@ //********** user methods ************* /** - * Save or update SpreadsheetUser in database, mostly for saving userEditedSpreadsheet. + * Save or update SpreadsheetUser in database, mostly for saving userModifiedSpreadsheet. * * @param user user which did modifications to spreadsheet */ void saveOrUpdateUser(SpreadsheetUser spreadsheetUser); /** + * Save or update UserModifiedSpreadsheet in database. + * + * @param userModifiedSpreadsheet + */ + void saveOrUpdateUserModifiedSpreadsheet(UserModifiedSpreadsheet userModifiedSpreadsheet); + + /** * Get user by given userID and toolContentID. * @param long1 * @return @@ -93,15 +102,21 @@ */ SpreadsheetUser getUserByIDAndSession(Long long1, Long sessionId); -// /** -// * Get user list by sessionId and itemUid -// * -// * @param sessionId -// * @param uid -// * @return -// */ -// List getUserListBySessionItem(Long sessionId, Long itemUid); - + /** + * Get user list by sessionId + * + * @param sessionId + * @return + */ + List getUserListBySessionId(Long sessionId); + + /** + * Get user by UID + * @param uid + * @return + */ + SpreadsheetUser getUser(Long uid); + //********** Repository methods *********************** /** * Delete file from repository. @@ -132,7 +147,7 @@ * @param sessionId * @return */ - SpreadsheetSession getSpreadsheetSessionBySessionId(Long sessionId); + SpreadsheetSession getSessionBySessionId(Long sessionId); /** * Save or update spreadsheet session. @@ -205,10 +220,17 @@ Map> getReflectList(Long contentId, boolean setEntry); /** - * Get user by UID - * @param uid + * Returns messageService + * * @return */ - SpreadsheetUser getUser(Long uid); + public MessageService getMessageService(); + + /** + * Release marks + * + * @param sessionId + */ + public void releaseMarksForSession(Long sessionId); } Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java (.../SpreadsheetServiceImpl.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/service/SpreadsheetServiceImpl.java (.../SpreadsheetServiceImpl.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -77,15 +77,17 @@ import org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants; import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetAttachmentDAO; import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetDAO; -import org.lamsfoundation.lams.tool.spreadsheet.dao.UserEditedSpreadsheetDAO; +import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetMarkDAO; +import org.lamsfoundation.lams.tool.spreadsheet.dao.UserModifiedSpreadsheetDAO; import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetSessionDAO; import org.lamsfoundation.lams.tool.spreadsheet.dao.SpreadsheetUserDAO; import org.lamsfoundation.lams.tool.spreadsheet.dto.ReflectDTO; import org.lamsfoundation.lams.tool.spreadsheet.dto.StatisticDTO; import org.lamsfoundation.lams.tool.spreadsheet.dto.Summary; import org.lamsfoundation.lams.tool.spreadsheet.model.Spreadsheet; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetAttachment; -import org.lamsfoundation.lams.tool.spreadsheet.model.UserEditedSpreadsheet; +import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetMark; +import org.lamsfoundation.lams.tool.spreadsheet.model.UserModifiedSpreadsheet; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetSession; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; import org.lamsfoundation.lams.tool.spreadsheet.util.ReflectDTOComparator; @@ -113,7 +115,8 @@ private SpreadsheetAttachmentDAO spreadsheetAttachmentDao; private SpreadsheetUserDAO spreadsheetUserDao; private SpreadsheetSessionDAO spreadsheetSessionDao; - private UserEditedSpreadsheetDAO userEditedSpreadsheetDao; + private UserModifiedSpreadsheetDAO userModifiedSpreadsheetDao; + private SpreadsheetMarkDAO spreadsheetMarkDao; //tool service private SpreadsheetToolContentHandler spreadsheetToolContentHandler; private MessageService messageService; @@ -245,6 +248,10 @@ spreadsheetUserDao.saveObject(spreadsheetUser); } + public void saveOrUpdateUserModifiedSpreadsheet(UserModifiedSpreadsheet userModifiedSpreadsheet) { + userModifiedSpreadsheetDao.saveObject(userModifiedSpreadsheet); + } + public SpreadsheetUser getUserByIDAndContent(Long userId, Long contentId) { return (SpreadsheetUser) spreadsheetUserDao.getUserByUserIDAndContentID(userId,contentId); } @@ -253,17 +260,11 @@ return (SpreadsheetUser) spreadsheetUserDao.getUserByUserIDAndSessionID(userId,sessionId); } -// public List getUserListBySessionItem(Long sessionId, Long itemUid) { -// List logList = taskListItemVisitDao.getTaskListItemLogBySession(sessionId,itemUid); -// List userList = new ArrayList(logList.size()); -// for(TaskListItemVisitLog visit : logList){ -// SpreadsheetUser user = visit.getUser(); -// user.setAccessDate(visit.getAccessDate()); -// userList.add(user); -// } -// return userList; -// } - + public List getUserListBySessionId(Long sessionId) { + List userList = spreadsheetUserDao.getBySessionID(sessionId); + return userList; + } + public void deleteFromRepository(Long fileUuid, Long fileVersionId) throws SpreadsheetApplicationException { ITicket ticket = getRepositoryLoginTicket(); try { @@ -362,7 +363,7 @@ Spreadsheet res = spreadsheetDao.getByContentId(contentId); return res; } - public SpreadsheetSession getSpreadsheetSessionBySessionId(Long sessionId) { + public SpreadsheetSession getSessionBySessionId(Long sessionId) { return spreadsheetSessionDao.getSessionBySessionId(sessionId); } @@ -401,7 +402,7 @@ for(SpreadsheetSession session:sessionList) { List userList = spreadsheetUserDao.getBySessionID(session.getSessionId()); - Summary summary = new Summary(session.getSessionName(), spreadsheet, userList); + Summary summary = new Summary(session, spreadsheet, userList); summaryList.add(summary); } @@ -418,9 +419,9 @@ int totalUserModifiedSpreadsheets = 0; int totalMarkedSpreadsheets = 0; for (SpreadsheetUser user:userList) { - if (user.getUserEditedSpreadsheet() != null) { + if (user.getUserModifiedSpreadsheet() != null) { totalUserModifiedSpreadsheets++; - if (user.getUserEditedSpreadsheet().getMark() != null) + if (user.getUserModifiedSpreadsheet().getMark() != null) totalMarkedSpreadsheets++; } } @@ -484,6 +485,18 @@ public SpreadsheetUser getUser(Long uid){ return (SpreadsheetUser) spreadsheetUserDao.getObject(SpreadsheetUser.class, uid); } + + public void releaseMarksForSession(Long sessionId){ + List users = spreadsheetUserDao.getBySessionID(sessionId); + for (SpreadsheetUser user: users) { + if ((user.getUserModifiedSpreadsheet() != null) && (user.getUserModifiedSpreadsheet().getMark() != null)) { + SpreadsheetMark mark = user.getUserModifiedSpreadsheet().getMark(); + mark.setDateMarksReleased(new Date()); + spreadsheetMarkDao.saveObject(mark); + } + } + } + //***************************************************************************** // private methods //***************************************************************************** @@ -593,6 +606,9 @@ public void setMessageService(MessageService messageService) { this.messageService = messageService; } + public MessageService getMessageService() { + return messageService; + } public void setRepositoryService(IRepositoryService repositoryService) { this.repositoryService = repositoryService; } @@ -614,9 +630,12 @@ public void setToolService(ILamsToolService toolService) { this.toolService = toolService; } - public void setUserEditedSpreadsheetDao(UserEditedSpreadsheetDAO userEditedSpreadsheetDao) { - this.userEditedSpreadsheetDao = userEditedSpreadsheetDao; + public void setUserModifiedSpreadsheetDao(UserModifiedSpreadsheetDAO userModifiedSpreadsheetDao) { + this.userModifiedSpreadsheetDao = userModifiedSpreadsheetDao; } + public void setSpreadsheetMarkDao(SpreadsheetMarkDAO spreadsheetMarkDao) { + this.spreadsheetMarkDao = spreadsheetMarkDao; + } //******************************************************************************* //ToolContentManager, ToolSessionManager methods Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/spreadsheetApplicationContext.xml =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/spreadsheetApplicationContext.xml (.../spreadsheetApplicationContext.xml) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/spreadsheetApplicationContext.xml (.../spreadsheetApplicationContext.xml) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -21,7 +21,8 @@ org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetUser.hbm.xml org/lamsfoundation/lams/tool/spreadsheet/model/Spreadsheet.hbm.xml - org/lamsfoundation/lams/tool/spreadsheet/model/UserEditedSpreadsheet.hbm.xml + org/lamsfoundation/lams/tool/spreadsheet/model/UserModifiedSpreadsheet.hbm.xml + org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetMark.hbm.xml org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetAttachment.hbm.xml org/lamsfoundation/lams/tool/spreadsheet/model/SpreadsheetSession.hbm.xml @@ -34,11 +35,18 @@ - + + + + + + + + @@ -68,9 +76,12 @@ - - + + + + + @@ -119,6 +130,7 @@ PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED PROPAGATION_REQUIRED, -java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java (.../LearningAction.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java (.../LearningAction.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -60,7 +60,7 @@ import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetAttachment; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetSession; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; -import org.lamsfoundation.lams.tool.spreadsheet.model.UserEditedSpreadsheet; +import org.lamsfoundation.lams.tool.spreadsheet.model.UserModifiedSpreadsheet; import org.lamsfoundation.lams.tool.spreadsheet.service.ISpreadsheetService; import org.lamsfoundation.lams.tool.spreadsheet.service.SpreadsheetApplicationException; import org.lamsfoundation.lams.tool.spreadsheet.service.UploadSpreadsheetFileException; @@ -151,16 +151,6 @@ Spreadsheet spreadsheet; spreadsheet = service.getSpreadsheetBySessionId(sessionId); - - -// SpreadsheetForm spreadsheetForm = (SpreadsheetForm)form; -// spreadsheetForm.setSessionMapID(sessionMap.getSessionID()); -// spreadsheetForm.setSpreadsheet(spreadsheet); -// sessionMap.put(SpreadsheetConstants.ATTR_RESOURCE_FORM, spreadsheetForm); -// request.setAttribute("spreadsheet.code", spreadsheet.getCode()); - - - //check whehter finish lock is on/off boolean lock = spreadsheet.getLockWhenFinished() && spreadsheetUser !=null && spreadsheetUser.isSessionFinished(); @@ -230,32 +220,20 @@ //load up learner changes in spreadsheet if such option is activated in spreadsheet ISpreadsheetService service = getSpreadsheetService(); Spreadsheet spreadsheet = (Spreadsheet) sessionMap.get(SpreadsheetConstants.ATTR_RESOURCE); + SpreadsheetUser spreadsheetUser = getCurrentUser(service, sessionId); if(spreadsheet.isLearnerAllowedToSave() && !mode.isTeacher()){ - SpreadsheetUser spreadsheetUser = getCurrentUser(service, sessionId); - if (spreadsheetUser.getUserEditedSpreadsheet() != null) { - spreadsheet.setCode(spreadsheetUser.getUserEditedSpreadsheet().getUserEditedSpreadsheet()); + if (spreadsheetUser.getUserModifiedSpreadsheet() != null) { + spreadsheet.setCode(spreadsheetUser.getUserModifiedSpreadsheet().getUserModifiedSpreadsheet()); } } - - - -// request.setAttribute(SpreadsheetConstants.ATTR_CODE, spreadsheet.getCode()); -// SpreadsheetForm spreadsheetForm = (SpreadsheetForm )form; -// try { -// PropertyUtils.copyProperties(spreadsheetForm, existForm); -// } catch (Exception e) { -// throw new ServletException(e); -// } -// + SpreadsheetForm spreadsheetForm = (SpreadsheetForm)form; -// spreadsheetForm.setSessionMapID(sessionMap.getSessionID()); spreadsheetForm.setSpreadsheet(spreadsheet); -// sessionMap.put(SpreadsheetConstants.ATTR_RESOURCE_FORM, spreadsheetForm); -// request.setAttribute("spreadsheet.code", spreadsheet.getCode()); + if ((spreadsheetUser != null) && (spreadsheetUser.getUserModifiedSpreadsheet() != null) && (spreadsheetUser.getUserModifiedSpreadsheet().getMark() != null) && (spreadsheetUser.getUserModifiedSpreadsheet().getMark().getDateMarksReleased() != null)) { + request.setAttribute(SpreadsheetConstants.ATTR_USER_MARK, spreadsheetUser.getUserModifiedSpreadsheet().getMark()); + } - - if(mode.isAuthor()) { return mapping.findForward(SpreadsheetConstants.SUCCESS); } else { @@ -288,15 +266,22 @@ if(spreadsheetPO.isLearnerAllowedToSave() && !mode.isTeacher()){ SpreadsheetUser spreadsheetUser = getCurrentUser(service,sessionId); - UserEditedSpreadsheet userEditedSpreadsheet = new UserEditedSpreadsheet(); + UserModifiedSpreadsheet userModifiedSpreadsheet = new UserModifiedSpreadsheet(); String code = ((SpreadsheetForm)form).getSpreadsheet().getCode(); - userEditedSpreadsheet.setUserEditedSpreadsheet(code); - spreadsheetUser.setUserEditedSpreadsheet(userEditedSpreadsheet); + userModifiedSpreadsheet.setUserModifiedSpreadsheet(code); + spreadsheetUser.setUserModifiedSpreadsheet(userModifiedSpreadsheet); service.saveOrUpdateUser(spreadsheetUser); } - boolean finishSession = WebUtil.readBooleanParam(request, "finishSession"); - ForwardConfig conf = finishSession ? mapping.findForwardConfig("finishSession") : mapping.findForwardConfig("continueReflect"); + String typeOfAction = WebUtil.readStrParam(request, "typeOfAction"); + ForwardConfig conf; + if ("finishSession".equals(typeOfAction)) { + conf = mapping.findForwardConfig("finishSession"); + } else if ("continueReflect".equals(typeOfAction)) { + conf = mapping.findForwardConfig("continueReflect"); + } else { + conf = mapping.findForwardConfig("saveUserSpreadsheet"); + } ActionRedirect redirect = new ActionRedirect(conf); redirect.addParameter(SpreadsheetConstants.ATTR_SESSION_MAP_ID, sessionMapID); redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); @@ -421,7 +406,7 @@ SpreadsheetUser spreadsheetUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),sessionId); if(spreadsheetUser == null){ - SpreadsheetSession session = service.getSpreadsheetSessionBySessionId(sessionId); + SpreadsheetSession session = service.getSessionBySessionId(sessionId); spreadsheetUser = new SpreadsheetUser(user,session); service.saveOrUpdateUser(spreadsheetUser); } Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -24,33 +24,53 @@ /* $Id$ */ package org.lamsfoundation.lams.tool.spreadsheet.web.action; +import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.PrintWriter; +import java.sql.Timestamp; +import java.text.NumberFormat; import java.util.ArrayList; +import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import java.util.TreeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.struts.action.Action; +import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.action.ActionRedirect; +import org.apache.struts.config.ForwardConfig; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants; import org.lamsfoundation.lams.tool.spreadsheet.dto.ReflectDTO; import org.lamsfoundation.lams.tool.spreadsheet.dto.StatisticDTO; import org.lamsfoundation.lams.tool.spreadsheet.dto.Summary; import org.lamsfoundation.lams.tool.spreadsheet.model.Spreadsheet; +import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetMark; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetSession; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; import org.lamsfoundation.lams.tool.spreadsheet.service.ISpreadsheetService; +import org.lamsfoundation.lams.tool.spreadsheet.web.form.MarkForm; +import org.lamsfoundation.lams.tool.spreadsheet.web.form.SpreadsheetForm; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -72,12 +92,22 @@ if (param.equals("doStatistic")) { return doStatistic(mapping, form, request, response); } + if (param.equals("viewAllMarks")) { + return viewAllMarks(mapping, form, request, response); + } + if (param.equals("releaseMarks")) { + return releaseMarks(mapping, form, request, response); + } + if (param.equals("downloadMarks")) { + return downloadMarks(mapping, form, request, response); + } if (param.equals("editMark")) { return editMark(mapping, form, request, response); } -// if (param.equals("listuser")) { -// return listuser(mapping, form, request, response); -// } + if (param.equals("saveMark")) { + return saveMark(mapping, form, request, response); + } + if (param.equals("viewReflection")) { return viewReflection(mapping, form, request, response); } @@ -90,8 +120,6 @@ SessionMap sessionMap = new SessionMap(); request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); request.setAttribute(SpreadsheetConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); -// save contentFolderID into session - sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID,WebUtil.readStrParam(request,AttributeNames.PARAM_CONTENT_FOLDER_ID)); Long contentId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); ISpreadsheetService service = getSpreadsheetService(); @@ -111,6 +139,7 @@ sessionMap.put(SpreadsheetConstants.ATTR_RESOURCE, spreadsheet); sessionMap.put(SpreadsheetConstants.ATTR_TOOL_CONTENT_ID, contentId); sessionMap.put(SpreadsheetConstants.ATTR_REFLECT_LIST, reflectList); + sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID)); return mapping.findForward(SpreadsheetConstants.SUCCESS); } @@ -128,27 +157,231 @@ List statisticList = getSpreadsheetService().getStatistics(contentId); request.setAttribute(SpreadsheetConstants.ATTR_STATISTIC_LIST, statisticList); - return mapping.findForward("statistic"); - + return mapping.findForward(SpreadsheetConstants.SUCCESS); } - public ActionForward editMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - Long sessionID =new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID)); - Long userId = WebUtil.readLongParam(request, "userID"); + /** + * View mark of all learner from same tool content ID. + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward viewAllMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ - SpreadsheetUser user = getSpreadsheetService().getUser(userId); + Long sessionId = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID)); + ISpreadsheetService service = getSpreadsheetService(); -// user.getUserEditedSpreadsheet().getMark(). + //return FileDetailsDTO list according to the given sessionID + List userList = service.getUserListBySessionId(sessionId); + request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID,sessionId); + request.setAttribute(SpreadsheetConstants.ATTR_USER_LIST, userList); -// submitFilesService = getSubmitFilesService(); -// //return FileDetailsDTO list according to the given userID and sessionID -// List files = submitFilesService.getFilesUploadedByUser(userID,sessionID); -// -// request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID,sessionID); -// request.setAttribute("report",files); - return mapping.findForward("success"); + return mapping.findForward("viewAllMarks"); + } + + /** + * Release mark + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward releaseMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ + + //get service then update report table + ISpreadsheetService service = getSpreadsheetService(); + Long sessionID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID)); + + service.releaseMarksForSession(sessionID); + try { + PrintWriter out = response.getWriter(); + SpreadsheetSession session = service.getSessionBySessionId(sessionID); + String sessionName = ""; + if(session != null) + sessionName = session.getSessionName(); + out.write(service.getMessageService().getMessage("msg.mark.released",new String[]{sessionName})); + out.flush(); + } catch (IOException e) { + } + + return null; + } + + /** + * Download Spreadsheet marks by MS Excel file format. + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward downloadMarks(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ + + Long sessionID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_SESSION_ID)); + //return user list according to the given sessionID + ISpreadsheetService service = getSpreadsheetService(); + List userList = service.getUserListBySessionId(sessionID); + + //construct Excel file format and download + String errors = null; + try { + //create an empty excel file + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sheet = wb.createSheet("Marks"); + sheet.setColumnWidth((short)0,(short)5000); + sheet.setColumnWidth((short)2,(short)8000); + HSSFRow row; + HSSFCell cell; + + short idx = (short) 0; + + row = sheet.createRow(idx++); + cell = row.createCell((short) 0); + cell.setEncoding(HSSFCell.ENCODING_UTF_16); + cell.setCellValue(service.getMessageService().getMessage("label.monitoring.downloadmarks.learner.name")); + + cell = row.createCell((short) 1); + cell.setEncoding(HSSFCell.ENCODING_UTF_16); + cell.setCellValue(service.getMessageService().getMessage("label.monitoring.downloadmarks.marks")); + + cell = row.createCell((short) 2); + cell.setEncoding(HSSFCell.ENCODING_UTF_16); + cell.setCellValue(service.getMessageService().getMessage("label.monitoring.downloadmarks.comments")); + + for(SpreadsheetUser user : userList){ + if ((user.getUserModifiedSpreadsheet() != null) && (user.getUserModifiedSpreadsheet().getMark() != null)) { + SpreadsheetMark mark = user.getUserModifiedSpreadsheet().getMark(); + row = sheet.createRow(idx++); + + short count = 0; + + cell = row.createCell((short) count++); + cell.setEncoding(HSSFCell.ENCODING_UTF_16); + cell.setCellValue(user.getLoginName()); + +// sheet.setColumnWidth((short) count,(short)8000); + + cell = row.createCell((short) count++); + if(mark.getMarks() != null){ + String marks = ""; + try { + NumberFormat format = NumberFormat.getInstance(); + format.setMaximumFractionDigits(1); + marks = format.format(NumberUtils.createFloat(mark.getMarks())); + } catch (Exception e) { + } + cell.setCellValue(marks); + }else { + cell.setCellValue(""); + } + + cell = row.createCell((short) count++); + cell.setEncoding(HSSFCell.ENCODING_UTF_16); + cell.setCellValue(mark.getComments()); + } + } + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + wb.write(bos); + + //construct download file response header + String fileName = "marks" + sessionID+".xls"; + String mineType = "application/vnd.ms-excel"; + String header = "attachment; filename=\"" + fileName + "\";"; + response.setContentType(mineType); + response.setHeader("Content-Disposition",header); + + byte[] data = bos.toByteArray(); + response.getOutputStream().write(data,0,data.length); + response.getOutputStream().flush(); + } catch (Exception e) { + log.error(e); + errors =new ActionMessage("monitoring.download.error",e.toString()).toString(); + } + + if(errors != null){ + try { + PrintWriter out = response.getWriter(); + out.write(errors); + out.flush(); + } catch (IOException e) { + } + } + + return null; } + + public ActionForward editMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + String sessionMapID = WebUtil.readStrParam(request, SpreadsheetConstants.ATTR_SESSION_MAP_ID); + Long userUid = WebUtil.readLongParam(request, SpreadsheetConstants.ATTR_USER_UID); + SpreadsheetUser user = getSpreadsheetService().getUser(userUid); + +// if((user == null) || (user.getUserModifiedSpreadsheet() == null)){ +// ActionErrors errors = new ActionErrors(); +// errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(SpreadsheetConstants.ERROR_MSG_MARKS_BLANK)); +// this.addErrors(request,errors); +// return mapping.findForward("error"); +// } + + MarkForm markForm = (MarkForm) form; + markForm.setSessionMapID(sessionMapID); + markForm.setUserUid(user.getUid()); + if (user.getUserModifiedSpreadsheet().getMark() != null) { + SpreadsheetMark mark = user.getUserModifiedSpreadsheet().getMark(); + markForm.setMarks(mark.getMarks()); + markForm.setComments(mark.getComments()); + } + + return (user == null) ? null : mapping.findForward(SpreadsheetConstants.SUCCESS); + } + + public ActionForward saveMark(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + MarkForm markForm = (MarkForm)form; + + ActionErrors errors = validateTaskListItem(markForm); + + if(!errors.isEmpty()){ + this.addErrors(request,errors); + return mapping.findForward("editMark"); + } + + Long userUid = markForm.getUserUid(); + SpreadsheetUser user = getSpreadsheetService().getUser(userUid); + if((user != null) && (user.getUserModifiedSpreadsheet() != null)){ + //check whether it is "edit(old item)" or "add(new item)" + SpreadsheetMark mark; + if(user.getUserModifiedSpreadsheet().getMark() == null){ //new mark + mark = new SpreadsheetMark(); + user.getUserModifiedSpreadsheet().setMark(mark); + } else { //edit + mark = user.getUserModifiedSpreadsheet().getMark(); + } + mark.setMarks(markForm.getMarks()); + mark.setComments(markForm.getComments()); + + getSpreadsheetService().saveOrUpdateUserModifiedSpreadsheet(user.getUserModifiedSpreadsheet()); + } + + //update user data in sessionMap + String sessionMapID = markForm.getSessionMapID(); + SessionMap sessionMap = (SessionMap)request.getSession().getAttribute(sessionMapID); + List summaryList = (List) sessionMap.get(SpreadsheetConstants.ATTR_SUMMARY_LIST); + for (Summary summary : summaryList) { + for (SpreadsheetUser sessionUser : summary.getUsers()) { + if (sessionUser.getUid().equals(user.getUid())) + sessionUser.setUserModifiedSpreadsheet(user.getUserModifiedSpreadsheet()); + } + } + //set session map ID so that itemlist.jsp can get sessionMAP + request.setAttribute(SpreadsheetConstants.ATTR_SESSION_MAP_ID, markForm.getSessionMapID()); + + return mapping.findForward(SpreadsheetConstants.SUCCESS); + } + // private ActionForward listuser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { // Long sessionId = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); // Long itemUid = WebUtil.readLongParam(request, SpreadsheetConstants.PARAM_RESOURCE_ITEM_UID); @@ -175,7 +408,7 @@ CoreNotebookConstants.NOTEBOOK_TOOL, SpreadsheetConstants.TOOL_SIGNATURE, user.getUserId().intValue()); - SpreadsheetSession session = service.getSpreadsheetSessionBySessionId(sessionID); + SpreadsheetSession session = service.getSessionBySessionId(sessionID); ReflectDTO refDTO = new ReflectDTO(user); if(notebookEntry == null){ @@ -211,4 +444,19 @@ .getServletContext()); return (ISpreadsheetService) wac.getBean(SpreadsheetConstants.RESOURCE_SERVICE); } + + /** + * Vaidate UserModifiedSpreadsheet mark + * @param itemForm + * @return + */ + private ActionErrors validateTaskListItem(MarkForm markForm) { + ActionErrors errors = new ActionErrors(); + if(StringUtils.isBlank(markForm.getMarks())) + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(SpreadsheetConstants.ERROR_MSG_MARKS_BLANK)); + if(StringUtils.isBlank(markForm.getComments())) + errors.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(SpreadsheetConstants.ERROR_MSG_COMMENTS_BLANK)); + + return errors; + } } Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/ViewItemAction.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/ViewItemAction.java (.../ViewItemAction.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/ViewItemAction.java (.../ViewItemAction.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -130,17 +130,13 @@ * @return */ private ActionForward reviewItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { -// String mode = request.getParameter(AttributeNames.ATTR_MODE); -// -// String sessionMapID = WebUtil.readStrParam(request, SpreadsheetConstants.ATTR_SESSION_MAP_ID); -// SessionMap sessionMap = (SessionMap)request.getSession().getAttribute(sessionMapID); Long userId = WebUtil.readLongParam(request, SpreadsheetConstants.ATTR_USER_UID); SpreadsheetUser user = getSpreadsheetService().getUser(userId); request.setAttribute(SpreadsheetConstants.ATTR_USER_NAME, user.getLoginName()); String code = null; - if (user.getUserEditedSpreadsheet() != null) { - code = user.getUserEditedSpreadsheet().getUserEditedSpreadsheet(); + if (user.getUserModifiedSpreadsheet() != null) { + code = user.getUserModifiedSpreadsheet().getUserModifiedSpreadsheet(); } request.setAttribute(SpreadsheetConstants.ATTR_CODE, code); Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/form/MarkForm.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/form/MarkForm.java (.../MarkForm.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/form/MarkForm.java (.../MarkForm.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -27,9 +27,13 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; import org.apache.struts.upload.FormFile; +import org.lamsfoundation.lams.tool.spreadsheet.SpreadsheetConstants; import org.lamsfoundation.lams.tool.spreadsheet.model.Spreadsheet; import org.lamsfoundation.lams.tool.spreadsheet.model.SpreadsheetUser; @@ -44,23 +48,23 @@ private static final long serialVersionUID = -6028705988278223361L; //Forum fields - private String sessionMapId; - private SpreadsheetUser user; + private String sessionMapID; + private Long userUid; private String marks; private String comments; - public String getSessionMapId() { - return sessionMapId; + public String getSessionMapID() { + return sessionMapID; } - public void setSessionMapId(String sessionMapId) { - this.sessionMapId = sessionMapId; + public void setSessionMapID(String sessionMapID) { + this.sessionMapID = sessionMapID; } - public SpreadsheetUser getUser() { - return user; + public Long getUserUid() { + return userUid; } - public void setUser(SpreadsheetUser user) { - this.user = user; + public void setUserUid(Long userUid) { + this.userUid = userUid; } public String getMarks() { @@ -76,6 +80,7 @@ public void setComments(String comments) { this.comments = comments; } + } \ No newline at end of file Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/servlet/ExportServlet.java =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -121,7 +121,7 @@ if ( toolContentID != null ) { content = service.getSpreadsheetByContentId(toolContentID); } else { - SpreadsheetSession session=service.getSpreadsheetSessionBySessionId(toolSessionID); + SpreadsheetSession session=service.getSessionBySessionId(toolSessionID); if ( session != null ) content = session.getSpreadsheet(); } Index: lams_tool_spreadsheet/web/pages/learning/learning.jsp =================================================================== diff -u -r7f9f772433a7fd55c4475241d4e3bc0765f474e8 -ra7fed1be51941ace379dbb695d52bd08a315dae6 --- lams_tool_spreadsheet/web/pages/learning/learning.jsp (.../learning.jsp) (revision 7f9f772433a7fd55c4475241d4e3bc0765f474e8) +++ lams_tool_spreadsheet/web/pages/learning/learning.jsp (.../learning.jsp) (revision a7fed1be51941ace379dbb695d52bd08a315dae6) @@ -19,28 +19,29 @@ + @@ -89,134 +137,16 @@ <%-- Summary list --%> - -
- -
-
+ + - -

${summary.sessionName}

-

-
+<%@ include file="/common/messages.jsp"%> - - - - - - - +
+ <%@ include file="/pages/monitoring/summarylist.jsp"%> +
- - - - - - - - - - - - -
- - - - -
- - - - - - - ${user.loginName} - - - - ${user.loginName} - - - - - - tick - - - - cross - - - - - - - -
- -
- - - - - - - - - -
-
- - <%-- Reflection list --%> - - - -

- - - - - - - - - - - - - - -
- - - -
- ${user.loginName} - - - - - - - -
-
-
- - - - - - -