Index: lams_tool_scribe/build.properties =================================================================== diff -u -rd5c86099c21b0fda847318cb1515fe09bcdf74b4 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/build.properties (.../build.properties) (revision d5c86099c21b0fda847318cb1515fe09bcdf74b4) +++ lams_tool_scribe/build.properties (.../build.properties) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -3,7 +3,7 @@ signature=lascrb11 # project version -tool.version=20070524 +tool.version=20071113 # hide tool option hideTool=true Index: lams_tool_scribe/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r27d3bbc5ceacea6e30fe6876b11e0800b4bff916 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 27d3bbc5ceacea6e30fe6876b11e0800b4bff916) +++ lams_tool_scribe/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -107,3 +107,5 @@ #======= End labels: Exported 98 labels for en AU ===== +advanced.showAggregatedReports=Show aggregated reports for all groupings.
Note: this will only work when groups are assigned to this activity. +heading.other.group.reports=Other Groups \ No newline at end of file Index: lams_tool_scribe/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r27d3bbc5ceacea6e30fe6876b11e0800b4bff916 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 27d3bbc5ceacea6e30fe6876b11e0800b4bff916) +++ lams_tool_scribe/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -107,3 +107,5 @@ #======= End labels: Exported 98 labels for en AU ===== +advanced.showAggregatedReports=Show aggregated reports for all groupings.
Note: this will only work when groups are assigned to this activity. +heading.other.group.reports=Other Groups \ No newline at end of file Index: lams_tool_scribe/db/model/scribe_tool.clay =================================================================== diff -u -r676776bec1c35957910e6911d9f7d280f646d28d -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/db/model/scribe_tool.clay (.../scribe_tool.clay) (revision 676776bec1c35957910e6911d9f7d280f646d28d) +++ lams_tool_scribe/db/model/scribe_tool.clay (.../scribe_tool.clay) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -19,8 +19,8 @@ - + @@ -32,8 +32,8 @@ - + @@ -59,8 +59,8 @@ - + @@ -78,8 +78,8 @@ - + @@ -104,10 +104,6 @@ - - - - @@ -121,8 +117,8 @@ - + @@ -146,8 +142,8 @@ - + @@ -208,8 +204,8 @@ - + @@ -230,19 +226,20 @@ + + + + + + - - - - - - + @@ -251,8 +248,8 @@ - + @@ -264,8 +261,8 @@ - + @@ -277,8 +274,8 @@ - + @@ -290,8 +287,8 @@ - + @@ -350,10 +347,6 @@ - - - - @@ -375,8 +368,8 @@ - + @@ -400,8 +393,8 @@ - + @@ -413,8 +406,8 @@ - + @@ -433,8 +426,8 @@ - + @@ -466,10 +459,6 @@ - - - - @@ -483,8 +472,8 @@ - + @@ -496,8 +485,8 @@ - + @@ -537,8 +526,8 @@ - + @@ -563,10 +552,6 @@ - - - - Index: lams_tool_scribe/db/sql/create_lams_tool_scribe.sql =================================================================== diff -u -r34c66fb7023ee64ab44d876ae375236e69400fe9 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/db/sql/create_lams_tool_scribe.sql (.../create_lams_tool_scribe.sql) (revision 34c66fb7023ee64ab44d876ae375236e69400fe9) +++ lams_tool_scribe/db/sql/create_lams_tool_scribe.sql (.../create_lams_tool_scribe.sql) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -10,7 +10,7 @@ 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, 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_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, aggregated_reports bit default 0, primary key (uid)); create table tl_lascrb11_session (uid bigint not null auto_increment, version integer not null, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, appointed_scribe_uid bigint, force_complete bit, report_submitted bit, 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, started_activity 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); @@ -33,7 +33,8 @@ content_in_use, define_later, reflect_on_activity, - auto_select_scribe) + auto_select_scribe, + aggregated_reports) VALUES( 1, "Scribe", @@ -46,7 +47,8 @@ 0, 0, 0, - 1 + 1, + 0 ); INSERT INTO tl_lascrb11_heading( Index: lams_tool_scribe/db/sql/updatescripts/updateTo20071113.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/updatescripts/updateTo20071113.sql (revision 0) +++ lams_tool_scribe/db/sql/updatescripts/updateTo20071113.sql (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -0,0 +1,5 @@ +-- Update the Scribe tables to 20071113 +-- This is for the LAMS 2.1 release. + +ALTER TABLE tl_lascrb11_scribe +ADD COLUMN aggregated_reports bit default 0; \ No newline at end of file Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeHeadingDAO.java =================================================================== diff -u -r51cd744e821c2602f453bedcd22f89887f92d468 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeHeadingDAO.java (.../ScribeHeadingDAO.java) (revision 51cd744e821c2602f453bedcd22f89887f92d468) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeHeadingDAO.java (.../ScribeHeadingDAO.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -33,6 +33,7 @@ public class ScribeHeadingDAO extends BaseDAO implements IScribeHeadingDAO { private static final String SQL_DELETE_REPORT="from " + ScribeReportEntry.class.getName() + " as r where r.scribeHeading.uid=?"; + @SuppressWarnings("unchecked") public boolean deleteReport(Long headingUid) { List reports = this.getHibernateTemplate().find(SQL_DELETE_REPORT,new Object[]{headingUid}); if(reports.isEmpty()) Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java =================================================================== diff -u -r24812cc3912113d9599602f65d81e15a06c36a89 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java (.../ScribeDTO.java) (revision 24812cc3912113d9599602f65d81e15a06c36a89) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java (.../ScribeDTO.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -66,8 +66,9 @@ public boolean autoSelectScribe; + public boolean showAggregatedReports; + - public ScribeDTO(Scribe scribe) { toolContentID = scribe.getToolContentId(); title = scribe.getTitle(); @@ -77,6 +78,8 @@ contentInUse = scribe.isContentInUse(); reflectInstructions = scribe.getReflectInstructions(); reflectOnActivity = scribe.isReflectOnActivity(); + autoSelectScribe = scribe.isAutoSelectScribe(); + showAggregatedReports = scribe.isShowAggregatedReports(); // Adding attachments for (Iterator i = scribe.getScribeAttachments().iterator(); i.hasNext();) { @@ -202,4 +205,12 @@ public void setAutoSelectScribe(boolean autoSelectScribe) { this.autoSelectScribe = autoSelectScribe; } + + public boolean isShowAggregatedReports() { + return showAggregatedReports; + } + + public void setShowAggregatedReports(boolean showAggregatedReports) { + this.showAggregatedReports = showAggregatedReports; + } } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java =================================================================== diff -u -rd898242d88b2cbd625c370e5eb8a3c9affaff70f -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java (.../Scribe.java) (revision d898242d88b2cbd625c370e5eb8a3c9affaff70f) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java (.../Scribe.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -88,6 +88,8 @@ private Set scribeHeadings; + private boolean showAggregatedReports; + //*********** NON Persisit fields private IToolContentHandler toolContentHandler; @@ -366,6 +368,19 @@ } /** + * @hibernate.property column="aggregated_reports" length="1" + * + */ + + public boolean isShowAggregatedReports() { + return this.showAggregatedReports; + } + + public void setShowAggregatedReports(boolean showAggregatedReports) { + this.showAggregatedReports = showAggregatedReports; + } + + /** * toString * * @return String Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeUtils.java =================================================================== diff -u -rc6b8ac8a336ac260986c41a3049a5d1bc0a743c0 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeUtils.java (.../ScribeUtils.java) (revision c6b8ac8a336ac260986c41a3049a5d1bc0a743c0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeUtils.java (.../ScribeUtils.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -1,5 +1,13 @@ package org.lamsfoundation.lams.tool.scribe.util; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeMap; + +import org.lamsfoundation.lams.tool.scribe.dto.ScribeSessionDTO; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; + public class ScribeUtils { public static int calculateVotePercentage(int numberOfVotes, int numberOfLearners) { @@ -11,5 +19,53 @@ return result.intValue(); } - + + /** Create the session DTO for a user's session/group. Includes the number of votes + * for, percentages, etc. + * @param scribeSession + */ + public static ScribeSessionDTO createSessionDTO(ScribeSession scribeSession) { + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); + + int numberOfVotes = 0; + for (Iterator iter = scribeSession.getScribeUsers().iterator(); iter + .hasNext();) { + ScribeUser user = (ScribeUser) iter.next(); + if (user.isReportApproved()) { + numberOfVotes++; + } + } + + int numberOfLearners = scribeSession.getScribeUsers().size(); + + sessionDTO.setNumberOfVotes(numberOfVotes); + sessionDTO.setNumberOfLearners(numberOfLearners); + sessionDTO.setVotePercentage(ScribeUtils.calculateVotePercentage( + numberOfVotes, numberOfLearners)); + + return sessionDTO; + } + + /** Create a map of the reports (in ScribeSessionDTO format) for all the other groups/sessions, where the key + * is the group/session name. The code ensures that the session name is unique, adding the session id if necessary. + * It will only include the finalized reports. */ + public static TreeMap getReportDTOs(ScribeSession scribeSession) { + Set scribeSessionsForContent = scribeSession.getScribe().getScribeSessions(); + TreeMap otherScribeSessions = new TreeMap(); + for ( ScribeSession session : scribeSessionsForContent ) { + if ( ! session.equals(scribeSession) && session.isForceComplete() ) { + + // ensure a unique group name, as we will sort on that + String sessionKey = session.getSessionName(); + if ( otherScribeSessions.containsKey(sessionKey) ) { + sessionKey = sessionKey + "("+session.getSessionId().toString()+")"; + } + + ScribeSessionDTO dto = new ScribeSessionDTO(session); + otherScribeSessions.put(sessionKey, dto); + } + } + return otherScribeSessions; + } + } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java =================================================================== diff -u -rb4b057cd37f8c643459b4a83f99994f8a0dfe5ee -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision b4b057cd37f8c643459b4a83f99994f8a0dfe5ee) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -540,6 +540,7 @@ scribe.setReflectOnActivity(authForm.isReflectOnActivity()); scribe.setReflectInstructions(authForm.getReflectInstructions()); scribe.setAutoSelectScribe(authForm.isAutoSelectScribe()); + scribe.setShowAggregatedReports(authForm.isShowAggregatedReports()); } /** @@ -557,6 +558,7 @@ authForm.setReflectOnActivity(scribe.isReflectOnActivity()); authForm.setReflectInstructions(scribe.getReflectInstructions()); authForm.setAutoSelectScribe(scribe.isAutoSelectScribe()); + authForm.setShowAggregatedReports(scribe.isShowAggregatedReports()); } /** Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/DTOUtil.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/DTOUtil.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/DTOUtil.java (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -0,0 +1,65 @@ +/**************************************************************** + * 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.scribe.web.actions; + +import java.util.Iterator; + +import org.lamsfoundation.lams.tool.scribe.dto.ScribeSessionDTO; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; +import org.lamsfoundation.lams.tool.scribe.util.ScribeUtils; + +/** + * Miscellaneous calls that set up the DTOs used by both the learning screens and export portfolio screen. + * + */ +public class DTOUtil { + + /** Create the session DTO for a user's session/group. Includes the number of votes + * for, percentages, etc. + * @param scribeSession + */ + public ScribeSessionDTO createSessionDTO(ScribeSession scribeSession) { + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); + + int numberOfVotes = 0; + for (Iterator iter = scribeSession.getScribeUsers().iterator(); iter + .hasNext();) { + ScribeUser user = (ScribeUser) iter.next(); + if (user.isReportApproved()) { + numberOfVotes++; + } + } + + int numberOfLearners = scribeSession.getScribeUsers().size(); + + sessionDTO.setNumberOfVotes(numberOfVotes); + sessionDTO.setNumberOfLearners(numberOfLearners); + sessionDTO.setVotePercentage(ScribeUtils.calculateVotePercentage( + numberOfVotes, numberOfLearners)); + + return sessionDTO; + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java =================================================================== diff -u -r9e446244a7245a4e8893e4673a801c56e4a35334 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java (.../LearningAction.java) (revision 9e446244a7245a4e8893e4673a801c56e4a35334) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java (.../LearningAction.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -26,6 +26,9 @@ import java.io.IOException; import java.util.Iterator; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -42,6 +45,7 @@ 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.ScribeReportEntryDTO; import org.lamsfoundation.lams.tool.scribe.dto.ScribeSessionDTO; import org.lamsfoundation.lams.tool.scribe.dto.ScribeUserDTO; import org.lamsfoundation.lams.tool.scribe.model.Scribe; @@ -169,6 +173,8 @@ // check force complete if (scribeSession.isForceComplete()) { // go to report page + if ( scribeSession.getScribe().isShowAggregatedReports() ) + setupOtherGroupReportDTO(request, scribeSession, scribeUser); return mapping.findForward("report"); } @@ -447,35 +453,22 @@ scribeService.saveOrUpdateScribeUser(scribeUser); + if ( session.getScribe().isShowAggregatedReports() ) + setupOtherGroupReportDTO(request, session, scribeUser); + return mapping.findForward("report"); } // Private methods. + /** Set up all the DTO relating to this session. Doesn't set up the DTO containing the reports of the other groups. */ private void setupDTOs(HttpServletRequest request, ScribeSession scribeSession, ScribeUser scribeUser) { ScribeDTO scribeDTO = new ScribeDTO(scribeSession.getScribe()); request.setAttribute("scribeDTO", scribeDTO); - ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); - - int numberOfVotes = 0; - for (Iterator iter = scribeSession.getScribeUsers().iterator(); iter - .hasNext();) { - ScribeUser user = (ScribeUser) iter.next(); - if (user.isReportApproved()) { - numberOfVotes++; - } - } - - int numberOfLearners = scribeSession.getScribeUsers().size(); - - sessionDTO.setNumberOfVotes(numberOfVotes); - sessionDTO.setNumberOfLearners(numberOfLearners); - sessionDTO.setVotePercentage(ScribeUtils.calculateVotePercentage( - numberOfVotes, numberOfLearners)); - + ScribeSessionDTO sessionDTO = ScribeUtils.createSessionDTO(scribeSession); request.setAttribute("scribeSessionDTO", sessionDTO); ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); @@ -491,4 +484,17 @@ } request.setAttribute("scribeUserDTO", scribeUserDTO); } + + /** Create a map of the reports (in ScribeSessionDTO format) for all the other groups/sessions, where the key + * is the group/session name. The code ensures that the session name is unique, adding the session id if necessary. + * It will only include the finalized reports. */ + private void setupOtherGroupReportDTO(HttpServletRequest request, + ScribeSession scribeSession, ScribeUser scribeUser) { + TreeMap otherScribeSessions = ScribeUtils.getReportDTOs(scribeSession); + if ( otherScribeSessions.size() > 0 ) { + request.setAttribute("otherScribeSessions", otherScribeSessions.values()); + } + } + + } Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/AuthoringForm.java =================================================================== diff -u -r4a456f961a5badc17cee47c4401fad61a5144013 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/AuthoringForm.java (.../AuthoringForm.java) (revision 4a456f961a5badc17cee47c4401fad61a5144013) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/AuthoringForm.java (.../AuthoringForm.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -57,6 +57,8 @@ boolean autoSelectScribe; + boolean showAggregatedReports; + FormFile onlineFile; FormFile offlineFile; @@ -201,4 +203,12 @@ public void setHeadingIndex(Integer headingIndex) { this.headingIndex = headingIndex; } + + public boolean isShowAggregatedReports() { + return showAggregatedReports; + } + + public void setShowAggregatedReports(boolean showAggregatedReports) { + this.showAggregatedReports = showAggregatedReports; + } } \ No newline at end of file Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java =================================================================== diff -u -r9e446244a7245a4e8893e4673a801c56e4a35334 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 9e446244a7245a4e8893e4673a801c56e4a35334) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -26,6 +26,7 @@ package org.lamsfoundation.lams.tool.scribe.web.servlets; import java.util.Iterator; +import java.util.TreeMap; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -47,9 +48,7 @@ import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; import org.lamsfoundation.lams.tool.scribe.util.ScribeException; import org.lamsfoundation.lams.tool.scribe.util.ScribeUtils; -import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; -import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; public class ExportServlet extends AbstractExportPortfolioServlet { @@ -70,25 +69,33 @@ .getScribeService(getServletContext()); } + String basePath = request.getScheme() + "://" + request.getServerName() + + ":" + request.getServerPort() + request.getContextPath(); try { if (StringUtils.equals(mode, ToolAccessMode.LEARNER.toString())) { request.getSession().setAttribute(AttributeNames.ATTR_MODE, ToolAccessMode.LEARNER); doLearnerExport(request, response, directoryName, cookies); + writeResponseToFile(basePath + "/pages/export/learner.jsp", + directoryName, FILENAME, cookies); } else if (StringUtils.equals(mode, ToolAccessMode.TEACHER .toString())) { request.getSession().setAttribute(AttributeNames.ATTR_MODE, ToolAccessMode.TEACHER); doTeacherExport(request, response, directoryName, cookies); + writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", + directoryName, FILENAME, cookies); } } catch (ScribeException e) { logger.error("Cannot perform export for scribe tool."); + } finally { + // clear any session objects + request.getSession().removeAttribute("scribeUserDTO"); + request.getSession().removeAttribute("scribeSessionDTO"); + request.getSession().removeAttribute("scribeDTO"); + request.getSession().removeAttribute("otherScribeSessions"); } - String basePath = request.getScheme() + "://" + request.getServerName() - + ":" + request.getServerPort() + request.getContextPath(); - writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", - directoryName, FILENAME, cookies); return FILENAME; } @@ -97,7 +104,7 @@ HttpServletResponse response, String directoryName, Cookie[] cookies) throws ScribeException { - logger.debug("doExportTeacher: toolContentID:" + toolSessionID); + logger.debug("doLearnerExport: toolContentID:" + toolSessionID); // check if toolContentID available if (toolSessionID == null) { @@ -110,54 +117,37 @@ .getSessionBySessionId(toolSessionID); // get the scribe user - UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( - AttributeNames.USER); + ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId(userID, toolSessionID); - ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId( - new Long(user.getUserID()), toolSessionID); - - // construct session DTO. - ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); + Scribe scribe = scribeSession.getScribe(); + ScribeDTO scribeDTO = new ScribeDTO(scribeSession.getScribe()); + request.getSession().setAttribute("scribeDTO", scribeDTO); - int numberOfVotes = 0; - for (Iterator iter = scribeSession.getScribeUsers().iterator(); iter.hasNext();) { - ScribeUser elem = (ScribeUser) iter.next(); - - if(elem.isReportApproved()) { - numberOfVotes++; - } - - } - - int numberOfLearners = scribeSession.getScribeUsers().size(); - - sessionDTO.setNumberOfLearners(numberOfLearners); - sessionDTO.setNumberOfVotes(numberOfVotes); - sessionDTO.setVotePercentage(ScribeUtils.calculateVotePercentage(numberOfVotes, numberOfLearners)); - - // if reflectOnActivity is enabled add userDTO. - if (scribeSession.getScribe().isReflectOnActivity()) { - ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + ScribeSessionDTO sessionDTO = ScribeUtils.createSessionDTO(scribeSession); + request.getSession().setAttribute("scribeSessionDTO", sessionDTO); - // get the entry. - NotebookEntry entry = scribeService.getEntry(toolSessionID, - CoreNotebookConstants.NOTEBOOK_TOOL, + ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + if (scribeUser.isFinishedActivity()) { + // get the notebook entry. + NotebookEntry notebookEntry = scribeService.getEntry(scribeSession + .getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId() .intValue()); + if (notebookEntry != null) { + scribeUserDTO.notebookEntry = notebookEntry.getEntry(); + } + } + request.getSession().setAttribute("scribeUserDTO", scribeUserDTO); - if (entry != null) { - scribeUserDTO.finishedReflection = true; - scribeUserDTO.notebookEntry = entry.getEntry(); - } else { - scribeUserDTO.finishedReflection = false; + if ( scribe.isShowAggregatedReports() ) { + + TreeMap otherScribeSessions = ScribeUtils.getReportDTOs(scribeSession); + if ( otherScribeSessions.size() > 0 ) { + request.getSession().setAttribute("otherScribeSessions", otherScribeSessions.values()); } - sessionDTO.getUserDTOs().add(scribeUserDTO); + } - ScribeDTO scribeDTO = new ScribeDTO(scribeSession.getScribe()); - scribeDTO.getSessionDTOs().add(sessionDTO); - - request.getSession().setAttribute("scribeDTO", scribeDTO); } private void doTeacherExport(HttpServletRequest request, Index: lams_tool_scribe/web/pages/authoring/advanced.jsp =================================================================== diff -u -r1977f2d6d4038839d28238041d7e5cd4dfd35036 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/web/pages/authoring/advanced.jsp (.../advanced.jsp) (revision 1977f2d6d4038839d28238041d7e5cd4dfd35036) +++ lams_tool_scribe/web/pages/authoring/advanced.jsp (.../advanced.jsp) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -3,6 +3,15 @@

+ + + +

+ +

@@ -32,6 +41,7 @@

+ - -
-

- ${scribeDTO.reflectInstructions} -

-

- ${scribeUserDTO.notebookEntry} -

-
-
-
Index: lams_tool_scribe/web/pages/learning/parts/reportBody.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/parts/reportBody.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/parts/reportBody.jsp (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -0,0 +1,78 @@ + <%@ include file="/common/taglibs.jsp"%> + +

+ +

+ +
+ +

+ ${scribeDTO.instructions} +

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

+ ${reportDTO.headingDTO.headingText} +

+ + +
    +
  • +

    + +

    +
  • +
+
+
+
+ + +
+

+ ${scribeDTO.reflectInstructions} +

+

+ ${scribeUserDTO.notebookEntry} +

+
+
+ + + +

+ +

+ + +
+ ${scribeSessionDTO.sessionName} +
+ +
+

+ ${reportDTO.headingDTO.headingText} +

+ + +
    +
  • +

    + +

    +
  • +
+
+
+
+
+
+
\ No newline at end of file Index: lams_tool_scribe/web/pages/learning/report.jsp =================================================================== diff -u -r8e65f04f5c078f30842dcdf4a539cebcfef82919 -r0edacde89fb315c54ed60643a06ef7d3e7b5bb89 --- lams_tool_scribe/web/pages/learning/report.jsp (.../report.jsp) (revision 8e65f04f5c078f30842dcdf4a539cebcfef82919) +++ lams_tool_scribe/web/pages/learning/report.jsp (.../report.jsp) (revision 0edacde89fb315c54ed60643a06ef7d3e7b5bb89) @@ -2,38 +2,9 @@
-

- -

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

- ${scribeDTO.instructions} -

- - <%@include file="/pages/parts/voteDisplay.jsp"%> - -
- -
- - -
-

- ${reportDTO.headingDTO.headingText} -

- - -
    -
  • -

    - -

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