Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/GroupUser.hbm.xml =================================================================== diff -u --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/GroupUser.hbm.xml (revision 0) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/GroupUser.hbm.xml (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml =================================================================== diff -u -r8176135403562bdf207f9477805d0e092915312a -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 8176135403562bdf207f9477805d0e092915312a) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -61,6 +61,9 @@ + + Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== diff -u -r85d81241e2ed717af5d7a966970e010667a07d37 -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 85d81241e2ed717af5d7a966970e010667a07d37) +++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -661,6 +661,7 @@ , learner_im_avail TINYINT(1) DEFAULT 0 , live_edit_enabled TINYINT(1) DEFAULT 0 , locked_for_edit TINYINT DEFAULT 0 + , marks_released TINYINT DEFAULT 0 , version INTEGER DEFAULT 1 , PRIMARY KEY (lesson_id) , INDEX (learning_design_id) Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r8176135403562bdf207f9477805d0e092915312a -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 8176135403562bdf207f9477805d0e092915312a) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -42,7 +42,8 @@ classpath:org/lamsfoundation/lams/learningdesign/Activity.hbm.xml classpath:org/lamsfoundation/lams/learningdesign/BranchActivityEntry.hbm.xml classpath:org/lamsfoundation/lams/learningdesign/BranchCondition.hbm.xml - classpath:org/lamsfoundation/lams/learningdesign/Group.hbm.xml + classpath:org/lamsfoundation/lams/learningdesign/Group.hbm.xml + classpath:org/lamsfoundation/lams/learningdesign/GroupUser.hbm.xml classpath:org/lamsfoundation/lams/learningdesign/Grouping.hbm.xml classpath:org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml classpath:org/lamsfoundation/lams/learningdesign/Competence.hbm.xml Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0015_updateFrom22.sql =================================================================== diff -u -ra8e2b496627d166ba5f9549d3433744320dfc1e7 -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0015_updateFrom22.sql (.../patch0015_updateFrom22.sql) (revision a8e2b496627d166ba5f9549d3433744320dfc1e7) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0015_updateFrom22.sql (.../patch0015_updateFrom22.sql) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -111,6 +111,9 @@ , PRIMARY KEY (uid) )TYPE=InnoDB; +-- LDEV-2207 ------------ Adding flag in lesson to release marks for gradebook +ALTER TABLE lams_lesson ADD COLUMN marks_released TINYINT DEFAULT 0; + ----------------------Put all sql statements above here------------------------- -- If there were no errors, commit and restore autocommit to on Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/IGradebookDAO.java =================================================================== diff -u -r8176135403562bdf207f9477805d0e092915312a -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/IGradebookDAO.java (.../IGradebookDAO.java) (revision 8176135403562bdf207f9477805d0e092915312a) +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/IGradebookDAO.java (.../IGradebookDAO.java) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -46,6 +46,10 @@ public long getAverageDurationForActivity(Long activityID); public Double getAverageMarkForActivity(Long activityID); + + public Double getAverageMarkForGroupedActivity(Long activityID, Long groupID); + + public long getAverageDurationForGroupedActivity(Long activityID, Long groupID); } Index: lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/hibernate/GradebookDAO.java =================================================================== diff -u -r8176135403562bdf207f9477805d0e092915312a -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/hibernate/GradebookDAO.java (.../GradebookDAO.java) (revision 8176135403562bdf207f9477805d0e092915312a) +++ lams_common/src/java/org/lamsfoundation/lams/gradebook/dao/hibernate/GradebookDAO.java (.../GradebookDAO.java) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -56,7 +56,13 @@ private static final String GET_AVERAGE_MARK_FOR_ACTIVTY = "select avg(gact.mark) from GradebookUserActivity gact where " + "gact.activity.activityId=:activityID"; + + private static final String GET_AVERAGE_MARK_FOR_GROUPED_ACTIVTY = "select avg(gact.mark) from GradebookUserActivity gact, GroupUser gu, Group grp where " + + "gact.activity.activityId=:activityID and grp.groupId=:groupID and gu.user=gact.learner and gu.group=grp"; + private static final String GET_AVERAGE_COMPLETION_TIME_GROUPED_ACTIVITY = "select compProg.finishDate, compProg.startDate from CompletedActivityProgress compProg, Activity act, Group grp, GroupUser gu where " + + "compProg.activity.activityId=:activityID and grp.groupId=:groupID and gu.user=compProg.learnerProgress.user and gu.group=grp"; + @SuppressWarnings("unchecked") public GradebookUserActivity getGradebookUserDataForActivity(Long activityID, Integer userID) { List result = getSession().createQuery(GET_GRADEBOOK_USER_ACTIVITY).setInteger("userID", userID.intValue()) @@ -185,8 +191,8 @@ @SuppressWarnings("unchecked") public Double getAverageMarkForActivity(Long activityID) { - List result = getSession().createQuery(GET_AVERAGE_MARK_FOR_ACTIVTY).setLong("activityID", activityID.longValue()) - .list(); + List result = getSession().createQuery(GET_AVERAGE_MARK_FOR_ACTIVTY).setLong("activityID", + activityID.longValue()).list(); if (result != null) { if (result.size() > 0) @@ -196,4 +202,49 @@ return 0.0; } + + @SuppressWarnings("unchecked") + public Double getAverageMarkForGroupedActivity(Long activityID, Long groupID) { + List result = getSession().createQuery(GET_AVERAGE_MARK_FOR_GROUPED_ACTIVTY).setLong("activityID", + activityID.longValue()).setLong("groupID", groupID.longValue()).list(); + + if (result != null) { + if (result.size() > 0) + return (Double) result.get(0); + } + + return 0.0; + } + + @SuppressWarnings("unchecked") + public long getAverageDurationForGroupedActivity(Long activityID, Long groupID) { + List result = (List) getSession().createQuery(GET_AVERAGE_COMPLETION_TIME_GROUPED_ACTIVITY) + .setLong("activityID", activityID.longValue()).setLong("groupID", groupID.longValue()).list(); + + if (result != null) { + if (result.size() > 0) { + + long sum = 0; + long count = 0; + for (Object[] dateObjs : result) { + if (dateObjs != null && dateObjs.length == 2) { + Date finishDate = (Date) dateObjs[0]; + Date startDate = (Date) dateObjs[1]; + + if (startDate != null && finishDate != null) { + + sum += finishDate.getTime() - startDate.getTime(); + count++; + } + } + } + + if (count > 0) { + return sum / count; + } + } + + } + return 0; + } } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java =================================================================== diff -u -r8176135403562bdf207f9477805d0e092915312a -r72e01661ffe932634adbe4b229d9ee44d6928a45 --- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 8176135403562bdf207f9477805d0e092915312a) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 72e01661ffe932634adbe4b229d9ee44d6928a45) @@ -139,6 +139,9 @@ /** Persistent field. Defaults to FALSE if not set to anything by a constructor parameter. */ private Boolean liveEditEnabled; + /** Persistent field. Defaults to FALSE if not set to anything by a constructor parameter. */ + private Boolean marksReleased; + //--------------------------------------------------------------------- // constructors //--------------------------------------------------------------------- @@ -620,4 +623,16 @@ public void setGradebookUserLessons(Set gradebookUserLessons) { this.gradebookUserLessons = gradebookUserLessons; } + + /** + * @hibernate.property type="java.lang.Boolean" column="marks_released" + * length="1" + */ + public Boolean getMarksReleased() { + return marksReleased; + } + + public void setMarksReleased(Boolean marksReleased) { + this.marksReleased = marksReleased; + } }