Index: lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -ra51688f795808a8ff829e1658e89a12339e2b7df -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision a51688f795808a8ff829e1658e89a12339e2b7df) +++ lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -189,5 +189,9 @@ error.entered.marks.not.comma.separates =Entered marks are not in a correct format of comma separated values. label.authoring.export.qti =Export IMS QTI +label.authoring.advanced.burning.questions =Option for burning questions +label.continue.burning.questions =Continue with burning questions +label.burning.questions =Burning questions +label.burning.question =Burning question #======= End labels: Exported 182 labels for en AU ===== Index: lams_tool_scratchie/conf/xdoclet/struts-actions.xml =================================================================== diff -u -re5a3c4e8e88340e636c501f79cec1b91ab59a5cf -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision e5a3c4e8e88340e636c501f79cec1b91ab59a5cf) +++ lams_tool_scratchie/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -195,6 +195,23 @@ + + + + + + + + + + - + - Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java =================================================================== diff -u -r193a418fc853597cede66ad2e00324ac5bd6500d -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 193a418fc853597cede66ad2e00324ac5bd6500d) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -36,6 +36,8 @@ // for action forward name public static final String SUCCESS = "success"; + + public static final String NOTEBOOK = "notebook"; public static final String ERROR = "error"; @@ -67,6 +69,10 @@ public static final String ATTR_ITEM_LIST = "itemList"; + public static final String ATTR_BURNING_QUESTION_PREFIX = "burningQuestion"; + + public static final String ATTR_BURNING_QUESTIONS = "burningQuestions"; + public static final String ATTR_ITEM_ORDER_ID_PREFIX = "itemOrderId"; public static final String ATTR_ITEM_TITLE_PREFIX = "itemTitle"; @@ -130,14 +136,18 @@ public static final String ATTR_USER_FINISHED = "userFinished"; public static final String ATTR_IS_GROUPED_ACTIVITY = "isGroupedActivity"; - + public static final String ATTR_REFLECTION_ON = "reflectOn"; + public static final String ATTR_IS_BURNING_QUESTIONS_ENABLED = "isBurningQuestionsEnabled"; + public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions"; public static final String ATTR_REFLECTION_ENTRY = "reflectEntry"; public static final String ATTR_REFLECTIONS = "reflections"; + + public static final String ATTR_BURNING_QUESTIONS_DTOS = "burningQuestionDtos"; public static final String ATTR_USER_UID = "userUid"; Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/ScratchieBurningQuestionDAO.java =================================================================== diff -u --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/ScratchieBurningQuestionDAO.java (revision 0) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/ScratchieBurningQuestionDAO.java (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -0,0 +1,38 @@ +/**************************************************************** + * 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.scratchie.dao; + +import java.util.List; + +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieBurningQuestion; + +public interface ScratchieBurningQuestionDAO extends DAO { + + List getBurningQuestionsByItemUid(Long itemUid); + + ScratchieBurningQuestion getBurningQuestionBySessionAndItem(Long sessionId, Long itemUid); + + List getBurningQuestionsBySession(Long sessionId); + +} Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/hibernate/ScratchieBurningQuestionDAOHibernate.java =================================================================== diff -u --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/hibernate/ScratchieBurningQuestionDAOHibernate.java (revision 0) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dao/hibernate/ScratchieBurningQuestionDAOHibernate.java (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -0,0 +1,61 @@ +/**************************************************************** + * 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.scratchie.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieBurningQuestionDAO; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieBurningQuestion; + +public class ScratchieBurningQuestionDAOHibernate extends LAMSBaseDAO implements ScratchieBurningQuestionDAO { + + private static final String FIND_BY_SESSION_AND_ITEM = "from " + ScratchieBurningQuestion.class.getName() + + " as r where r.sessionId=? and r.scratchieItem.uid = ?"; + + private static final String FIND_BY_SESSION = "from " + ScratchieBurningQuestion.class.getName() + + " as r where r.sessionId=? order by r.scratchieItem.orderId asc"; + + private static final String FIND_BY_ITEM_UID = "from " + ScratchieBurningQuestion.class.getName() + + " as r where r.scratchieItem.uid=? order by r.sessionId asc"; + + @Override + public List getBurningQuestionsByItemUid(Long itemUid) { + return (List) this.doFind(FIND_BY_ITEM_UID, new Object[] { itemUid}); + } + + @Override + public ScratchieBurningQuestion getBurningQuestionBySessionAndItem(Long sessionId, Long itemUid) { + List list = this.doFind(FIND_BY_SESSION_AND_ITEM, new Object[] { sessionId, itemUid }); + if (list == null || list.size() == 0) + return null; + return (ScratchieBurningQuestion) list.get(0); + } + + @Override + public List getBurningQuestionsBySession(Long sessionId) { + return (List) this.doFind(FIND_BY_SESSION, new Object[] { sessionId }); + } + +} Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20150206.sql =================================================================== diff -u --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20150206.sql (revision 0) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dbupdates/patch20150206.sql (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -0,0 +1,26 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV- +ALTER TABLE tl_lascrt11_scratchie ADD COLUMN burning_questions_enabled TINYINT DEFAULT 1; +CREATE TABLE tl_lascrt11_burning_question ( + uid bigint NOT NULL auto_increment, + access_date DATETIME, + scratchie_item_uid BIGINT, + session_id BIGINT, + question TEXT, + PRIMARY KEY (uid) +)ENGINE=InnoDB; +ALTER TABLE tl_lascrt11_burning_question ADD INDEX FK_NEW_610529188_693580A438BF8DF2 (scratchie_item_uid), ADD CONSTRAINT FK_NEW_610529188_693580A438BF8DF2 FOREIGN KEY (scratchie_item_uid) REFERENCES tl_lascrt11_scratchie_item (uid); +ALTER TABLE tl_lascrt11_burning_question ADD INDEX sessionIdIndex2 (session_id), ADD CONSTRAINT sessionIdIndex2 FOREIGN KEY (session_id) REFERENCES tl_lascrt11_session (session_id); + +UPDATE lams_tool SET tool_version='20150206' WHERE tool_signature='lascrt11'; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/BurningQuestionDTO.java =================================================================== diff -u --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/BurningQuestionDTO.java (revision 0) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/BurningQuestionDTO.java (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.scratchie.dto; + +import java.util.Map; + +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieBurningQuestion; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem; + +public class BurningQuestionDTO { + private ScratchieItem item; + + private Map groupNameToBurningQuestion; + + public ScratchieItem getItem() { + return item; + } + + public void setItem(ScratchieItem item) { + this.item = item; + } + + public Map getGroupNameToBurningQuestion() { + return groupNameToBurningQuestion; + } + + public void setGroupNameToBurningQuestion(Map leaderNameToBurningQuestion) { + this.groupNameToBurningQuestion = leaderNameToBurningQuestion; + } +} Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/Scratchie.java =================================================================== diff -u -r4428202881c5551dd3973c9011d7a70e0a517060 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/Scratchie.java (.../Scratchie.java) (revision 4428202881c5551dd3973c9011d7a70e0a517060) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/Scratchie.java (.../Scratchie.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -69,6 +69,8 @@ private Set scratchieItems; private boolean extraPoint; + + private boolean burningQuestionsEnabled; private boolean reflectOnActivity; @@ -262,11 +264,11 @@ * * @return */ - public Set getScratchieItems() { + public Set getScratchieItems() { return scratchieItems; } - public void setScratchieItems(Set scratchieItems) { + public void setScratchieItems(Set scratchieItems) { this.scratchieItems = scratchieItems; } @@ -329,4 +331,16 @@ public void setExtraPoint(boolean extraPoint) { this.extraPoint = extraPoint; } + + /** + * @hibernate.property column="burning_questions_enabled" + * @return + */ + public boolean isBurningQuestionsEnabled() { + return burningQuestionsEnabled; + } + + public void setBurningQuestionsEnabled(boolean burningQuestionsEnabled) { + this.burningQuestionsEnabled = burningQuestionsEnabled; + } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java =================================================================== diff -u --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java (revision 0) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieBurningQuestion.java (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -0,0 +1,104 @@ +/**************************************************************** + * 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.scratchie.model; + +import java.util.Date; + +/** + * ScratchieBurningQuestion + * + * @author Andrey Balan + * + * @hibernate.class table="tl_lascrt11_burning_question" + * + */ +public class ScratchieBurningQuestion { + + private Long uid; + private ScratchieItem scratchieItem; + private Date accessDate; + private Long sessionId; + private String question; + + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * @return Returns the log Uid. + */ + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="access_date" + * @return + */ + public Date getAccessDate() { + return accessDate; + } + + public void setAccessDate(Date accessDate) { + this.accessDate = accessDate; + } + + /** + * @hibernate.many-to-one column="scratchie_item_uid" cascade="none" + * @return + */ + public ScratchieItem getScratchieItem() { + return scratchieItem; + } + + public void setScratchieItem(ScratchieItem scratchieItem) { + this.scratchieItem = scratchieItem; + } + + /** + * @hibernate.property column="session_id" + * @return + */ + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } + + /** + * @hibernate.property column="question" type="text" + * @return + */ + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + +} Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java =================================================================== diff -u -r98d6135d78b975d3d7487470795b4a9e5bbf2bc6 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java (.../ScratchieItem.java) (revision 98d6135d78b975d3d7487470795b4a9e5bbf2bc6) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/model/ScratchieItem.java (.../ScratchieItem.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -64,6 +64,7 @@ private int userMark; private int userAttempts; private String firstChoiceAnswerLetter; + private String burningQuestion; /** * Default contruction method. @@ -232,4 +233,12 @@ public void setFirstChoiceAnswerLetter(String firstChoiceAnswerLetter) { this.firstChoiceAnswerLetter = firstChoiceAnswerLetter; } + + public String getBurningQuestion() { + return burningQuestion; + } + + public void setBurningQuestion(String burningQuestion) { + this.burningQuestion = burningQuestion; + } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml =================================================================== diff -u -rf3fbbb8ec1732de7e5ce51567287b42b55ab33e1 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml (.../scratchieApplicationContext.xml) (revision f3fbbb8ec1732de7e5ce51567287b42b55ab33e1) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/scratchieApplicationContext.xml (.../scratchieApplicationContext.xml) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -28,6 +28,12 @@ + + + + + + @@ -66,6 +72,9 @@ + + + Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java =================================================================== diff -u -re5a3c4e8e88340e636c501f79cec1b91ab59a5cf -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision e5a3c4e8e88340e636c501f79cec1b91ab59a5cf) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -30,10 +30,12 @@ import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.tool.scratchie.dto.BurningQuestionDTO; import org.lamsfoundation.lams.tool.scratchie.dto.GroupSummary; import org.lamsfoundation.lams.tool.scratchie.dto.ReflectDTO; import org.lamsfoundation.lams.tool.scratchie.model.Scratchie; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieAnswer; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieBurningQuestion; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieConfigItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession; @@ -63,6 +65,17 @@ */ ScratchieUser checkLeaderSelectToolForSessionLeader(ScratchieUser user, Long toolSessionId); + List getBurningQuestionsBySession(Long sessionId); + + /** + * Save or update burningQuestion into database. + * + * @param sessionId + * @param itemUid + * @param question + */ + void saveBurningQuestion(Long sessionId, Long itemUid, String question); + ScratchieAnswer getScratchieAnswerByUid (Long answerUid); /** @@ -158,15 +171,24 @@ * @param user */ void getScratchesOrder(Collection items, Long toolSessionId); - + /** * Fill in scratchieItems with information about whether they were unraveled; and answers with information on their scratched. * * @param scratchieItemList + * @param item item parameter is optional. In case it's provided - these item collection is used instead of quering DB */ - Set getItemsWithIndicatedScratches(Long toolSessionId); + Collection getItemsWithIndicatedScratches(Long toolSessionId); /** + * The same as getItemsWithIndicatedScratches(Long toolSessionId), but items are provided as parameter and not queried from DB. + * + * @param scratchieItemList + * @param item this item collection is used instead of quering DB + */ + Collection getItemsWithIndicatedScratches(Long toolSessionId, Collection items); + + /** * Leader has scratched the specified answer. Will store this scratch for all users in his group. It will also * update all the marks. */ @@ -202,6 +224,14 @@ List getQuestionSummary(Long contentId, Long itemUid); /** + * Get BurningQuestionDtos used for summary tab + * + * @param scratchie + * @return + */ + List getBurningQuestionDtos(Scratchie scratchie); + + /** * Export excel spreadheet * * @param scratchie Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieImportContentVersionFilter.java =================================================================== diff -u -r4428202881c5551dd3973c9011d7a70e0a517060 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieImportContentVersionFilter.java (.../ScratchieImportContentVersionFilter.java) (revision 4428202881c5551dd3973c9011d7a70e0a517060) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieImportContentVersionFilter.java (.../ScratchieImportContentVersionFilter.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -67,4 +67,11 @@ public void up20140102To20140505() { this.removeField(Scratchie.class, "contentInUse"); } + + /** + * Import 20140613 version content to 20150206 version tool server. + */ + public void up20140613To20150206() { + this.addField(Scratchie.class, "burningQuestionsEnabled", new Integer(1)); + } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -r8985ddefea0eab7214b15794ffa3a34a5748d61f -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 8985ddefea0eab7214b15794ffa3a34a5748d61f) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -64,16 +64,19 @@ import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.scratchie.ScratchieConstants; import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieAnswerVisitDAO; +import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieBurningQuestionDAO; import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieConfigItemDAO; import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieDAO; import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieItemDAO; import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieSessionDAO; import org.lamsfoundation.lams.tool.scratchie.dao.ScratchieUserDAO; +import org.lamsfoundation.lams.tool.scratchie.dto.BurningQuestionDTO; import org.lamsfoundation.lams.tool.scratchie.dto.GroupSummary; import org.lamsfoundation.lams.tool.scratchie.dto.ReflectDTO; import org.lamsfoundation.lams.tool.scratchie.model.Scratchie; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieAnswer; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieAnswerVisitLog; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieBurningQuestion; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieConfigItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession; @@ -108,6 +111,8 @@ private ScratchieAnswerVisitDAO scratchieAnswerVisitDao; + private ScratchieBurningQuestionDAO scratchieBurningQuestionDao; + private ScratchieConfigItemDAO scratchieConfigItemDao; // tool service @@ -416,7 +421,31 @@ } } + + @Override + public List getBurningQuestionsBySession(Long sessionId) { + return scratchieBurningQuestionDao.getBurningQuestionsBySession(sessionId); + } + + @Override + public void saveBurningQuestion(Long sessionId, Long itemUid, String question) { + + ScratchieBurningQuestion burningQuestion = scratchieBurningQuestionDao.getBurningQuestionBySessionAndItem(sessionId, itemUid); + + if (burningQuestion == null) { + burningQuestion = new ScratchieBurningQuestion(); + ScratchieItem item = scratchieItemDao.getByUid(itemUid); + burningQuestion.setScratchieItem(item); + burningQuestion.setSessionId(sessionId); + burningQuestion.setAccessDate(new Date()); + } + burningQuestion.setQuestion(question); + scratchieBurningQuestionDao.saveObject(burningQuestion); + } + + + @Override public ScratchieAnswer getScratchieAnswerByUid(Long answerUid) { ScratchieAnswer res = (ScratchieAnswer) userManagementService.findById(ScratchieAnswer.class, answerUid); @@ -531,13 +560,19 @@ } @Override - public Set getItemsWithIndicatedScratches(Long toolSessionId) { - List userLogs = scratchieAnswerVisitDao.getLogsBySession(toolSessionId); + public Collection getItemsWithIndicatedScratches(Long toolSessionId) { Scratchie scratchie = this.getScratchieBySessionId(toolSessionId); Set items = new TreeSet(new ScratchieItemComparator()); items.addAll(scratchie.getScratchieItems()); + return getItemsWithIndicatedScratches(toolSessionId, items); + } + + @Override + public Collection getItemsWithIndicatedScratches(Long toolSessionId, Collection items) { + List userLogs = scratchieAnswerVisitDao.getLogsBySession(toolSessionId); + for (ScratchieItem item : items) { for (ScratchieAnswer answer : (Set) item.getAnswers()) { @@ -560,6 +595,7 @@ boolean isItemUnraveled = this.isItemUnraveled(item, userLogs); item.setUnraveled(isItemUnraveled); } + return items; } @@ -722,7 +758,48 @@ return groupSummaryList; } + + @Override + public List getBurningQuestionDtos(Scratchie scratchie) { + + Set items = new TreeSet(new ScratchieItemComparator()); + items.addAll(scratchie.getScratchieItems()); + // get all available leaders associated with this content as only leaders have reflections + List sessionList = scratchieSessionDao.getByContentId(scratchie.getContentId()); + + List burningQuestionDtos = new LinkedList(); + for (ScratchieItem item : items) { + BurningQuestionDTO burningQuestionDTO = new BurningQuestionDTO(); + burningQuestionDTO.setItem(item); + + List burningQuestions = scratchieBurningQuestionDao + .getBurningQuestionsByItemUid(item.getUid()); + + Map groupNameToBurningQuestion = new LinkedHashMap(); + for (ScratchieBurningQuestion burningQuestion : burningQuestions) { + + //find corresponding session + ScratchieSession session = null; + for (ScratchieSession sessionIter : sessionList) { + if (burningQuestion.getSessionId().equals(sessionIter.getSessionId())) { + session = sessionIter; + break; + } + } + + String groupName = StringEscapeUtils.escapeJavaScript(session.getSessionName()); + String burningQuestionText = StringEscapeUtils.escapeJavaScript(burningQuestion.getQuestion()); + groupNameToBurningQuestion.put(groupName, burningQuestionText); + } + burningQuestionDTO.setGroupNameToBurningQuestion(groupNameToBurningQuestion); + + burningQuestionDtos.add(burningQuestionDTO); + } + + return burningQuestionDtos; + } + @Override public List getReflectionList(Long contentId) { ArrayList reflections = new ArrayList(); @@ -1492,6 +1569,10 @@ this.scratchieAnswerVisitDao = scratchieItemVisitDao; } + public void setScratchieBurningQuestionDao(ScratchieBurningQuestionDAO scratchieBurningQuestionDao) { + this.scratchieBurningQuestionDao = scratchieBurningQuestionDao; + } + public void setScratchieConfigItemDao(ScratchieConfigItemDAO scratchieConfigItemDao) { this.scratchieConfigItemDao = scratchieConfigItemDao; } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java =================================================================== diff -u -r193a418fc853597cede66ad2e00324ac5bd6500d -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision 193a418fc853597cede66ad2e00324ac5bd6500d) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/LearningAction.java (.../LearningAction.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -41,6 +41,7 @@ import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.apache.struts.action.Action; @@ -59,6 +60,7 @@ import org.lamsfoundation.lams.tool.scratchie.dto.ReflectDTO; import org.lamsfoundation.lams.tool.scratchie.model.Scratchie; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieAnswer; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieBurningQuestion; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser; @@ -107,6 +109,12 @@ if (param.equals("finish")) { return finish(mapping, form, request, response); } + if (param.equals("showBurningQuestions")) { + return showBurningQuestions(mapping, form, request, response); + } + if (param.equals("saveBurningQuestions")) { + return saveBurningQuestions(mapping, form, request, response); + } if (param.equals("showResults")) { return showResults(mapping, form, request, response); } @@ -187,7 +195,7 @@ notebookEntry = LearningAction.service.getEntry(toolSessionId, CoreNotebookConstants.NOTEBOOK_TOOL, ScratchieConstants.TOOL_SIGNATURE, groupLeader.getUserId().intValue()); } - String entryText = (notebookEntry == null) ? new String() : notebookEntry.getEntry(); + String entryText = (notebookEntry == null) ? null : notebookEntry.getEntry(); // basic information sessionMap.put(ScratchieConstants.ATTR_TITLE, scratchie.getTitle()); @@ -202,6 +210,7 @@ sessionMap.put(ScratchieConstants.ATTR_USER_FINISHED, isUserFinished); sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, toolSessionId); sessionMap.put(AttributeNames.ATTR_MODE, mode); + sessionMap.put(ScratchieConstants.ATTR_IS_BURNING_QUESTIONS_ENABLED, scratchie.isBurningQuestionsEnabled()); // reflection information sessionMap.put(ScratchieConstants.ATTR_REFLECTION_ON, isReflectOnActivity); sessionMap.put(ScratchieConstants.ATTR_REFLECTION_INSTRUCTION, scratchie.getReflectInstructions()); @@ -252,6 +261,26 @@ LearningAction.service.getScratchesOrder(items, toolSessionId); } + // populate items with the existing burning questions for displaying purposes + List burningQuestions = null; + if (scratchie.isBurningQuestionsEnabled()) { + + burningQuestions = LearningAction.service + .getBurningQuestionsBySession(toolSessionId); + for (ScratchieItem item : items) { + + // find corresponding burningQuestion + String question = ""; + for (ScratchieBurningQuestion burningQuestion : burningQuestions) { + if (burningQuestion.getScratchieItem().getUid().equals(item.getUid())) { + question = burningQuestion.getQuestion(); + break; + } + } + item.setBurningQuestion(question); + } + } + // calculate max score int maxScore = items.size() * 4; if (scratchie.isExtraPoint()) { @@ -283,6 +312,11 @@ //show learning.jsp page } else { + + //make non leaders also wait for burning questions submit + isWaitingForLeaderToSubmitNotebook |= scratchie.isBurningQuestionsEnabled() + && (burningQuestions == null || burningQuestions.isEmpty()); + sessionMap.put(ScratchieConstants.ATTR_IS_SCRATCHING_FINISHED, (Boolean) isScratchingFinished); sessionMap.put(ScratchieConstants.ATTR_IS_WAITING_FOR_LEADER_TO_SUBMIT_NOTEBOOK, (Boolean) isWaitingForLeaderToSubmitNotebook); @@ -307,7 +341,7 @@ ScratchieSession toolSession = LearningAction.service.getScratchieSessionBySessionId(toolSessionId); // set scratched flag for display purpose - Set items = LearningAction.service.getItemsWithIndicatedScratches(toolSessionId); + Collection items = LearningAction.service.getItemsWithIndicatedScratches(toolSessionId); sessionMap.put(ScratchieConstants.ATTR_ITEM_LIST, items); // refresh leadership status @@ -333,6 +367,7 @@ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute( sessionMapID); boolean isReflectOnActivity = (Boolean) sessionMap.get(ScratchieConstants.ATTR_REFLECTION_ON); + boolean isBurningQuestionsEnabled = (Boolean) sessionMap.get(ScratchieConstants.ATTR_IS_BURNING_QUESTIONS_ENABLED); Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); ScratchieSession toolSession = service.getScratchieSessionBySessionId(toolSessionId); @@ -345,6 +380,14 @@ ScratchieConstants.TOOL_SIGNATURE, groupLeader.getUserId().intValue()); } boolean isWaitingForLeaderToSubmitNotebook = isReflectOnActivity && (notebookEntry == null); + + // make non leaders also wait for burning questions submit + List burningQuestions = null; + if (isBurningQuestionsEnabled) { + burningQuestions = LearningAction.service.getBurningQuestionsBySession(toolSessionId); + } + isWaitingForLeaderToSubmitNotebook |= isBurningQuestionsEnabled + && (burningQuestions == null || burningQuestions.isEmpty()); JSONObject JSONObject = new JSONObject(); JSONObject.put(ScratchieConstants.ATTR_IS_WAITING_FOR_LEADER_TO_SUBMIT_NOTEBOOK, isWaitingForLeaderToSubmitNotebook); @@ -458,7 +501,7 @@ double percentage = (maxScore == 0) ? 0 : ((score * 100) / maxScore); request.setAttribute(ScratchieConstants.ATTR_SCORE, (int) percentage); - // Create reflectList if reflection is enabled. + // display other groups' notebooks if (isReflectOnActivity) { List reflections = LearningAction.service.getReflectionList(toolSession.getScratchie() .getContentId()); @@ -481,6 +524,7 @@ request.setAttribute(ScratchieConstants.ATTR_REFLECTIONS, reflections); } + return mapping.findForward(ScratchieConstants.SUCCESS); } @@ -521,8 +565,112 @@ } return mapping.findForward(ScratchieConstants.SUCCESS); } + + /** + * Displays burning questions page. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + * @throws ScratchieApplicationException + */ + private ActionForward showBurningQuestions(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws ScratchieApplicationException { + initializeScratchieService(); + String sessionMapID = WebUtil.readStrParam(request, ScratchieConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + request.setAttribute(ScratchieConstants.ATTR_SESSION_MAP_ID, sessionMapID); + final Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + Long userUid = (Long) sessionMap.get(ScratchieConstants.ATTR_USER_UID); + + // set scratched flag for display purpose + Collection items = (Collection) sessionMap.get(ScratchieConstants.ATTR_ITEM_LIST); + LearningAction.service.getItemsWithIndicatedScratches(toolSessionId, items); + // in case of the leader we should let all other learners see Next Activity button + ScratchieSession toolSession = LearningAction.service.getScratchieSessionBySessionId(toolSessionId); + if (toolSession.isUserGroupLeader(userUid) && !toolSession.isScratchingFinished()) { + tryExecute(new Callable() { + @Override + public Object call() throws ScratchieApplicationException { + LearningAction.service.setScratchingFinished(toolSessionId); + return null; + } + }); + } + + return mapping.findForward(ScratchieConstants.SUCCESS); + } + /** + * Submit reflection form input database. Only leaders can submit reflections. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + * @throws ScratchieApplicationException + */ + private ActionForward saveBurningQuestions(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws ScratchieApplicationException { + initializeScratchieService(); + + String sessionMapID = WebUtil.readStrParam(request, ScratchieConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute( + sessionMapID); + Scratchie scratchie = (Scratchie) sessionMap.get(ScratchieConstants.ATTR_SCRATCHIE); + final Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + Collection items = (Collection) sessionMap.get(ScratchieConstants.ATTR_ITEM_LIST); + + for (int i = 0; i < items.size(); i++) { + final Long itemUid = WebUtil.readLongParam(request, ScratchieConstants.ATTR_ITEM_UID + i); + ScratchieItem item = null; + for (ScratchieItem itemIter : items) { + if (itemIter.getUid().equals(itemUid)) { + item = itemIter; + break; + } + } + + final String question = request.getParameter(ScratchieConstants.ATTR_BURNING_QUESTION_PREFIX + i); + //question = question.replaceAll("[\n\r\f]", ""); + + //if burning question is not blank save it + if (StringUtils.isNotBlank(question)) { + + //skip updating if the value wasn't changed + if (item.getBurningQuestion() != null && item.getBurningQuestion().equals(question)) { + continue; + } + + // update new entry + tryExecute(new Callable() { + @Override + public Object call() throws ScratchieApplicationException { + LearningAction.service.saveBurningQuestion(sessionId, itemUid, question); + return null; + } + }); + + //update question in sessionMap + item.setBurningQuestion(question); + } + + } + + boolean isNotebookSubmitted = sessionMap.get(ScratchieConstants.ATTR_REFLECTION_ENTRY) != null; + if (scratchie.isReflectOnActivity() && !isNotebookSubmitted) { + return newReflection(mapping, form, request, response); + } else { + return showResults(mapping, form, request, response); + } + + } + + /** * Display empty reflection form. * * @param mapping @@ -569,7 +717,7 @@ }); } - return mapping.findForward(ScratchieConstants.SUCCESS); + return mapping.findForward(ScratchieConstants.NOTEBOOK); } /** Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java =================================================================== diff -u -r4428202881c5551dd3973c9011d7a70e0a517060 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 4428202881c5551dd3973c9011d7a70e0a517060) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -45,6 +45,7 @@ import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.lamsfoundation.lams.tool.scratchie.ScratchieConstants; +import org.lamsfoundation.lams.tool.scratchie.dto.BurningQuestionDTO; import org.lamsfoundation.lams.tool.scratchie.dto.GroupSummary; import org.lamsfoundation.lams.tool.scratchie.dto.ReflectDTO; import org.lamsfoundation.lams.tool.scratchie.model.Scratchie; @@ -130,6 +131,12 @@ sessionMap.put(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID)); sessionMap.put(ScratchieConstants.ATTR_REFLECTION_ON, scratchie.isReflectOnActivity()); + + // Create BurningQuestionsDtos if BurningQuestions is enabled. + if (scratchie.isBurningQuestionsEnabled()) { + List burningQuestionDtos = service.getBurningQuestionDtos(scratchie); + sessionMap.put(ScratchieConstants.ATTR_BURNING_QUESTIONS_DTOS, burningQuestionDtos); + } // Create reflectList if reflection is enabled. if (scratchie.isReflectOnActivity()) { Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/form/ScratchieForm.java =================================================================== diff -u -rbe07c35c372d904a65581d98660e73f3b13b69db -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/form/ScratchieForm.java (.../ScratchieForm.java) (revision be07c35c372d904a65581d98660e73f3b13b69db) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/form/ScratchieForm.java (.../ScratchieForm.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -32,7 +32,6 @@ import org.lamsfoundation.lams.tool.scratchie.model.Scratchie; /** - * * Scratchie Form. * * @struts.form name="scratchieForm" @@ -72,6 +71,7 @@ scratchie.setDefineLater(false); scratchie.setReflectOnActivity(false); scratchie.setExtraPoint(false); + scratchie.setBurningQuestionsEnabled(false); } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/servlet/ExportServlet.java =================================================================== diff -u -r4428202881c5551dd3973c9011d7a70e0a517060 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 4428202881c5551dd3973c9011d7a70e0a517060) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -25,6 +25,7 @@ package org.lamsfoundation.lams.tool.scratchie.web.servlet; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Set; @@ -134,7 +135,7 @@ } // set complete flag for display purpose - Set items = service.getItemsWithIndicatedScratches(toolSessionID); + Collection items = service.getItemsWithIndicatedScratches(toolSessionID); sessionMap.put(ScratchieConstants.ATTR_ITEM_LIST, items); // Add flag to indicate whether to render user notebook entries Index: lams_tool_scratchie/web/pages/authoring/advance.jsp =================================================================== diff -u -re434a34abbf6499ccbedee5db7bb4d237bcae53b -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/web/pages/authoring/advance.jsp (.../advance.jsp) (revision e434a34abbf6499ccbedee5db7bb4d237bcae53b) +++ lams_tool_scratchie/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -15,6 +15,13 @@

