[minimark] 7 new revisions pushed by lucio.benfante on 2009-09-19 06:38 GMT

0 views
Skip to first unread message

codesite...@google.com

unread,
Sep 19, 2009, 2:43:03 AM9/19/09
to minimark...@googlegroups.com
7 new revisions:

Revision: a702340553
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Tue Sep 15 07:17:56 2009
Log: Merged an head
http://code.google.com/p/minimark/source/detail?r=a702340553

Revision: e2cd9cc3d0
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Tue Sep 15 07:18:10 2009
Log: Merged an head
http://code.google.com/p/minimark/source/detail?r=e2cd9cc3d0

Revision: a62c36ccd3
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Tue Sep 15 07:19:25 2009
Log: Created fix-issue-8 branch
http://code.google.com/p/minimark/source/detail?r=a62c36ccd3

Revision: 55bb7618b5
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:31:58 2009
Log: Added assessment copy. Fixes issue 8.
http://code.google.com/p/minimark/source/detail?r=55bb7618b5

Revision: 2c0ffda0ff
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:35:01 2009
Log: Merged changes from branch fix-issue-8. Fixes issue 8.
http://code.google.com/p/minimark/source/detail?r=2c0ffda0ff

Revision: ba4b5acb8a
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:36:17 2009
Log: Closed branch fix-issue-8
http://code.google.com/p/minimark/source/detail?r=ba4b5acb8a

Revision: 319b4fe4fd
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:37:26 2009
Log: Merged changes from branch fix-issue-8. Fixes issue 8.
http://code.google.com/p/minimark/source/detail?r=319b4fe4fd

==============================================================================
Revision: a702340553
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Tue Sep 15 07:17:56 2009
Log: Merged an head
http://code.google.com/p/minimark/source/detail?r=a702340553

==============================================================================
Revision: e2cd9cc3d0
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Tue Sep 15 07:18:10 2009
Log: Merged an head
http://code.google.com/p/minimark/source/detail?r=e2cd9cc3d0

==============================================================================
Revision: a62c36ccd3
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Tue Sep 15 07:19:25 2009
Log: Created fix-issue-8 branch
http://code.google.com/p/minimark/source/detail?r=a62c36ccd3

==============================================================================
Revision: 55bb7618b5
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:31:58 2009
Log: Added assessment copy. Fixes issue 8.
http://code.google.com/p/minimark/source/detail?r=55bb7618b5

Modified:
/minimark/src/main/java/com/benfante/minimark/blo/AssessmentBo.java
/minimark/src/main/java/com/benfante/minimark/blo/QuestionBo.java

/minimark/src/main/java/com/benfante/minimark/controllers/AssessmentController.java
/minimark/src/main/java/com/benfante/minimark/po/Assessment.java
/minimark/src/main/webapp/WEB-INF/jsp/assessment/list.jsp
/minimark/src/main/webapp/WEB-INF/messages.properties
/minimark/src/main/webapp/WEB-INF/messages_en.properties
/minimark/src/main/webapp/WEB-INF/messages_it.properties
/minimark/src/main/webapp/stylesheets/custom.css

=======================================
--- /minimark/src/main/java/com/benfante/minimark/blo/AssessmentBo.java Fri
Sep 4 00:37:53 2009
+++ /minimark/src/main/java/com/benfante/minimark/blo/AssessmentBo.java Fri
Sep 18 23:31:58 2009
@@ -31,12 +31,14 @@
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Random;
import javax.annotation.Resource;
import org.apache.commons.lang.StringUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
+import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@@ -56,6 +58,8 @@
private AssessmentQuestionDao assessmentQuestionDao;
@Resource
private QuestionBo questionBo;
+ @Resource
+ private MessageSource messageSource;

