Index: lams_tool_scribe/db/sql/create_lams_tool_scribe.sql =================================================================== diff -u -r74267305b37a60850dca2e40d5dcb975fe2efc32 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/db/sql/create_lams_tool_scribe.sql (.../create_lams_tool_scribe.sql) (revision 74267305b37a60850dca2e40d5dcb975fe2efc32) +++ lams_tool_scribe/db/sql/create_lams_tool_scribe.sql (.../create_lams_tool_scribe.sql) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -3,17 +3,22 @@ SET FOREIGN_KEY_CHECKS=0; drop table if exists tl_lascrb11_attachment; drop table if exists tl_lascrb11_heading; +drop table if exists tl_lascrb11_report_entry; drop table if exists tl_lascrb11_scribe; drop table if exists tl_lascrb11_session; drop table if exists tl_lascrb11_user; create table tl_lascrb11_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, scribe_uid bigint, primary key (uid)); -create table tl_lascrb11_heading (uid bigint not null auto_increment, heading text, report text, scribe_uid bigint, display_order integer, primary key (uid)); +create table tl_lascrb11_heading (uid bigint not null auto_increment, heading text, scribe_uid bigint, display_order integer, primary key (uid)); +create table tl_lascrb11_report_entry (uid bigint not null auto_increment, entry_text text, scribe_heading_uid bigint, scribe_session_uid bigint, primary key (uid)); create table tl_lascrb11_scribe (uid bigint not null auto_increment, create_date datetime, update_date datetime, create_by bigint, title varchar(255), instructions text, run_offline bit, lock_on_finished bit, auto_select_scribe bit, reflect_on_activity bit, reflect_instructions text, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, primary key (uid)); -create table tl_lascrb11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, primary key (uid)); -create table tl_lascrb11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, scribe_session_uid bigint, primary key (uid)); +create table tl_lascrb11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, appointed_scribe_uid bigint, primary key (uid)); +create table tl_lascrb11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, scribe_session_uid bigint, report_approved bit, primary key (uid)); alter table tl_lascrb11_attachment add index FK57953706B3FA1495 (scribe_uid), add constraint FK57953706B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); alter table tl_lascrb11_heading add index FK428A22FFB3FA1495 (scribe_uid), add constraint FK428A22FFB3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_report_entry add index FK5439FACAEA50D086 (scribe_heading_uid), add constraint FK5439FACAEA50D086 foreign key (scribe_heading_uid) references tl_lascrb11_heading (uid); +alter table tl_lascrb11_report_entry add index FK5439FACA1C266FAE (scribe_session_uid), add constraint FK5439FACA1C266FAE foreign key (scribe_session_uid) references tl_lascrb11_session (uid); alter table tl_lascrb11_session add index FK89732793B3FA1495 (scribe_uid), add constraint FK89732793B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_session add index FK89732793E46919FF (appointed_scribe_uid), add constraint FK89732793E46919FF foreign key (appointed_scribe_uid) references tl_lascrb11_user (uid); alter table tl_lascrb11_user add index FK187DAFEE1C266FAE (scribe_session_uid), add constraint FK187DAFEE1C266FAE foreign key (scribe_session_uid) references tl_lascrb11_session (uid); INSERT INTO tl_lascrb11_scribe ( @@ -39,7 +44,7 @@ 0, 0, 0, - 0 + 1 ); SET FOREIGN_KEY_CHECKS=1; Index: lams_tool_scribe/db/sql/table-schema.sql =================================================================== diff -u -r74267305b37a60850dca2e40d5dcb975fe2efc32 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/db/sql/table-schema.sql (.../table-schema.sql) (revision 74267305b37a60850dca2e40d5dcb975fe2efc32) +++ lams_tool_scribe/db/sql/table-schema.sql (.../table-schema.sql) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -1,18 +1,26 @@ alter table tl_lascrb11_attachment drop foreign key FK57953706B3FA1495; alter table tl_lascrb11_heading drop foreign key FK428A22FFB3FA1495; +alter table tl_lascrb11_report_entry drop foreign key FK5439FACAEA50D086; +alter table tl_lascrb11_report_entry drop foreign key FK5439FACA1C266FAE; alter table tl_lascrb11_session drop foreign key FK89732793B3FA1495; +alter table tl_lascrb11_session drop foreign key FK89732793E46919FF; alter table tl_lascrb11_user drop foreign key FK187DAFEE1C266FAE; drop table if exists tl_lascrb11_attachment; drop table if exists tl_lascrb11_heading; +drop table if exists tl_lascrb11_report_entry; drop table if exists tl_lascrb11_scribe; drop table if exists tl_lascrb11_session; drop table if exists tl_lascrb11_user; create table tl_lascrb11_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, scribe_uid bigint, primary key (uid)); -create table tl_lascrb11_heading (uid bigint not null auto_increment, heading text, report text, scribe_uid bigint, display_order integer, primary key (uid)); +create table tl_lascrb11_heading (uid bigint not null auto_increment, heading text, scribe_uid bigint, display_order integer, primary key (uid)); +create table tl_lascrb11_report_entry (uid bigint not null auto_increment, entry_text text, scribe_heading_uid bigint, scribe_session_uid bigint, primary key (uid)); create table tl_lascrb11_scribe (uid bigint not null auto_increment, create_date datetime, update_date datetime, create_by bigint, title varchar(255), instructions text, run_offline bit, lock_on_finished bit, auto_select_scribe bit, reflect_on_activity bit, reflect_instructions text, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, primary key (uid)); -create table tl_lascrb11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, primary key (uid)); -create table tl_lascrb11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, scribe_session_uid bigint, primary key (uid)); +create table tl_lascrb11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, appointed_scribe_uid bigint, primary key (uid)); +create table tl_lascrb11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, scribe_session_uid bigint, report_approved bit, primary key (uid)); alter table tl_lascrb11_attachment add index FK57953706B3FA1495 (scribe_uid), add constraint FK57953706B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); alter table tl_lascrb11_heading add index FK428A22FFB3FA1495 (scribe_uid), add constraint FK428A22FFB3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_report_entry add index FK5439FACAEA50D086 (scribe_heading_uid), add constraint FK5439FACAEA50D086 foreign key (scribe_heading_uid) references tl_lascrb11_heading (uid); +alter table tl_lascrb11_report_entry add index FK5439FACA1C266FAE (scribe_session_uid), add constraint FK5439FACA1C266FAE foreign key (scribe_session_uid) references tl_lascrb11_session (uid); alter table tl_lascrb11_session add index FK89732793B3FA1495 (scribe_uid), add constraint FK89732793B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_session add index FK89732793E46919FF (appointed_scribe_uid), add constraint FK89732793E46919FF foreign key (appointed_scribe_uid) references tl_lascrb11_user (uid); alter table tl_lascrb11_user add index FK187DAFEE1C266FAE (scribe_session_uid), add constraint FK187DAFEE1C266FAE foreign key (scribe_session_uid) references tl_lascrb11_session (uid); Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeHeadingDAO.java =================================================================== diff -u -r315338d7ea7973597c748959e33d77050e4450d8 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeHeadingDAO.java (.../IScribeHeadingDAO.java) (revision 315338d7ea7973597c748959e33d77050e4450d8) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeHeadingDAO.java (.../IScribeHeadingDAO.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -14,7 +14,7 @@ * * 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 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * * http://www.gnu.org/licenses/gpl.txt Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeHeadingDAO.java =================================================================== diff -u -r315338d7ea7973597c748959e33d77050e4450d8 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeHeadingDAO.java (.../ScribeHeadingDAO.java) (revision 315338d7ea7973597c748959e33d77050e4450d8) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeHeadingDAO.java (.../ScribeHeadingDAO.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -14,7 +14,7 @@ * * 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 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * * http://www.gnu.org/licenses/gpl.txt Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java (.../ScribeDTO.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java (.../ScribeDTO.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -33,6 +33,7 @@ import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.tool.scribe.model.Scribe; import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; +import org.lamsfoundation.lams.tool.scribe.model.ScribeHeading; public class ScribeDTO { @@ -60,18 +61,19 @@ public Set offlineInstructionsFiles = new TreeSet(); - public Set sessionDTOs = new TreeSet();; + public Set sessionDTOs = new TreeSet(); public ScribeDTO(Scribe scribe) { toolContentId = scribe.getToolContentId(); title = scribe.getTitle(); instructions = scribe.getInstructions(); onlineInstructions = scribe.getOnlineInstructions(); offlineInstructions = scribe.getOfflineInstructions(); - contentInUse = scribe.getContentInUse(); + contentInUse = scribe.isContentInUse(); reflectInstructions = scribe.getReflectInstructions(); - reflectOnActivity = scribe.getReflectOnActivity(); + reflectOnActivity = scribe.isReflectOnActivity(); + // Adding attachments for (Iterator i = scribe.getScribeAttachments().iterator(); i.hasNext();) { ScribeAttachment att = (ScribeAttachment) i.next(); if (att.getFileType().equals(IToolContentHandler.TYPE_OFFLINE)) { @@ -86,7 +88,11 @@ logger.error("File with uid " + att.getFileUuid() + " contains invalid fileType: " + att.getFileType()); } - } + } + + logger.debug("Scribe contains " + scribe.getScribeHeadings().size() + " headings"); + + logger.debug("Scribe uid = " + scribe.getUid()); } public Set getSessionDTOs() { Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeHeadingDTO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeHeadingDTO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeHeadingDTO.java (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -0,0 +1,58 @@ +package org.lamsfoundation.lams.tool.scribe.dto; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.tool.scribe.model.ScribeHeading; + +public class ScribeHeadingDTO implements Comparable{ + + private static Logger logger = Logger.getLogger(ScribeDTO.class); + + private Long uid; + + private String headingText; + + private Integer displayOrder; + + public ScribeHeadingDTO(ScribeHeading heading) { + this.uid = heading.getUid(); + this.headingText = heading.getHeadingText(); + this.displayOrder = heading.getDisplayOrder(); + } + + public int getDisplayOrder() { + return displayOrder; + } + + public void setDisplayOrder(int displayOrder) { + this.displayOrder = displayOrder; + } + + public String getHeadingText() { + return headingText; + } + + public void setHeadingText(String headingText) { + this.headingText = headingText; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public int compareTo(ScribeHeadingDTO o) { + + int returnValue = this.displayOrder.compareTo(o.displayOrder); + + if (returnValue == 0) { + logger.debug("compareTo: Different scribeHeadings have equal displayOrder"); + returnValue = this.uid.compareTo(o.uid); + } + + return returnValue; + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeReportEntryDTO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeReportEntryDTO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeReportEntryDTO.java (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -0,0 +1,48 @@ +package org.lamsfoundation.lams.tool.scribe.dto; + +import org.lamsfoundation.lams.tool.scribe.model.ScribeReportEntry; + +public class ScribeReportEntryDTO implements Comparable{ + + private Long uid; + + private String entryText; + + private ScribeHeadingDTO headingDTO; + + public ScribeReportEntryDTO(ScribeReportEntry reportEntry) { + this.uid = reportEntry.getUid(); + this.entryText = reportEntry.getEntryText(); + this.headingDTO = new ScribeHeadingDTO(reportEntry.getScribeHeading()); + } + + public int compareTo(ScribeReportEntryDTO o) { + return this.headingDTO.compareTo(o.headingDTO); + } + + // Getters / Setters + public ScribeHeadingDTO getHeadingDTO() { + return headingDTO; + } + + public void setHeadingDTO(ScribeHeadingDTO headingDTO) { + this.headingDTO = headingDTO; + } + + public String getEntryText() { + return entryText; + } + + public void setEntryText(String entryText) { + this.entryText = entryText; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + +} \ No newline at end of file Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeSessionDTO.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeSessionDTO.java (.../ScribeSessionDTO.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeSessionDTO.java (.../ScribeSessionDTO.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -25,10 +25,11 @@ package org.lamsfoundation.lams.tool.scribe.dto; -import java.util.List; +import java.util.Iterator; import java.util.Set; import java.util.TreeSet; +import org.lamsfoundation.lams.tool.scribe.model.ScribeReportEntry; import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; public class ScribeSessionDTO implements Comparable { @@ -43,11 +44,20 @@ int numberOfLearners; + Set reportDTOs; + public ScribeSessionDTO(ScribeSession session) { this.sessionID = session.getSessionId(); this.sessionName = session.getSessionName(); userDTOs = new TreeSet(); + reportDTOs = new TreeSet(); + + // add the report DTOs + for (Iterator iter = session.getScribeReportEntries().iterator(); iter.hasNext();) { + ScribeReportEntry report = (ScribeReportEntry) iter.next(); + reportDTOs.add(new ScribeReportEntryDTO(report)); + } } public ScribeSessionDTO() { @@ -103,4 +113,12 @@ public void setNumberOfPosts(int numberOfPosts) { this.numberOfPosts = numberOfPosts; } + + public Set getReportDTOs() { + return reportDTOs; + } + + public void setReportDTOs(Set reportDTOs) { + this.reportDTOs = reportDTOs; + } } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeUserDTO.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeUserDTO.java (.../ScribeUserDTO.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeUserDTO.java (.../ScribeUserDTO.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -43,18 +43,18 @@ public boolean finishedReflection; - public int postCount; - public boolean finishedActivity; + public boolean reportApproved; + public ScribeUserDTO(ScribeUser user) { this.uid = user.getUid(); this.loginName = user.getLoginName(); this.firstName = user.getFirstName(); this.lastName = user.getLastName(); this.userID = user.getUserId(); - this.finishedActivity = user.getFinishedActivity(); - postCount=0; // this needs to be set manually. + this.finishedActivity = user.isFinishedActivity(); + this.reportApproved = user.isReportApproved(); } public int compareTo(Object o) { @@ -91,14 +91,6 @@ this.loginName = loginName; } - public int getPostCount() { - return postCount; - } - - public void setPostCount(int postCount) { - this.postCount = postCount; - } - public Long getUid() { return uid; } @@ -138,5 +130,13 @@ public void setFinishedReflection(boolean finishedReflection) { this.finishedReflection = finishedReflection; } + + public boolean isReportApproved() { + return reportApproved; + } + + public void setReportApproved(boolean reportApproved) { + this.reportApproved = reportApproved; + } } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java =================================================================== diff -u -r74267305b37a60850dca2e40d5dcb975fe2efc32 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java (.../Scribe.java) (revision 74267305b37a60850dca2e40d5dcb975fe2efc32) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java (.../Scribe.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -65,23 +65,23 @@ private String instructions; - private Boolean runOffline; + private boolean runOffline; - private Boolean lockOnFinished; + private boolean lockOnFinished; - private Boolean reflectOnActivity; + private boolean reflectOnActivity; private String reflectInstructions; private String onlineInstructions; private String offlineInstructions; - private Boolean contentInUse; + private boolean contentInUse; - private Boolean defineLater; + private boolean defineLater; - private Boolean autoSelectScribe; + private boolean autoSelectScribe; private Long toolContentId; @@ -91,7 +91,6 @@ private Set scribeHeadings; - //*********** NON Persisit fields private IToolContentHandler toolContentHandler; @@ -103,9 +102,9 @@ /** full constructor */ public Scribe(Date createDate, Date updateDate, Long createBy, String title, - String instructions, Boolean runOffline, + String instructions, boolean runOffline, String onlineInstructions, String offlineInstructions, - Boolean contentInUse, Boolean defineLater, Long toolContentId, + boolean contentInUse, boolean defineLater, Long toolContentId, Set scribeAttachments, Set scribeSessions) { this.createDate = createDate; this.updateDate = updateDate; @@ -206,11 +205,11 @@ * */ - public Boolean getRunOffline() { + public boolean isRunOffline() { return this.runOffline; } - public void setRunOffline(Boolean runOffline) { + public void setRunOffline(boolean runOffline) { this.runOffline = runOffline; } @@ -219,34 +218,34 @@ * */ - public Boolean getLockOnFinished() { + public boolean isLockOnFinished() { return this.lockOnFinished; } - public void setLockOnFinished(Boolean lockOnFinished) { + public void setLockOnFinished(boolean lockOnFinished) { this.lockOnFinished = lockOnFinished; } /** * @hibernate.property column="auto_select_scribe" length=1 * */ - public Boolean getAutoSelectScribe() { + public boolean isAutoSelectScribe() { return autoSelectScribe; } - public void setAutoSelectScribe(Boolean autoSelectScribe) { + public void setAutoSelectScribe(boolean autoSelectScribe) { this.autoSelectScribe = autoSelectScribe; } /** * @hibernate.property column="reflect_on_activity" length="1" */ - public Boolean getReflectOnActivity() { + public boolean isReflectOnActivity() { return reflectOnActivity; } - public void setReflectOnActivity(Boolean reflectOnActivity) { + public void setReflectOnActivity(boolean reflectOnActivity) { this.reflectOnActivity = reflectOnActivity; } @@ -292,11 +291,11 @@ * */ - public Boolean getContentInUse() { + public boolean isContentInUse() { return this.contentInUse; } - public void setContentInUse(Boolean contentInUse) { + public void setContentInUse(boolean contentInUse) { this.contentInUse = contentInUse; } @@ -305,11 +304,11 @@ * */ - public Boolean getDefineLater() { + public boolean isDefineLater() { return this.defineLater; } - public void setDefineLater(Boolean defineLater) { + public void setDefineLater(boolean defineLater) { this.defineLater = defineLater; } @@ -357,7 +356,7 @@ } /** - * @hibernate.set lazy="true" inverse="true" cascade="all-delete-orphan" + * @hibernate.set lazy="true" inverse="false" cascade="all-delete-orphan" * @hibernate.collection-key column="scribe_uid" * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.scribe.model.ScribeHeading" */ Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeHeading.java =================================================================== diff -u -r315338d7ea7973597c748959e33d77050e4450d8 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeHeading.java (.../ScribeHeading.java) (revision 315338d7ea7973597c748959e33d77050e4450d8) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeHeading.java (.../ScribeHeading.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -14,7 +14,7 @@ * * 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 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * * http://www.gnu.org/licenses/gpl.txt @@ -32,7 +32,7 @@ * @hibernate.class table="tl_lascrb11_heading" * */ -public class ScribeHeading implements java.io.Serializable, Comparable{ +public class ScribeHeading implements java.io.Serializable, Comparable, Cloneable{ private static final long serialVersionUID = -5643334348072895714L; @@ -44,8 +44,6 @@ private Scribe scribe; private String headingText; - - private String report; private int displayOrder; @@ -70,17 +68,6 @@ } /** - * @hibernate.property column="report" type="text" - */ - public String getReport() { - return report; - } - - public void setReport(String report) { - this.report = report; - } - - /** * * @hibernate.many-to-one not-null="true" * @hibernate.column name="scribe_uid" Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeReportEntry.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeReportEntry.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeReportEntry.java (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -0,0 +1,97 @@ +/**************************************************************** + * 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.scribe.model; + +import java.io.Serializable; + +/** + * @author Anthony Sukkar + * + * @hibernate.class table="tl_lascrb11_report_entry" + * + */ +public class ScribeReportEntry implements Serializable { + + /** + * TODO problems generating serialVersionUID + */ + private static final long serialVersionUID = 1L; + + private Long uid; + + private String entryText; + + private ScribeHeading scribeHeading; + + private ScribeSession scribeSession; + + // Getters / Setters + + /** + * @hibernate.property column="entry_text" type="text" + */ + public String getEntryText() { + return entryText; + } + + public void setEntryText(String entryText) { + this.entryText = entryText; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="scribe_heading_uid" + */ + public ScribeHeading getScribeHeading() { + return scribeHeading; + } + + public void setScribeHeading(ScribeHeading scribeHeading) { + this.scribeHeading = scribeHeading; + } + + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + */ + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="scribe_session_uid" + */ + public ScribeSession getScribeSession() { + return scribeSession; + } + + public void setScribeSession(ScribeSession scribeSession) { + this.scribeSession = scribeSession; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.java (.../ScribeSession.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.java (.../ScribeSession.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -60,8 +60,12 @@ private Scribe scribe; - private Set scribeUsers = new HashSet(0); + private Set scribeUsers; + private Set scribeReportEntries; + + private ScribeUser appointedScribe; + // Constructors /** default constructor */ @@ -84,7 +88,6 @@ // Property accessors /** * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" - * */ public Long getUid() { @@ -97,7 +100,6 @@ /** * @hibernate.property column="session_end_date" - * */ public Date getSessionEndDate() { @@ -110,7 +112,6 @@ /** * @hibernate.property column="session_start_date" - * */ public Date getSessionStartDate() { @@ -123,7 +124,6 @@ /** * @hibernate.property column="status" length="11" - * */ public Integer getStatus() { @@ -136,7 +136,6 @@ /** * @hibernate.property column="session_id" length="20" - * */ public Long getSessionId() { @@ -149,7 +148,6 @@ /** * @hibernate.property column="session_name" length="250" - * */ public String getSessionName() { @@ -163,7 +161,6 @@ /** * @hibernate.many-to-one not-null="true" * @hibernate.column name="scribe_uid" - * */ public Scribe getScribe() { @@ -178,18 +175,41 @@ * @hibernate.set lazy="true" inverse="true" cascade="none" * @hibernate.collection-key column="scribe_session_uid" * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.scribe.model.ScribeUser" - * */ - public Set getScribeUsers() { return this.scribeUsers; } public void setScribeUsers(Set scribeUsers) { this.scribeUsers = scribeUsers; } + + /** + * @hibernate.set lazy="true" inverse="false" cascade="all-delete-orphan" + * @hibernate.collection-key column="scribe_session_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.scribe.model.ScribeReportEntry" + */ + public Set getScribeReportEntries() { + return scribeReportEntries; + } + public void setScribeReportEntries(Set scribeReportEntries) { + this.scribeReportEntries = scribeReportEntries; + } + /** + * @hibernate.many-to-one + * @hibernate.column name="appointed_scribe_uid" + */ + public ScribeUser getAppointedScribe() { + return appointedScribe; + } + + public void setAppointedScribe(ScribeUser appointedScribe) { + this.appointedScribe = appointedScribe; + } + + /** * toString * * @return String @@ -245,5 +265,4 @@ } return session; } - } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.java (.../ScribeUser.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.java (.../ScribeUser.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -55,8 +55,10 @@ private ScribeSession scribeSession; - private Boolean finishedActivity; + private boolean finishedActivity; + private boolean reportApproved; + // Constructors /** default constructor */ @@ -143,11 +145,11 @@ /** * @hibernate.property column="finishedActivity" */ - public Boolean getFinishedActivity() { + public boolean isFinishedActivity() { return finishedActivity; } - public void setFinishedActivity(Boolean finishedActivity) { + public void setFinishedActivity(boolean finishedActivity) { this.finishedActivity = finishedActivity; } @@ -163,7 +165,18 @@ public void setScribeSession(ScribeSession scribeSession) { this.scribeSession = scribeSession; } + + /** + * @hibernate.property column="report_approved" + */ + public boolean isReportApproved() { + return reportApproved; + } + public void setReportApproved(boolean reportApproved) { + this.reportApproved = reportApproved; + } + /** * toString * Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/scribeApplicationContext.xml =================================================================== diff -u -r74267305b37a60850dca2e40d5dcb975fe2efc32 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/scribeApplicationContext.xml (.../scribeApplicationContext.xml) (revision 74267305b37a60850dca2e40d5dcb975fe2efc32) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/scribeApplicationContext.xml (.../scribeApplicationContext.xml) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -20,6 +20,7 @@ org/lamsfoundation/lams/tool/scribe/model/ScribeUser.hbm.xml org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.hbm.xml org/lamsfoundation/lams/tool/scribe/model/ScribeHeading.hbm.xml + org/lamsfoundation/lams/tool/scribe/model/ScribeReportEntry.hbm.xml Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java =================================================================== diff -u -r74267305b37a60850dca2e40d5dcb975fe2efc32 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java (.../ScribeService.java) (revision 74267305b37a60850dca2e40d5dcb975fe2efc32) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java (.../ScribeService.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -27,7 +27,9 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.Date; +import java.util.HashSet; import java.util.Hashtable; +import java.util.Iterator; import java.util.List; import java.util.Set; @@ -66,6 +68,8 @@ import org.lamsfoundation.lams.tool.scribe.dao.IScribeUserDAO; import org.lamsfoundation.lams.tool.scribe.model.Scribe; import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; +import org.lamsfoundation.lams.tool.scribe.model.ScribeHeading; +import org.lamsfoundation.lams.tool.scribe.model.ScribeReportEntry; import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; @@ -129,10 +133,21 @@ ScribeSession session = new ScribeSession(); session.setSessionId(toolSessionId); session.setSessionName(toolSessionName); - // learner starts - // TODO need to also set other fields. Scribe scribe = scribeDAO.getByContentId(toolContentId); session.setScribe(scribe); + + // creating scribeReports for each heading and add to session. + Set reports = new HashSet(); + for (Iterator iter = scribe.getScribeHeadings().iterator(); iter.hasNext();) { + ScribeHeading heading = (ScribeHeading) iter.next(); + + ScribeReportEntry report = new ScribeReportEntry(); + report.setScribeHeading(heading); + + reports.add(report); + } + + session.setScribeReportEntries(reports); scribeSessionDAO.saveOrUpdate(session); } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java =================================================================== diff -u -r74267305b37a60850dca2e40d5dcb975fe2efc32 -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 74267305b37a60850dca2e40d5dcb975fe2efc32) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -128,7 +128,7 @@ } // check if content in use is set - if (scribe.getContentInUse()) { + if (scribe.isContentInUse()) { // Cannot edit, send to message page. request.setAttribute(ScribeConstants.ATTR_MESSAGE, getResources( request).getMessage("error.content.locked")); @@ -503,10 +503,10 @@ authForm.setInstructions(scribe.getInstructions()); authForm.setOnlineInstruction(scribe.getOnlineInstructions()); authForm.setOfflineInstruction(scribe.getOfflineInstructions()); - authForm.setLockOnFinished(scribe.getLockOnFinished()); - authForm.setReflectOnActivity(scribe.getReflectOnActivity()); + authForm.setLockOnFinished(scribe.isLockOnFinished()); + authForm.setReflectOnActivity(scribe.isReflectOnActivity()); authForm.setReflectInstructions(scribe.getReflectInstructions()); - authForm.setAutoSelectScribe(scribe.getAutoSelectScribe()); + authForm.setAutoSelectScribe(scribe.isAutoSelectScribe()); } /** Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java (.../LearningAction.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java (.../LearningAction.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -25,6 +25,8 @@ package org.lamsfoundation.lams.tool.scribe.web.actions; import java.io.IOException; +import java.util.Iterator; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -41,8 +43,10 @@ import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.scribe.dto.ScribeDTO; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeSessionDTO; import org.lamsfoundation.lams.tool.scribe.dto.ScribeUserDTO; import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeReportEntry; import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; import org.lamsfoundation.lams.tool.scribe.service.IScribeService; @@ -63,6 +67,7 @@ * @struts.action path="/learning" parameter="dispatch" scope="request" * name="learningForm" * @struts.action-forward name="learning" path="tiles:/learning/main" + * @struts.action-forward name="scribe" path="tiles:/learning/scribe" * @struts.action-forward name="runOffline" path="tiles:/learning/runOffline" * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" * @struts.action-forward name="notebook" path="tiles:/learning/notebook" @@ -72,14 +77,12 @@ private static Logger log = Logger.getLogger(LearningAction.class); private static final boolean MODE_OPTIONAL = false; - private IScribeService scribeService; public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 'toolSessionID' and 'mode' paramters are expected to be present. - // TODO need to catch exceptions and handle errors. ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, MODE_OPTIONAL); @@ -88,8 +91,8 @@ // set up scribeService if (scribeService == null) { - scribeService = ScribeServiceProxy.getScribeService(this.getServlet() - .getServletContext()); + scribeService = ScribeServiceProxy.getScribeService(this + .getServlet().getServletContext()); } // Retrieve the session and content. @@ -100,24 +103,44 @@ "Cannot retreive session with toolSessionID" + toolSessionID); } - Scribe scribe = scribeSession.getScribe(); + + // check defineLater + if (scribe.isDefineLater()) { + return mapping.findForward("defineLater"); + } // Retrieve the current user ScribeUser scribeUser = getCurrentUser(toolSessionID); - // check defineLater - if (scribe.getDefineLater()) { - return mapping.findForward("defineLater"); - } + // check whether scribe has been appointed + ScribeUser appointedScribe = scribeSession.getAppointedScribe(); + if (appointedScribe == null) { + // TODO need to look into synchronization issues. + // check autoSelectScribe + if (scribe.isAutoSelectScribe() == false) { + return mapping.findForward("defineLater"); + } else { + // appoint the currentUser as the scribe + scribeSession.setAppointedScribe(scribeUser); + scribeService.saveOrUpdateScribeSession(scribeSession); + } + } + + ((LearningForm)form).setToolSessionID(scribeSession.getSessionId()); request.setAttribute("MODE", mode.toString()); ScribeDTO scribeDTO = new ScribeDTO(scribe); request.setAttribute("scribeDTO", scribeDTO); + + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); + request.setAttribute("scribeSessionDTO", sessionDTO); ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); - if (scribeUser.getFinishedActivity()) { + request.setAttribute("scribeUserDTO", scribeUserDTO); + + if (scribeUser.isFinishedActivity()) { // get the notebook entry. NotebookEntry notebookEntry = scribeService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, @@ -127,30 +150,33 @@ scribeUserDTO.notebookEntry = notebookEntry.getEntry(); } } - request.setAttribute("scribeUserDTO", scribeUserDTO); - + // Ensure that the content is use flag is set. - if (!scribe.getContentInUse()) { + if (!scribe.isContentInUse()) { scribe.setContentInUse(new Boolean(true)); scribeService.saveOrUpdateScribe(scribe); } - + // check runOffline - if (scribe.getRunOffline()) { + if (scribe.isRunOffline()) { return mapping.findForward("runOffline"); } - + + // check if current user is the scribe. + if (scribeSession.getAppointedScribe().getUid() == scribeUser.getUid()) { + return mapping.findForward("scribe"); + } return mapping.findForward("learning"); - + } private ScribeUser getCurrentUser(Long toolSessionId) { UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( AttributeNames.USER); // attempt to retrieve user using userId and toolSessionId - ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId(new Long( - user.getUserID().intValue()), toolSessionId); + ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId( + new Long(user.getUserID().intValue()), toolSessionId); if (scribeUser == null) { ScribeSession scribeSession = scribeService @@ -167,7 +193,8 @@ LearningForm lrnForm = (LearningForm) form; // set the finished flag - ScribeUser scribeUser = scribeService.getUserByUID(lrnForm.getScribeUserUID()); + ScribeUser scribeUser = scribeService.getUserByUID(lrnForm + .getScribeUserUID()); if (scribeUser != null) { scribeUser.setFinishedActivity(true); scribeService.saveOrUpdateScribeUser(scribeUser); @@ -206,8 +233,10 @@ LearningForm lrnForm = (LearningForm) form; // set the finished flag - ScribeUser scribeUser = scribeService.getUserByUID(lrnForm.getScribeUserUID()); - ScribeDTO scribeDTO = new ScribeDTO(scribeUser.getScribeSession().getScribe()); + ScribeUser scribeUser = scribeService.getUserByUID(lrnForm + .getScribeUserUID()); + ScribeDTO scribeDTO = new ScribeDTO(scribeUser.getScribeSession() + .getScribe()); request.setAttribute("scribeDTO", scribeDTO); return mapping.findForward("notebook"); @@ -221,14 +250,89 @@ LearningForm lrnForm = (LearningForm) form; - ScribeUser scribeUser = scribeService.getUserByUID(lrnForm.getScribeUserUID()); + ScribeUser scribeUser = scribeService.getUserByUID(lrnForm + .getScribeUserUID()); scribeService.createNotebookEntry(scribeUser.getScribeSession() .getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, - ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId().intValue(), - lrnForm.getEntryText()); + ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId() + .intValue(), lrnForm.getEntryText()); return finishActivity(mapping, form, request, response); } + public ActionForward submitReport(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + LearningForm lrnForm = (LearningForm) form; + Long toolSessionID = lrnForm.getToolSessionID(); + + ScribeSession session = scribeService + .getSessionBySessionId(toolSessionID); + + ScribeUser scribeUser = getCurrentUser(toolSessionID); + + // update scribeReports + for (Iterator iter = session.getScribeReportEntries().iterator(); iter + .hasNext();) { + ScribeReportEntry report = (ScribeReportEntry) iter.next(); + + String entryText = (String) lrnForm.getReport(report.getUid() + .toString()); + report.setEntryText(entryText); + } + + for (Iterator iter = session.getScribeUsers().iterator(); iter.hasNext();) { + ScribeUser user = (ScribeUser) iter.next(); + user.setReportApproved(false); + scribeService.saveOrUpdateScribeUser(scribeUser); + } + + // persist changes + scribeService.saveOrUpdateScribeSession(session); + + request.setAttribute("MODE", lrnForm.getMode()); + + // build dto's + ScribeDTO scribeDTO = new ScribeDTO(session.getScribe()); + request.setAttribute("scribeDTO", scribeDTO); + + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(session); + request.setAttribute("scribeSessionDTO", sessionDTO); + + ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + request.setAttribute("scribeUserDTO", scribeUserDTO); + + return mapping.findForward("scribe"); + } + + public ActionForward submitApproval(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + LearningForm lrnForm = (LearningForm) form; + + // get session and user + ScribeSession session = scribeService.getSessionBySessionId(lrnForm + .getToolSessionID()); + ScribeUser scribeUser = getCurrentUser(session.getSessionId()); + + scribeUser.setReportApproved(true); + + request.setAttribute("MODE", lrnForm.getMode()); + + // build dto's + // TODO the following code is being reused over and over, need to refactor + ScribeDTO scribeDTO = new ScribeDTO(session.getScribe()); + request.setAttribute("scribeDTO", scribeDTO); + + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(session); + request.setAttribute("scribeSessionDTO", sessionDTO); + + ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + request.setAttribute("scribeUserDTO", scribeUserDTO); + + scribeService.saveOrUpdateScribeUser(scribeUser); + + return mapping.findForward("learning"); + } } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/LearningForm.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/LearningForm.java (.../LearningForm.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/LearningForm.java (.../LearningForm.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -25,6 +25,9 @@ package org.lamsfoundation.lams.tool.scribe.web.forms; +import java.util.HashMap; +import java.util.Map; + import org.apache.struts.action.ActionForm; /** @@ -37,11 +40,13 @@ private static final long serialVersionUID = -4728946254882237144L; - String dispatch; - Long scribeUserUID; - Long toolSessionID; - String mode; - String entryText; + private String dispatch; + private Long scribeUserUID; + private Long toolSessionID; + private String mode; + private String entryText; + + public Map reports = new HashMap(); public String getMode() { return mode; @@ -82,4 +87,12 @@ public void setEntryText(String entryText) { this.entryText = entryText; } + + public void setReport(String key, Object value) { + reports.put(key, value); + } + + public Object getReport(String key) { + return reports.get(key); + } } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -118,7 +118,7 @@ ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); // if reflectOnActivity is enabled add userDTO. - if (scribeSession.getScribe().getReflectOnActivity()) { + if (scribeSession.getScribe().isReflectOnActivity()) { ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); // get the entry. @@ -163,7 +163,7 @@ ScribeSessionDTO sessionDTO = new ScribeSessionDTO(session); // if reflectOnActivity is enabled add all userDTO. - if (session.getScribe().getReflectOnActivity()) { + if (session.getScribe().isReflectOnActivity()) { for (Iterator iterator = session.getScribeUsers().iterator(); iterator .hasNext();) { Index: lams_tool_scribe/web/WEB-INF/struts/tiles-defs.xml =================================================================== diff -u -ra344998a96d6e983d83047656f74c9f15183643e -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/web/WEB-INF/struts/tiles-defs.xml (.../tiles-defs.xml) (revision a344998a96d6e983d83047656f74c9f15183643e) +++ lams_tool_scribe/web/WEB-INF/struts/tiles-defs.xml (.../tiles-defs.xml) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -100,9 +100,18 @@ + + + + + + + + + Index: lams_tool_scribe/web/WEB-INF/tags/AuthoringButton.tag =================================================================== diff -u -ra344998a96d6e983d83047656f74c9f15183643e -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/web/WEB-INF/tags/AuthoringButton.tag (.../AuthoringButton.tag) (revision a344998a96d6e983d83047656f74c9f15183643e) +++ lams_tool_scribe/web/WEB-INF/tags/AuthoringButton.tag (.../AuthoringButton.tag) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -82,7 +82,7 @@ } } -

+

Index: lams_tool_scribe/web/WEB-INF/tags/FCKEditor.tag =================================================================== diff -u -r676776bec1c35957910e6911d9f7d280f646d28d -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/web/WEB-INF/tags/FCKEditor.tag (.../FCKEditor.tag) (revision 676776bec1c35957910e6911d9f7d280f646d28d) +++ lams_tool_scribe/web/WEB-INF/tags/FCKEditor.tag (.../FCKEditor.tag) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -5,7 +5,7 @@ <%@ attribute name="id" required="true" rtexprvalue="true"%> <%@ attribute name="value" required="true" rtexprvalue="true"%> <%@ attribute name="toolbarSet" required="false" rtexprvalue="true"%> -<%@ attribute name="contentFolderID" required="true" rtexprvalue="true"%> +<%@ attribute name="contentFolderID" required="false" rtexprvalue="true"%> Index: lams_tool_scribe/web/pages/learning/headItems.jsp =================================================================== diff -u -r676776bec1c35957910e6911d9f7d280f646d28d -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/web/pages/learning/headItems.jsp (.../headItems.jsp) (revision 676776bec1c35957910e6911d9f7d280f646d28d) +++ lams_tool_scribe/web/pages/learning/headItems.jsp (.../headItems.jsp) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -1 +1,5 @@ +<%@ include file="/common/taglibs.jsp"%> + + Index: lams_tool_scribe/web/pages/learning/learning.jsp =================================================================== diff -u -ra344998a96d6e983d83047656f74c9f15183643e -r84283f3449a27ed45130e07c53d2cefc451ba537 --- lams_tool_scribe/web/pages/learning/learning.jsp (.../learning.jsp) (revision a344998a96d6e983d83047656f74c9f15183643e) +++ lams_tool_scribe/web/pages/learning/learning.jsp (.../learning.jsp) (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -1,24 +1,58 @@ <%@ include file="/common/taglibs.jsp"%> - - + + + -

+ + +
+ +

+ +

+

- Scribe Learning Page + ${scribeDTO.instructions}

-
+ + + + + + +

+ ${reportDTO.headingDTO.headingText} +

+ +

+ +

+ +
+ +

+ + + ?Approve? + + +

+ +
<%@ include file="parts/finishButton.jsp"%> -
+
+
Index: lams_tool_scribe/web/pages/learning/scribe.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/scribe.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/scribe.jsp (revision 84283f3449a27ed45130e07c53d2cefc451ba537) @@ -0,0 +1,46 @@ +<%@ include file="/common/taglibs.jsp"%> + +
+ +

+ +

+ +

+ ${scribeDTO.instructions} +

+ + + + + + + +

+ ${reportDTO.headingDTO.headingText} +

+ +

+ +

+ + + +
+ +

+ + ?Submit Report? + +

+ +
+ + + <%@ include file="parts/finishButton.jsp"%> + + +
+ +