+ + +

+ +

+

+ +

+ +
+ + +

+
+ + + + + + + + + +
+ + + + + + + + + + + + + ${answer.description} +
+ +

+ + +


+
+ +
+ + + +
+ +
+ + + + + + + Index: lams_tool_scratchie/web/pages/learning/learning.jsp =================================================================== diff -u -r193a418fc853597cede66ad2e00324ac5bd6500d -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/web/pages/learning/learning.jsp (.../learning.jsp) (revision 193a418fc853597cede66ad2e00324ac5bd6500d) +++ lams_tool_scratchie/web/pages/learning/learning.jsp (.../learning.jsp) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -59,22 +59,18 @@ }); } - function finish(){ + function finish(method){ var numberOfAvailableScratches = $("[id^=imageLink-][onclick]").length; var finishConfirmed = (numberOfAvailableScratches > 0) ? confirm("") : true; if (finishConfirmed) { document.getElementById("finishButton").disabled = true; - document.location.href =''; + document.location.href =''; return false; } } - function continueReflect(){ - document.location.href=''; - } - var refreshIntervalId = null; if (${!isUserLeader && mode != "teacher"}) { refreshIntervalId = setInterval("refreshQuestionList();",3000);// Auto-Refresh every 3 seconds Index: lams_tool_scratchie/web/pages/learning/questionlist.jsp =================================================================== diff -u -reb2efb1bd19298060a61c733ac5b72ea1c8bbb7a -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/web/pages/learning/questionlist.jsp (.../questionlist.jsp) (revision eb2efb1bd19298060a61c733ac5b72ea1c8bbb7a) +++ lams_tool_scratchie/web/pages/learning/questionlist.jsp (.../questionlist.jsp) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -32,7 +32,7 @@ //query for leader status (only in case there is notebook at the end of activity and leader hasn't answered it yet) var checkLeaderIntervalId = null; if (${!isUserLeader && isScratchingFinished && isWaitingForLeaderToSubmitNotebook && mode != "teacher"}) { - checkLeaderIntervalId = setInterval("checkLeaderSubmittedNotebook();",20000);// ask for leader status every 20 seconds + checkLeaderIntervalId = setInterval("checkLeaderSubmittedNotebook();",2000);// ask for leader status every 20 seconds } //check Leader Submitted Notebook and if true show finishButton @@ -55,83 +55,88 @@ } - -

-
+ +

+
- - - - + +
- - - - - - - - - - - - - - - - + + + + + +
+ + ${answer.attemptOrder} + +
+
+ - - - -
+ + + + + + + + + + + + + + + + - -
- - ${answer.attemptOrder} - -
-
-
- ${answer.description} -
- +
+ ${answer.description} +
+ +
- <%-- show reflection (only for teacher) --%> - -
-

+<%-- show reflection (only for teacher) --%> + +
+

+

+ +

+ + +

- + +

+
+ +

+ +

+
+
+
+
- - -

- - -

-
- -

- -

-
-
-
-
-
+ + + + + - + - - + + Index: lams_tool_scratchie/web/pages/learning/results.jsp =================================================================== diff -u -r5a34230e9a7235fc38a88e67f91ed641a71ee46f -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/web/pages/learning/results.jsp (.../results.jsp) (revision 5a34230e9a7235fc38a88e67f91ed641a71ee46f) +++ lams_tool_scratchie/web/pages/learning/results.jsp (.../results.jsp) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -83,6 +83,9 @@ function continueReflect(){ document.location.href=''; } + function editBurningQuestions(){ + document.location.href=''; + } @@ -112,7 +115,39 @@ ${score}% + + +
+

:

+ + + + + + + +
+ + + + + - + + + + + +
+
+ + + + + +
+
+

:

Index: lams_tool_scratchie/web/pages/monitoring/parts/advanceOptions.jsp =================================================================== diff -u -r33930bf7e6bfcea95a0edddd72f2adb5eaad5b62 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/web/pages/monitoring/parts/advanceOptions.jsp (.../advanceOptions.jsp) (revision 33930bf7e6bfcea95a0edddd72f2adb5eaad5b62) +++ lams_tool_scratchie/web/pages/monitoring/parts/advanceOptions.jsp (.../advanceOptions.jsp) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -19,7 +19,7 @@ - + @@ -31,12 +31,29 @@ + + + + + + + + + + + + + + + + + - + @@ -47,7 +64,7 @@ - + Index: lams_tool_scratchie/web/pages/monitoring/summary.jsp =================================================================== diff -u -r33930bf7e6bfcea95a0edddd72f2adb5eaad5b62 -r48254dfc21feff77f6873023998798430649b7a5 --- lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 33930bf7e6bfcea95a0edddd72f2adb5eaad5b62) +++ lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 48254dfc21feff77f6873023998798430649b7a5) @@ -14,6 +14,11 @@ vertical-align:text-top; padding-top:2px; } + .burning-question-dto { + padding-left: 30px; + padding-bottom: 5px; + width:96%; + }

-
- +
+
+
+
@@ -264,11 +300,26 @@
- + + +
+

+ +

+
+ + +
+
+
+
+
+ + -
+

@@ -284,7 +335,6 @@
-