/**
* Add a question to an assessment.
@@ -257,4 +261,40 @@
}
return result;
}
-}
+
+ /**
+ * Build a non-persistent copy of an assessment and its questions.
+ *
+ * @param assessment The source assessment
+ * @return The new assessment
+ */
+ public Assessment copyAssessment(Assessment assessment, Locale locale)
{
+ Assessment result = new Assessment();
+ result.setAllowStudentPrint(assessment.getAllowStudentPrint());
+ result.setAssessmentDate(new Date());
+ result.setConfirmPassword(assessment.getPassword());
+ result.setCourse(assessment.getCourse());
+ result.setDescription(assessment.getDescription());
+ result.setDuration(assessment.getDuration());
+
result.setEvaluationClosedMinimumEvaluation(assessment.getEvaluationClosedMinimumEvaluation());
+
result.setEvaluationClosedType(assessment.getEvaluationClosedType());
+ result.setEvaluationMaxValue(assessment.getEvaluationMaxValue());
+ result.setEvaluationType(assessment.getEvaluationType());
+ result.setExposedResult(assessment.getExposedResult());
+ result.setMinPassedValue(assessment.getMinPassedValue());
+ result.setMonitoringUsers(assessment.getMonitoringUsers());
+ result.setNewPassword(assessment.getPassword());
+ result.setPassword(assessment.getPassword());
+ result.setShowInHomePage(assessment.getShowInHomePage());
+ result.setShuffleQuestions(assessment.getShuffleQuestions());
+ result.setTitle(assessment.getTitle()+"
["+messageSource.getMessage(
+ "Copy", null, "?Copy?", locale)+"]");
+ for (AssessmentQuestion assessmentQuestion :
assessment.getQuestions()) {
+ final AssessmentQuestion copiedAssessmentQuestion =
+ questionBo.copyAssessmentQuestion(assessmentQuestion);
+ copiedAssessmentQuestion.setAssessment(result);
+ result.getQuestions().add(copiedAssessmentQuestion);
+ }
+ return result;
+ }
+}
=======================================
--- /minimark/src/main/java/com/benfante/minimark/blo/QuestionBo.java Fri
Sep 4 00:37:53 2009
+++ /minimark/src/main/java/com/benfante/minimark/blo/QuestionBo.java Fri
Sep 18 23:31:58 2009
@@ -23,14 +23,17 @@
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.logging.Level;
import javax.annotation.Resource;
import com.benfante.minimark.dao.QuestionDao;
import com.benfante.minimark.dao.TagDao;
import com.benfante.minimark.dao.TagQuestionLinkDao;
+import com.benfante.minimark.po.AssessmentQuestion;
import com.benfante.minimark.po.ClosedQuestion;
import com.benfante.minimark.po.OpenQuestion;
import com.benfante.minimark.po.Tag;
import com.benfante.minimark.po.TagQuestionLink;
+import java.util.Locale;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
@@ -86,17 +89,19 @@
} else if ("closed".equals(questionBean.getType())) {
crit = DetachedCriteria.forClass(ClosedQuestion.class);
} else {
- throw new IllegalArgumentException("Unknown question type
(" + questionBean.
- getType() + ")");
+ throw new IllegalArgumentException("Unknown question type
(" +
+ questionBean.getType() + ")");
}
}
if (StringUtils.isNotBlank(questionBean.getTitle())) {
- crit.add(Restrictions.ilike("title", questionBean.getTitle(),
MatchMode.ANYWHERE));
+ crit.add(Restrictions.ilike("title", questionBean.getTitle(),
+ MatchMode.ANYWHERE));
}
if (questionBean.getWeight() != null) {
crit.add(Restrictions.eq("weight", questionBean.getWeight()));
}
- if (questionBean.getCourse() != null &&
questionBean.getCourse().getId() != null) {
+ if (questionBean.getCourse() != null &&
+ questionBean.getCourse().getId() != null) {
crit.add(Restrictions.eq("course.id",
questionBean.getCourse().getId()));
}
@@ -174,4 +179,19 @@
}
}
}
-}
+
+ /**
+ * Build a non-persistent copy of an assessment question.
+ *
+ * @param assessmentQuestion The source assessmentQuestion
+ * @return The new assessmentQuestion
+ */
+ public AssessmentQuestion copyAssessmentQuestion(
+ AssessmentQuestion assessmentQuestion) {
+ AssessmentQuestion result = new AssessmentQuestion();
+ result.setAssessment(assessmentQuestion.getAssessment());
+ result.setOrdering(assessmentQuestion.getOrdering());
+ result.setQuestion(assessmentQuestion.getQuestion());
+ return result;
+ }
+}
=======================================
---
/minimark/src/main/java/com/benfante/minimark/controllers/AssessmentController.java
Fri Sep 4 00:37:53 2009
+++
/minimark/src/main/java/com/benfante/minimark/controllers/AssessmentController.java
Fri Sep 18 23:31:58 2009
@@ -18,6 +18,7 @@
package com.benfante.minimark.controllers;

import com.benfante.minimark.beans.QuestionBean;
+import com.benfante.minimark.blo.AssessmentBo;
import com.benfante.minimark.blo.QuestionBo;
import com.benfante.minimark.blo.UserProfileBo;
import com.benfante.minimark.dao.AssessmentDao;
@@ -26,6 +27,7 @@
import com.benfante.minimark.po.Course;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.parancoe.web.util.FlashHelper;
@@ -65,6 +67,8 @@
private UserProfileBo userProfileBo;
@Resource
private QuestionBo questionBo;
+ @Resource
+ private AssessmentBo assessmentBo;

