Skip to content
Snippets Groups Projects
Commit 071f78a9 authored by Dirk Furrer's avatar Dirk Furrer
Browse files

Merge with 26daacc5d2119392bac22ac119001f640078aee5

parents db0d1eb1 a2aa982c
No related branches found
No related tags found
No related merge requests found
...@@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest;
import org.olat.basesecurity.IdentityRef; import org.olat.basesecurity.IdentityRef;
import org.olat.course.assessment.model.SearchAssessmentModeParams; import org.olat.course.assessment.model.SearchAssessmentModeParams;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
import org.olat.group.BusinessGroupRef;
import org.olat.group.area.BGArea; import org.olat.group.area.BGArea;
import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntry;
import org.olat.repository.RepositoryEntryRef; import org.olat.repository.RepositoryEntryRef;
...@@ -49,6 +50,8 @@ public interface AssessmentModeManager { ...@@ -49,6 +50,8 @@ public interface AssessmentModeManager {
public AssessmentModeToGroup createAssessmentModeToGroup(AssessmentMode mode, BusinessGroup group); public AssessmentModeToGroup createAssessmentModeToGroup(AssessmentMode mode, BusinessGroup group);
public void deleteAssessmentModesToGroup(BusinessGroupRef group);
public AssessmentModeToArea createAssessmentModeToArea(AssessmentMode mode, BGArea area); public AssessmentModeToArea createAssessmentModeToArea(AssessmentMode mode, BGArea area);
......
...@@ -19,7 +19,8 @@ ...@@ -19,7 +19,8 @@
*/ */
package org.olat.course.assessment.manager; package org.olat.course.assessment.manager;
import static org.olat.core.commons.persistence.PersistenceHelper.*; import static org.olat.core.commons.persistence.PersistenceHelper.appendAnd;
import static org.olat.core.commons.persistence.PersistenceHelper.appendFuzzyLike;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
...@@ -55,6 +56,7 @@ import org.olat.course.assessment.model.AssessmentModeToGroupImpl; ...@@ -55,6 +56,7 @@ import org.olat.course.assessment.model.AssessmentModeToGroupImpl;
import org.olat.course.assessment.model.SearchAssessmentModeParams; import org.olat.course.assessment.model.SearchAssessmentModeParams;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
import org.olat.group.BusinessGroupImpl; import org.olat.group.BusinessGroupImpl;
import org.olat.group.BusinessGroupRef;
import org.olat.group.area.BGArea; import org.olat.group.area.BGArea;
import org.olat.group.area.BGAreaManager; import org.olat.group.area.BGAreaManager;
import org.olat.group.area.BGtoAreaRelationImpl; import org.olat.group.area.BGtoAreaRelationImpl;
...@@ -400,6 +402,14 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager { ...@@ -400,6 +402,14 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
return modeToGroup; return modeToGroup;
} }
@Override
public void deleteAssessmentModesToGroup(BusinessGroupRef group) {
String q = "delete from courseassessmentmodetogroup as modegrrel where modegrrel.businessGroup.key=:groupKey";
dbInstance.getCurrentEntityManager().createQuery(q)
.setParameter("groupKey", group.getKey())
.executeUpdate();
}
@Override @Override
public AssessmentModeToArea createAssessmentModeToArea(AssessmentMode mode, BGArea area) { public AssessmentModeToArea createAssessmentModeToArea(AssessmentMode mode, BGArea area) {
AssessmentModeToAreaImpl modeToArea = new AssessmentModeToAreaImpl(); AssessmentModeToAreaImpl modeToArea = new AssessmentModeToAreaImpl();
......
...@@ -440,7 +440,7 @@ public class AssessmentModeEditController extends FormBasicController { ...@@ -440,7 +440,7 @@ public class AssessmentModeEditController extends FormBasicController {
if(targetEl.isOneSelected()) { if(targetEl.isOneSelected()) {
Target target = AssessmentMode.Target.valueOf(targetEl.getSelectedKey()); Target target = AssessmentMode.Target.valueOf(targetEl.getSelectedKey());
if(target == Target.courseAndGroups || target == Target.groups) { if(target == Target.courseAndGroups || target == Target.groups) {
if(groupKeys.isEmpty()) { if(groupKeys.isEmpty() && areaKeys.isEmpty()) {
targetEl.setErrorKey("error.group.missing", null); targetEl.setErrorKey("error.group.missing", null);
allOk &= false; allOk &= false;
} }
......
...@@ -121,17 +121,20 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager { ...@@ -121,17 +121,20 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager {
/** /**
* @see org.olat.group.area.BGAreaManager#deleteBGArea(org.olat.group.area.BGArea) * @see org.olat.group.area.BGAreaManager#deleteBGArea(org.olat.group.area.BGArea)
*/ */
// o_clusterOK by:cg must be synchronized too @Override
public void deleteBGArea(final BGArea area) { public void deleteBGArea(final BGArea area) {
final OLATResource resource = area.getResource(); final OLATResource resource = area.getResource();
CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(resource, new SyncerExecutor(){ CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(resource, new SyncerExecutor() {
@Override
public void execute() { public void execute() {
BGArea reloadArea = loadArea(area.getKey()); BGArea reloadArea = loadArea(area.getKey());
if (reloadArea != null) { if (reloadArea != null) {
// 1) delete all area - group relations // 1) delete all area - group relations
deleteBGtoAreaRelations(reloadArea); deleteBGtoAreaRelations(reloadArea);
// 2) delete area itself // 2) delete area - assessment mode relations
deleteAssessmentModeToAreaRelations(reloadArea);
// 3) delete area itself
dbInstance.deleteObject(reloadArea); dbInstance.deleteObject(reloadArea);
logAudit("Deleted Business Group Area", reloadArea.toString()); logAudit("Deleted Business Group Area", reloadArea.toString());
} else { } else {
...@@ -146,6 +149,7 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager { ...@@ -146,6 +149,7 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager {
* *
* @param group * @param group
*/ */
@Override
public void deleteBGtoAreaRelations(BusinessGroup group) { public void deleteBGtoAreaRelations(BusinessGroup group) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" delete from ").append(BGtoAreaRelationImpl.class.getName()).append(" as bgarel where bgarel.businessGroup.key=:groupKey"); sb.append(" delete from ").append(BGtoAreaRelationImpl.class.getName()).append(" as bgarel where bgarel.businessGroup.key=:groupKey");
...@@ -450,4 +454,13 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager { ...@@ -450,4 +454,13 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager {
.setParameter("areaKey", area.getKey()) .setParameter("areaKey", area.getKey())
.executeUpdate(); .executeUpdate();
} }
private void deleteAssessmentModeToAreaRelations(BGArea area) {
StringBuilder sb = new StringBuilder();
sb.append("delete from courseassessmentmodetoarea as modearel where modearel.area.key=:areaKey");
dbInstance.getCurrentEntityManager().createQuery(sb.toString())
.setParameter("areaKey", area.getKey())
.executeUpdate();
}
} }
\ No newline at end of file
...@@ -68,6 +68,7 @@ import org.olat.core.util.mail.MailTemplate; ...@@ -68,6 +68,7 @@ import org.olat.core.util.mail.MailTemplate;
import org.olat.core.util.mail.MailerResult; import org.olat.core.util.mail.MailerResult;
import org.olat.core.util.resource.OLATResourceableJustBeforeDeletedEvent; import org.olat.core.util.resource.OLATResourceableJustBeforeDeletedEvent;
import org.olat.core.util.resource.OresHelper; import org.olat.core.util.resource.OresHelper;
import org.olat.course.assessment.AssessmentModeManager;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
import org.olat.group.BusinessGroupAddResponse; import org.olat.group.BusinessGroupAddResponse;
import org.olat.group.BusinessGroupManagedFlag; import org.olat.group.BusinessGroupManagedFlag;
...@@ -147,6 +148,8 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD ...@@ -147,6 +148,8 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
@Autowired @Autowired
private ContactDAO contactDao; private ContactDAO contactDao;
@Autowired @Autowired
private AssessmentModeManager assessmentModeMgr;
@Autowired
private BusinessGroupRelationDAO businessGroupRelationDAO; private BusinessGroupRelationDAO businessGroupRelationDAO;
@Autowired @Autowired
private RepositoryEntryRelationDAO repositoryEntryRelationDao; private RepositoryEntryRelationDAO repositoryEntryRelationDao;
...@@ -747,6 +750,7 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD ...@@ -747,6 +750,7 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
areaManager.deleteBGtoAreaRelations(group); areaManager.deleteBGtoAreaRelations(group);
// 3) Delete the relations // 3) Delete the relations
businessGroupRelationDAO.deleteRelationsToRepositoryEntry(group); businessGroupRelationDAO.deleteRelationsToRepositoryEntry(group);
assessmentModeMgr.deleteAssessmentModesToGroup(group);
// 4) delete properties // 4) delete properties
propertyManager.deleteProperties(null, group, null, null, null); propertyManager.deleteProperties(null, group, null, null, null);
propertyManager.deleteProperties(null, null, group, null, null); propertyManager.deleteProperties(null, null, group, null, null);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment