Index: samigo-api/src/java/xml/xsl/dataTransform/import/v1p2/extractItem.xsl
===================================================================
--- samigo-api/src/java/xml/xsl/dataTransform/import/v1p2/extractItem.xsl (revision 399)
+++ samigo-api/src/java/xml/xsl/dataTransform/import/v1p2/extractItem.xsl (revision 400)
@@ -127,7 +127,7 @@
-
+
Index: samigo-services/src/java/org/sakaiproject/tool/assessment/facade/AssessmentFacadeQueriesAPI.java
===================================================================
--- samigo-services/src/java/org/sakaiproject/tool/assessment/facade/AssessmentFacadeQueriesAPI.java (revision 399)
+++ samigo-services/src/java/org/sakaiproject/tool/assessment/facade/AssessmentFacadeQueriesAPI.java (revision 400)
@@ -107,9 +107,15 @@
public AssessmentFacade createAssessmentWithoutDefaultSection(String title,
String description, Long typeId, Long templateId) throws Exception;
+ public AssessmentFacade createAssessmentWithoutDefaultSection(String title,
+ String description, Long typeId, Long templateId, String siteId) throws Exception;
+
public AssessmentFacade createAssessment(String title, String description,
Long typeId, Long templateId) throws Exception;
+ public AssessmentFacade createAssessment(String title, String description,
+ Long typeId, Long templateId, String siteId) throws Exception;
+
public ArrayList getAllAssessments(String orderBy);
public ArrayList getAllActiveAssessments(String orderBy);
Index: samigo-services/src/java/org/sakaiproject/tool/assessment/facade/AssessmentFacadeQueries.java
===================================================================
--- samigo-services/src/java/org/sakaiproject/tool/assessment/facade/AssessmentFacadeQueries.java (revision 399)
+++ samigo-services/src/java/org/sakaiproject/tool/assessment/facade/AssessmentFacadeQueries.java (revision 400)
@@ -585,11 +585,17 @@
*/
public AssessmentFacade createAssessmentWithoutDefaultSection(String title,
String description, Long typeId, Long templateId) throws Exception {
+ return createAssessmentWithoutDefaultSection(title, description, typeId, templateId, null);
+ }
+
+
+ public AssessmentFacade createAssessmentWithoutDefaultSection(String title,
+ String description, Long typeId, Long templateId, String siteId) throws Exception {
// this assessment came with one default section
AssessmentData assessment = null;
try {
assessment = prepareAssessment(title, description, typeId,
- templateId);
+ templateId, siteId);
} catch (Exception e) {
throw new Exception(e);
}
@@ -597,12 +603,17 @@
getHibernateTemplate().save(assessment);
// register assessmnet with current site
- registerWithCurrentSite(assessment.getAssessmentId().toString());
+ registerWithSite(assessment.getAssessmentId().toString(), siteId);
return new AssessmentFacade(assessment);
}
private AssessmentData prepareAssessment(String title, String description,
Long typeId, Long templateId) throws Exception {
+ return prepareAssessment(title, description, typeId, templateId, null);
+ }
+
+ private AssessmentData prepareAssessment(String title, String description,
+ Long typeId, Long templateId, String siteId) throws Exception {
// #1 - get the template (a facade) and create Assessment based on it
AssessmentTemplateFacade template = getAssessmentTemplate(templateId);
AssessmentData assessment = cloneAssessmentFromTemplate((AssessmentTemplateData) template
@@ -622,7 +633,11 @@
if (("ANONYMOUS_USERS").equals(defaultReleaseTo)) {
control.setReleaseTo("Anonymous Users");
} else {
- control.setReleaseTo(AgentFacade.getCurrentSiteName());
+ if (siteId == null || siteId.length() == 0) {
+ control.setReleaseTo(AgentFacade.getCurrentSiteName());
+ } else {
+ control.setReleaseTo(AgentFacade.getSiteName(siteId));
+ }
}
/*
@@ -647,7 +662,7 @@
GradebookServiceHelper gbsHelper = IntegrationContextFactory
.getInstance().getGradebookServiceHelper();
if (!gbsHelper
- .gradebookExists(GradebookFacade.getGradebookUId(), g))
+ .gradebookExists(GradebookFacade.getGradebookUId(siteId), g))
evaluation
.setToGradeBook(EvaluationModelIfc.GRADEBOOK_NOT_AVAILABLE
.toString());
@@ -664,12 +679,17 @@
public AssessmentFacade createAssessment(String title, String description,
Long typeId, Long templateId) throws Exception {
+ return createAssessment(title, description, typeId, templateId, null);
+ }
+ public AssessmentFacade createAssessment(String title, String description,
+ Long typeId, Long templateId, String siteId) throws Exception {
+
// this assessment comes with a default section
AssessmentData assessment = null;
try {
assessment = prepareAssessment(title, description, typeId,
- templateId);
+ templateId, siteId);
} catch (Exception e) {
throw new Exception(e);
}
@@ -687,15 +707,25 @@
}
}
// register assessmnet with current site
- registerWithCurrentSite(assessment.getAssessmentId().toString());
+ registerWithSite(assessment.getAssessmentId().toString(), siteId);
return new AssessmentFacade(assessment);
}
- private void registerWithCurrentSite(String qualifierIdString) {
+ private void registerWithSite(String qualifierIdString, String siteId) {
+ if (siteId == null || siteId.length() == 0) {
+ PersistenceService.getInstance().getAuthzQueriesFacade()
+ .createAuthorization(AgentFacade.getCurrentSiteId(),
+ "EDIT_ASSESSMENT", qualifierIdString);
+ } else {
PersistenceService.getInstance().getAuthzQueriesFacade()
- .createAuthorization(AgentFacade.getCurrentSiteId(),
+ .createAuthorization(siteId,
"EDIT_ASSESSMENT", qualifierIdString);
+ }
}
+
+ private void registerWithCurrentSite(String qualifierIdString) {
+ registerWithSite(qualifierIdString, null);
+ }
public ArrayList getAllAssessments(String orderBy) {
List list = getHibernateTemplate().find(
Index: samigo-services/src/java/org/sakaiproject/tool/assessment/services/assessment/AssessmentService.java
===================================================================
--- samigo-services/src/java/org/sakaiproject/tool/assessment/services/assessment/AssessmentService.java (revision 399)
+++ samigo-services/src/java/org/sakaiproject/tool/assessment/services/assessment/AssessmentService.java (revision 400)
@@ -221,6 +221,11 @@
public AssessmentFacade createAssessment(String title, String description,
String typeId, String templateId) throws Exception {
+ return createAssessment(title, description, typeId, templateId, null);
+ }
+
+ public AssessmentFacade createAssessment(String title, String description,
+ String typeId, String templateId, String siteId) throws Exception {
AssessmentFacade assessment = null;
try {
AssessmentTemplateFacade assessmentTemplate = null;
@@ -238,7 +243,7 @@
.getInstance().getAssessmentFacadeQueries();
log.debug("**** AssessmentFacadeQueries=" + queries);
assessment = queries.createAssessment(title, description,
- typeIdLong, templateIdLong);
+ typeIdLong, templateIdLong, siteId);
} catch (Exception e) {
log.error(e);
throw new Exception(e);
@@ -364,6 +369,13 @@
public AssessmentFacade createAssessmentWithoutDefaultSection(String title,
String description, String typeId, String templateId)
throws Exception {
+ return createAssessmentWithoutDefaultSection(title, description, typeId, templateId, null);
+ }
+
+
+ public AssessmentFacade createAssessmentWithoutDefaultSection(String title,
+ String description, String typeId, String templateId, String siteId)
+ throws Exception {
AssessmentFacade assessment = null;
try {
AssessmentTemplateFacade assessmentTemplate = null;
@@ -380,7 +392,7 @@
AssessmentFacadeQueriesAPI queries = PersistenceService
.getInstance().getAssessmentFacadeQueries();
assessment = queries.createAssessmentWithoutDefaultSection(title,
- description, typeIdLong, templateIdLong);
+ description, typeIdLong, templateIdLong, siteId);
} catch (Exception e) {
log.error(e);
throw new Exception(e);
Index: samigo-qti/src/java/org/sakaiproject/tool/assessment/services/qti/QTIService.java
===================================================================
--- samigo-qti/src/java/org/sakaiproject/tool/assessment/services/qti/QTIService.java (revision 399)
+++ samigo-qti/src/java/org/sakaiproject/tool/assessment/services/qti/QTIService.java (revision 400)
@@ -67,13 +67,24 @@
throw new QTIServiceException(ex);
}
}
-
+
public AssessmentFacade createImportedAssessment(Document document, int qtiVersion, String unzipLocation, String templateId) {
+ testQtiVersion(qtiVersion);
+
+ try {
+ AuthoringHelper helper = new AuthoringHelper(qtiVersion);
+ return helper.createImportedAssessment(document, unzipLocation, templateId);
+ } catch (Exception ex) {
+ throw new QTIServiceException(ex);
+ }
+ }
+
+ public AssessmentFacade createImportedAssessment(Document document, int qtiVersion, String unzipLocation, String templateId, String siteId) {
testQtiVersion(qtiVersion);
try {
AuthoringHelper helper = new AuthoringHelper(qtiVersion);
- return helper.createImportedAssessment(document, unzipLocation, templateId);
+ return helper.createImportedAssessment(document, unzipLocation, templateId, siteId);
} catch (Exception ex) {
throw new QTIServiceException(ex);
}
Index: samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java
===================================================================
--- samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java (revision 399)
+++ samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java (revision 400)
@@ -473,6 +473,11 @@
*/
public AssessmentFacade createImportedAssessment(Document document, String unzipLocation, String templateId)
{
+ return createImportedAssessment(document, unzipLocation, templateId, null);
+ }
+
+ public AssessmentFacade createImportedAssessment(Document document, String unzipLocation, String templateId, String siteId)
+ {
AssessmentFacade assessment = null;
AssessmentService assessmentService = new AssessmentService();
@@ -490,7 +495,7 @@
String description = XmlUtil.processFormattedText(log, (String) assessmentMap.get("description"));
String title = XmlUtil.processFormattedText(log, (String) assessmentMap.get("title"));
assessment = assessmentService.createAssessmentWithoutDefaultSection(
- title, exHelper.makeFCKAttachment(description), null, templateId);
+ title, exHelper.makeFCKAttachment(description), null, templateId, siteId);
// now make sure we have a unique name for the assessment
String baseId = assessment.getAssessmentBaseId().toString();