@RequestMapping
public String edit(@RequestParam("id") Long id, Model model) {
@@ -136,6 +140,7 @@
if (assessment == null) {
throw new RuntimeException("Assessment not found");
}
+ userProfileBo.checkEditAuthorization(assessment);
model.addAttribute(ASSESSMENT_ATTR_NAME, assessment);
final QuestionBean questionBean = new QuestionBean();
Course courseBean = new Course();
@@ -147,5 +152,17 @@
model.addAttribute(ASSESSMENT_QUESTIONS_ATTR_NAME, assessment.
getQuestions());
}
+
+ @RequestMapping
+ public String copy(@RequestParam("id") Long id, Model model, Locale
locale) {
+ Assessment assessment = assessmentDao.get(id);
+ if (assessment == null) {
+ throw new RuntimeException("Assessment not found");
+ }
+ userProfileBo.checkEditAuthorization(assessment);
+ Assessment newAssessment = assessmentBo.copyAssessment(assessment,
locale);
+ model.addAttribute(ASSESSMENT_ATTR_NAME, newAssessment);
+ return EDIT_VIEW;
+ }

}
=======================================
--- /minimark/src/main/java/com/benfante/minimark/po/Assessment.java Mon
Sep 14 01:38:33 2009
+++ /minimark/src/main/java/com/benfante/minimark/po/Assessment.java Fri
Sep 18 23:31:58 2009
@@ -20,6 +20,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
+import java.util.LinkedList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@@ -60,7 +61,7 @@
public static final String
EVALUATION_CLOSED_SUM_CORRECT_MINUS_WRONG_ANSWERS =
"sum_correct_minus_wrong_answers";
private List<AssessmentFilling> assessmentFillings;
- protected List<AssessmentQuestion> questions;
+ protected List<AssessmentQuestion> questions = new
LinkedList<AssessmentQuestion>();
protected Course course;
protected Boolean active = Boolean.FALSE;
@NotBlank
=======================================
--- /minimark/src/main/webapp/WEB-INF/jsp/assessment/list.jsp Fri Sep 4
00:37:53 2009
+++ /minimark/src/main/webapp/WEB-INF/jsp/assessment/list.jsp Fri Sep 18
23:31:58 2009
@@ -50,6 +50,7 @@
</display:column>
<display:column>
<a class="action action-edit"
href="${cp}/assessment/edit.html?id=${ca.id}"><spring:message code="Edit"
text="?Edit?"/></a>
+ <a class="action action-copy"
href="${cp}/assessment/copy.html?id=${ca.id}"><spring:message code="Copy"
text="?Copy?"/></a>
<spring:message code='confirmDeleteAssessment'
text='?confirmDeleteAssessment?' var="confirmDeleteAssessmentMessage"/>
<a class="action action-delete"
href="${cp}/assessment/delete.html?id=${ca.id}" onclick="return
confirm('${confirmDeleteAssessmentMessage}')"><spring:message code="Delete"
text="?Delete?"/></a>
<a class="action action-detail-go"
href="${cp}/assessment/questions.html?id=${ca.id}"><spring:message
code="Questions" text="?Questions?"/></a>
=======================================
--- /minimark/src/main/webapp/WEB-INF/messages.properties Mon Sep 14
01:38:33 2009
+++ /minimark/src/main/webapp/WEB-INF/messages.properties Fri Sep 18
23:31:58 2009
@@ -213,3 +213,4 @@
YourProfile=Your profile
IntentionallyLeftBlank=Intentionally left blank.
status.warning.duplicated=DUP
+Copy=Copy
=======================================
--- /minimark/src/main/webapp/WEB-INF/messages_en.properties Mon Sep 14
01:38:33 2009
+++ /minimark/src/main/webapp/WEB-INF/messages_en.properties Fri Sep 18
23:31:58 2009
@@ -214,3 +214,4 @@
YourProfile=Your profile
IntentionallyLeftBlank=Intentionally left blank.
status.warning.duplicated=DUP
+Copy=Copy
=======================================
--- /minimark/src/main/webapp/WEB-INF/messages_it.properties Mon Sep 14
01:38:33 2009
+++ /minimark/src/main/webapp/WEB-INF/messages_it.properties Fri Sep 18
23:31:58 2009
@@ -214,3 +214,4 @@
YourProfile=Il tuo profilo
IntentionallyLeftBlank=Lasciata bianca intenzionalmente.
status.warning.duplicated=DUP
+Copy=Copia
=======================================
--- /minimark/src/main/webapp/stylesheets/custom.css Mon Sep 14 01:38:33
2009
+++ /minimark/src/main/webapp/stylesheets/custom.css Fri Sep 18 23:31:58
2009
@@ -229,6 +229,10 @@
.action-clear, .action-clear:hover {
background: url(../images/silk/icons/cross.png) no-repeat center left;
}
+
+.action-copy, .action-copy:hover {
+ background: url(../images/silk/icons/page_copy.png) no-repeat center
left;
+}

/* Actions end */


==============================================================================
Revision: 2c0ffda0ff
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:35:01 2009
Log: Merged changes from branch fix-issue-8. Fixes issue 8.
http://code.google.com/p/minimark/source/detail?r=2c0ffda0ff

==============================================================================
Revision: ba4b5acb8a
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:36:17 2009
Log: Closed branch fix-issue-8
http://code.google.com/p/minimark/source/detail?r=ba4b5acb8a

==============================================================================
Revision: 319b4fe4fd
Author: lucio.benfante <lucio dot benfante at gmail dot com>
Date: Fri Sep 18 23:37:26 2009
Log: Merged changes from branch fix-issue-8. Fixes issue 8.
http://code.google.com/p/minimark/source/detail?r=319b4fe4fd


Reply all
Reply to author
Forward
0 new messages