Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -r5caa0c70153ab564c5d8e347c4af4baf53b01fd0 -rddb049f146b313155b63bfd2459132df4d57a452 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 5caa0c70153ab564c5d8e347c4af4baf53b01fd0) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision ddb049f146b313155b63bfd2459132df4d57a452) @@ -201,34 +201,10 @@ this.branchActivityEntryDAO = branchActivityEntryDAO; } - /** - * - * @return - */ - public ICompetenceDAO getCompetenceDAO() { - return competenceDAO; - } - - /** - * - * @param competenceDAO - */ public void setCompetenceDAO(ICompetenceDAO competenceDAO) { this.competenceDAO = competenceDAO; } - /** - * - * @return - */ - public ICompetenceMappingDAO getCompetenceMappingDAO() { - return competenceMappingDAO; - } - - /** - * - * @param competenceMappingDAO - */ public void setCompetenceMappingDAO(ICompetenceMappingDAO competenceMappingDAO) { this.competenceMappingDAO = competenceMappingDAO; } @@ -297,18 +273,10 @@ this.licenseDAO = licenseDAO; } - public ILamsCoreToolService getLamsCoreToolService() { - return lamsCoreToolService; - } - public void setLamsCoreToolService(ILamsCoreToolService lamsCoreToolService) { this.lamsCoreToolService = lamsCoreToolService; } - public ILearningDesignService getLearningDesignService() { - return learningDesignService; - } - /** * @param learningDesignService * The Learning Design Validator Service @@ -317,15 +285,6 @@ this.learningDesignService = learningDesignService; } - @Override - public MessageService getMessageService() { - return messageService; - } - - public ILessonService getLessonService() { - return lessonService; - } - public void setLessonService(ILessonService lessonService) { this.lessonService = lessonService; } @@ -354,19 +313,7 @@ this.contentIDGenerator = contentIDGenerator; } - /** - * @see org.lamsfoundation.lams.authoring.service.IAuthoringFullService#getLearningDesign(java.lang.Long) - */ @Override - public LearningDesign getLearningDesign(Long learningDesignID) { - return learningDesignDAO.getLearningDesignById(learningDesignID); - } - - public BeanFactory getBeanFactory() { - return beanFactory; - } - - @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -376,11 +323,22 @@ **************************************************************************/ /** + * Returns a populated LearningDesign object corresponding to the given learningDesignID + * + * @param learningDesignID + * The learning_design_id of the design which has to be fetched + * @return LearningDesign The populated LearningDesign object corresponding to the given learningDesignID + */ + private LearningDesign getLearningDesign(Long learningDesignID) { + return learningDesignDAO.getLearningDesignById(learningDesignID); + } + + /** * Helper method to retrieve the user data. Gets the id from the user details in the shared session * * @return the user id */ - public static Integer getUserId() { + private static Integer getUserId() { HttpSession ss = SessionManager.getSession(); UserDTO learner = (UserDTO) ss.getAttribute(AttributeNames.USER); return learner != null ? learner.getUserID() : null; @@ -883,84 +841,6 @@ } /** - * @throws UserException - * @throws WorkspaceFolderException - * @throws IOException - * @see org.lamsfoundation.lams.authoring.service.IAuthoringFullService#insertLearningDesign(java.lang.Long, - * java.lang.Long, java.lang.Integer, java.lang.Boolean, java.lang.String, java.lang.Integer) - */ - @Override - public LearningDesign insertLearningDesign(Long originalDesignID, Long designToImportID, Integer userID, - boolean createNewLearningDesign, String newDesignName, Integer workspaceFolderID, String customCSV) - throws UserException, WorkspaceFolderException, IOException { - - User user = (User) baseDAO.find(User.class, userID); - if (user == null) { - throw new UserException(messageService.getMessage("no.such.user.exist", new Object[] { userID })); - } - - LearningDesign mainDesign = learningDesignDAO.getLearningDesignById(originalDesignID); - if (mainDesign == null) { - throw new LearningDesignException( - messageService.getMessage("no.such.learningdesign.exist", new Object[] { originalDesignID })); - } - - LearningDesign designToImport = learningDesignDAO.getLearningDesignById(designToImportID); - if (designToImport == null) { - throw new LearningDesignException( - messageService.getMessage("no.such.learningdesign.exist", new Object[] { designToImportID })); - } - - if (createNewLearningDesign) { - WorkspaceFolder workspaceFolder = (WorkspaceFolder) baseDAO.find(WorkspaceFolder.class, workspaceFolderID); - if (workspaceFolder == null) { - throw new WorkspaceFolderException( - messageService.getMessage("no.such.workspace.exist", new Object[] { workspaceFolderID })); - } - if (!workspaceManagementService - .isUserAuthorizedToModifyFolderContents(workspaceFolder.getWorkspaceFolderId(), user.getUserId())) { - throw new UserAccessDeniedException("User with user_id of " + user.getUserId() - + " is not authorized to store a copy a learning design into the workspace folder " - + workspaceFolder); - } - - mainDesign = copyLearningDesign(mainDesign, LearningDesign.COPY_TYPE_NONE, user, workspaceFolder, false, - newDesignName, customCSV); - } else { - // updating the existing design so check the rights to the folder - // containing the design. If this is in live edit mode - boolean authorised = workspaceManagementService.isUserAuthorizedToModifyFolderContents( - mainDesign.getWorkspaceFolder().getWorkspaceFolderId(), user.getUserId()); - if (!authorised) { - authorised = (mainDesign.getEditOverrideLock() != null) - && mainDesign.getEditOverrideLock().booleanValue() - && userID.equals(mainDesign.getEditOverrideUser().getUserId()); - } - if (!authorised) { - throw new UserAccessDeniedException("User with user_id of " + user.getUserId() - + " is not authorized to update a learning design into the workspace folder " - + mainDesign.getWorkspaceFolder()); - } - } - - // now dump the import design into our main sequence. Leave the first - // activity ui id for the design as it is. - int uiidOffset = mainDesign.getMaxID().intValue(); - updateDesignCompetences(designToImport, mainDesign, true); - HashMap newActivities = updateDesignActivities(designToImport, mainDesign, uiidOffset, - customCSV); - updateDesignTransitions(designToImport, mainDesign, newActivities, uiidOffset); - mainDesign.setMaxID(LearningDesign.addOffset(designToImport.getMaxID(), uiidOffset)); - mainDesign.setValidDesign(Boolean.FALSE); - mainDesign.setLastModifiedDateTime(new Date()); - learningDesignDAO.update(mainDesign); - - insertCompetenceMappings(mainDesign.getCompetences(), designToImport.getCompetences(), newActivities); - - return mainDesign; - } - - /** * @see org.lamsfoundation.lams.authoring.service.IAuthoringFullService#copyLearningDesignToolContent(org.lamsfoundation.lams.learningdesign.LearningDesign, * org.lamsfoundation.lams.learningdesign.LearningDesign, java.lang.Integer) */ @@ -1235,7 +1115,7 @@ * @param newLearningDesign * The copy of the originalLearningDesign */ - public void updateDesignTransitions(LearningDesign originalLearningDesign, LearningDesign newLearningDesign, + private void updateDesignTransitions(LearningDesign originalLearningDesign, LearningDesign newLearningDesign, HashMap newActivities, int uiidOffset) { HashSet newTransitions = new HashSet(); Set oldTransitions = originalLearningDesign.getTransitions(); @@ -1291,7 +1171,7 @@ * @param newLearningDesign * The copy of the originalLearningDesign */ - public void updateDesignCompetences(LearningDesign originalLearningDesign, LearningDesign newLearningDesign, + private void updateDesignCompetences(LearningDesign originalLearningDesign, LearningDesign newLearningDesign, boolean insert) { HashSet newCompeteces = new HashSet<>(); @@ -1334,58 +1214,6 @@ } - public void insertCompetenceMappings(Set oldCompetences, Set newCompetences, - HashMap newActivities) { - - for (Integer activityKey : newActivities.keySet()) { - Activity activity = newActivities.get(activityKey); - if (activity.isToolActivity()) { - Set newCompetenceMappings = new HashSet<>(); - ToolActivity newToolActivity = (ToolActivity) activity; - if (newToolActivity.getCompetenceMappings() != null) { - for (CompetenceMapping competenceMapping : newToolActivity.getCompetenceMappings()) { - CompetenceMapping newMapping = new CompetenceMapping(); - newMapping.setToolActivity(newToolActivity); - - // Check if competence mapping title already exists as a - // competence in the original sequence - // If so, simply use the existing competence to map to. - if ((oldCompetences != null) && (oldCompetences.size() > 0) - && (getCompetenceFromSet(oldCompetences, - competenceMapping.getCompetence().getTitle()) != null)) { - newMapping.setCompetence( - getCompetenceFromSet(oldCompetences, competenceMapping.getCompetence().getTitle())); - competenceMappingDAO.insert(newMapping); - newCompetenceMappings.add(newMapping); - } - // If competence was not already existing in the ld, add - // a new mappping - else if ((newCompetences != null) && (newCompetences.size() > 0) - && (getCompetenceFromSet(newCompetences, - competenceMapping.getCompetence().getTitle()) != null)) { - newMapping.setCompetence( - getCompetenceFromSet(newCompetences, competenceMapping.getCompetence().getTitle())); - competenceMappingDAO.insert(newMapping); - newCompetenceMappings.add(newMapping); - } - } - } - newToolActivity.getCompetenceMappings().addAll(newCompetenceMappings); - } - } - } - - public Competence getCompetenceFromSet(Set competences, String title) { - Competence ret = null; - for (Competence competence : competences) { - if (competence.getTitle().equals(title)) { - ret = competence; - break; - } - } - return ret; - } - /** * Updates the competence information in the newLearningDesign based on the originalLearningDesign * @@ -1394,7 +1222,7 @@ * @param newLearningDesign * The copy of the originalLearningDesign */ - public void updateCompetenceMappings(Set newCompetences, HashMap newActivities) { + private void updateCompetenceMappings(Set newCompetences, HashMap newActivities) { for (Integer activityKey : newActivities.keySet()) { Activity activity = newActivities.get(activityKey); if (activity.isToolActivity()) { @@ -1541,35 +1369,6 @@ } @Override - public Vector getToolActivities(Long learningDesignId, String languageCode) { - LearningDesign learningDesign = learningDesignDAO.getLearningDesignById(learningDesignId); - Vector listOfAuthoringActivityDTOs = new Vector<>(); - - for (Iterator i = learningDesign.getActivities().iterator(); i.hasNext();) { - Activity currentActivity = (Activity) i.next(); - if (currentActivity.isToolActivity()) { - try { - // Normally we pass in an array for the branch mappings as - // the second parameter to new AuthoringActivityDTO() - // but we don't need to in this case as it is only doing it - // for tool activities, and the extra parameter is only - // used for branching activities - ToolActivity toolActivity = (ToolActivity) activityDAO - .getActivityByActivityId(currentActivity.getActivityId()); - AuthoringActivityDTO activityDTO = new AuthoringActivityDTO(toolActivity, null, languageCode); - listOfAuthoringActivityDTOs.add(activityDTO); - } catch (ToolException e) { - String error = "" + e.getMessage(); - log.error(error, e); - throw new LearningDesignException(error, e); - } - } - } - - return listOfAuthoringActivityDTOs; - } - - @Override public Long insertToolContentID(Long toolID) { Tool tool = toolDAO.getToolByID(toolID); if (tool == null) { @@ -1602,39 +1401,6 @@ } /** - * Delete a learning design from the database. Does not remove any content stored in tools - that is done by the - * LamsCoreToolService - */ - @Override - public void deleteLearningDesign(LearningDesign design) { - if (design == null) { - log.error("deleteLearningDesign: unable to delete learning design as design is null."); - return; - } - - // remove all the tool content for the learning design - Set acts = design.getActivities(); - Iterator iter = acts.iterator(); - while (iter.hasNext()) { - Activity activity = (Activity) iter.next(); - if (activity.isToolActivity()) { - try { - ToolActivity toolActivity = (ToolActivity) activityDAO - .getActivityByActivityId(activity.getActivityId()); - lamsCoreToolService.notifyToolToDeleteContent(toolActivity); - } catch (ToolException e) { - log.error( - "Unable to delete tool content for activity" + activity + " as activity threw an exception", - e); - } - } - } - - // remove the learning design - learningDesignDAO.delete(design); - } - - /** * Get a unique name for a learning design, based on the names of the learning designs in the folder. If the * learning design has duplicated name in same folder, then the new name will have a timestamp. The new name format * will be oldname_ddMMYYYY_idx. The idx will be auto incremental index number, start from 1. Warning - this may be Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringFullService.java =================================================================== diff -u -r5caa0c70153ab564c5d8e347c4af4baf53b01fd0 -rddb049f146b313155b63bfd2459132df4d57a452 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringFullService.java (.../IAuthoringFullService.java) (revision 5caa0c70153ab564c5d8e347c4af4baf53b01fd0) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringFullService.java (.../IAuthoringFullService.java) (revision ddb049f146b313155b63bfd2459132df4d57a452) @@ -51,25 +51,7 @@ */ public interface IAuthoringFullService extends IAuthoringService { - /** Message key returned by the storeLearningDesignDetails() method */ - public static final String STORE_LD_MESSAGE_KEY = "storeLearningDesignDetails"; - - public static final String INSERT_LD_MESSAGE_KEY = "insertLearningDesign"; - - public static final String START_EDIT_ON_FLY_MESSAGE_KEY = "startEditOnFly"; - - public static final String COPY_TOOL_CONTENT_MESSAGE_KEY = "copyMultipleToolContent"; - /** - * Returns a populated LearningDesign object corresponding to the given learningDesignID - * - * @param learningDesignID - * The learning_design_id of the design which has to be fetched - * @return LearningDesign The populated LearningDesign object corresponding to the given learningDesignID - */ - LearningDesign getLearningDesign(Long learningDesignID); - - /** * Create a copy of learning design as per the requested learning design and saves it in the given workspacefolder. * Designed to be called when user tries to copy a learning design using the Authoring interface. Does not set the * original learning design field, so it should not be used for creating lesson learning designs. @@ -95,34 +77,6 @@ Integer workspaceFolder, boolean setOriginalDesign) throws UserException, LearningDesignException, WorkspaceFolderException, IOException; - /** - * Insert a learning design into another learning design. This is a copy and paste type of copy - it just dumps the - * contents (with modified activity ui ids) in the main learning design. It doesn't wrap up the contents in a - * sequence activity. Always sets the type to COPY_TYPE_NONE. - * - * @param originalDesignID - * The design to be "modified". Required. - * @param designToImportID - * The design to be imported into originalLearningDesign. Required. - * @param userId - * Current User. Required. - * @param customCSV - * The custom CSV required to insert tool adapter tools, so their content can be copied in the external - * server - * @param createNewLearningDesign - * If true, then a copy of the originalLearningDesign is made and the copy modified. If it is false, then - * the originalLearningDesign is modified. Required. - * @param newDesignName - * New name for the design if a new design is being create. Optional. - * @param workspaceFolderID - * The folder in which to put the new learning design if createNewLearningDesign = true. May be null if - * createNewLearningDesign = false - * @return New / updated learning design - */ - LearningDesign insertLearningDesign(Long originalDesignID, Long designToImportID, Integer userID, - boolean createNewLearningDesign, String newDesignName, Integer workspaceFolderID, String customCSV) - throws UserException, LearningDesignException, WorkspaceFolderException, IOException; - LearningDesign saveLearningDesignDetails(JSONObject ldJSON) throws UserException, JSONException, WorkspaceFolderException, ObjectExtractorException, ParseException; @@ -138,13 +92,6 @@ Vector validateLearningDesign(Long learningDesignId); /** - * - * @param learningDesignId - * @return - */ - Vector getToolActivities(Long learningDesignId, String languageCode); - - /** * This method returns a output definitions of the Tool. */ List getToolOutputDefinitions(Long toolContentID, int definitionType); @@ -176,12 +123,6 @@ Vector getAvailableLicenses(); /** - * Delete a learning design from the database. Does not remove any content stored in tools - that is done by the - * LamsCoreToolService - */ - void deleteLearningDesign(LearningDesign design); - - /** * * * @param learningDesignID @@ -195,9 +136,6 @@ */ void finishEditOnFly(Long learningDesignID, Integer userID, boolean cancelled) throws Exception; - /** Get the message service, which gives access to the I18N text */ - MessageService getMessageService(); - String getToolAuthorUrl(Long toolID, Long toolContentID, String contentFolderID); Long insertSingleActivityLearningDesign(String learningDesignTitle, Long toolID, Long toolContentID, Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringFullService.java =================================================================== diff -u -r471b903caa3365758fbdec0a22440b1b0b3f2947 -rddb049f146b313155b63bfd2459132df4d57a452 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringFullService.java (.../IMonitoringFullService.java) (revision 471b903caa3365758fbdec0a22440b1b0b3f2947) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringFullService.java (.../IMonitoringFullService.java) (revision ddb049f146b313155b63bfd2459132df4d57a452) @@ -55,18 +55,6 @@ */ Boolean togglePresenceImAvailable(long lessonId, Integer userId, Boolean learnerPresenceImAvailable); - /** - * Set whether or not the live edit is available in monitor. Checks that the user is a staff member of this lesson - * before updating. - * - * @param lessonId - * @param userId - * @param liveEditEnabled - * @return new value for liveEditEnabled. Normally will be same as input parameter, will only be different if the - * value cannot be updated for some reason. - */ - Boolean toggleLiveEditEnabled(long lessonId, Integer userId, Boolean liveEditEnabled); - /** Set whether or not to display the gradebook activity scores at the end of a lesson */ Boolean toggleGradebookOnComplete(long lessonId, Integer userId, Boolean gradebookOnComplete); @@ -271,17 +259,6 @@ void createChosenBranchingGroups(Long branchingActivityID); /** - * Remove learners from a branch. Assumes there should only be one group for this branch. Use for Teacher Chosen - * Branching. Don't use for Group Based Branching as there could be more than one group for the branch. - * - * @param sequenceActivityID - * Activity id of the sequenceActivity representing this branch - * @param learnerIDs - * the IDS of the learners to be added. - */ - void removeUsersFromBranch(Long sequenceActivityID, String learnerIDs[]) throws LessonServiceException; - - /** * Has anyone started this branch / branching activity ? Irrespective of the groups. Used to determine if a branch * mapping can be removed. */ @@ -360,17 +337,4 @@ List getAllContributeActivityDTO(Long lessonID); - /** - * Finish a lesson.A Finished lesson can be viewed on the monitoring interface. It should be an "inactive" lesson. A - * Finished lesson is listed on the learner interface but all the learner can do is view the progress - they cannot - * access any of the tool screens. - * - * @param lessonId - * @param userId - * checks that the user is a staff member for this lesson - * @param endDate - * teh lesson end date and time. - */ - void finishLesson(long lessonId, Integer userId) throws UserAccessDeniedException; - } Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r8236da64800893104429c9b88f89d500c505a9a1 -rddb049f146b313155b63bfd2459132df4d57a452 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 8236da64800893104429c9b88f89d500c505a9a1) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision ddb049f146b313155b63bfd2459132df4d57a452) @@ -916,13 +916,6 @@ } @Override - public void finishLesson(long lessonId, Integer userId) { - securityService.isLessonMonitor(lessonId, userId, "finish lesson", true); - Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); - setLessonState(requestedLesson, Lesson.FINISHED_STATE, userId); - } - - @Override public void archiveLesson(long lessonId, Integer userId) { securityService.isLessonMonitor(lessonId, userId, "archive lesson", true); Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); @@ -1197,15 +1190,6 @@ } @Override - public Boolean toggleLiveEditEnabled(long lessonId, Integer userId, Boolean liveEditEnabled) { - securityService.isLessonMonitor(lessonId, userId, "set live edit available", true); - Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); - requestedLesson.setLiveEditEnabled(liveEditEnabled != null ? liveEditEnabled : Boolean.FALSE); - lessonDAO.updateLesson(requestedLesson); - return requestedLesson.getLiveEditEnabled(); - } - - @Override public Boolean toggleGradebookOnComplete(long lessonId, Integer userId, Boolean gradebookOnComplete) { securityService.isLessonMonitor(lessonId, userId, "set gradebook on complete", true); Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId)); @@ -2377,8 +2361,16 @@ lessonService.removeLearnersFromGroup(grouping, groupId, learners); } - @Override - public void removeUsersFromBranch(Long sequenceActivityID, String learnerIDs[]) throws LessonServiceException { + /** + * Remove learners from a branch. Assumes there should only be one group for this branch. Use for Teacher Chosen + * Branching. Don't use for Group Based Branching as there could be more than one group for the branch. + * + * @param sequenceActivityID + * Activity id of the sequenceActivity representing this branch + * @param learnerIDs + * the IDS of the learners to be added. + */ + private void removeUsersFromBranch(Long sequenceActivityID, String learnerIDs[]) throws LessonServiceException { SequenceActivity branch = (SequenceActivity) getActivityById(sequenceActivityID); if (branch == null) {