diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java index 0741892b350435df9614d611631ae07adfeda008..8a4288e33b9ead93f64ff8a89ff183de1d355d03 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java @@ -36,7 +36,6 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel { private String headerKey; private String columnKey; private int columnIndex; - private String action; private boolean sortable; private String sortedKey; @@ -53,11 +52,6 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel { this(true, headerKey, columnIndex, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer); } - public DefaultFlexiColumnModel(String headerKey, int columnIndex, String action) { - this(headerKey, columnIndex, false, null); - this.action = action; - } - public DefaultFlexiColumnModel(String headerKey, int columnIndex, boolean sortable, String sortKey) { this(true, headerKey, columnIndex, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT, new TextFlexiCellRenderer()); } @@ -78,11 +72,7 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel { @Override public String getAction() { - return action; - } - - public void setAction(String action) { - this.action = action; + return null; } @Override diff --git a/src/main/java/org/olat/course/assessment/bulk/BulkAssessmentOverviewController.java b/src/main/java/org/olat/course/assessment/bulk/BulkAssessmentOverviewController.java index e17beede64f42b0bfb54ce20d65950bd1746dffa..6f4aff155b629d1d5db8510d2f290bb84e3643f0 100644 --- a/src/main/java/org/olat/course/assessment/bulk/BulkAssessmentOverviewController.java +++ b/src/main/java/org/olat/course/assessment/bulk/BulkAssessmentOverviewController.java @@ -24,6 +24,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import org.olat.NewControllerFactory; import org.olat.core.CoreSpringFactory; import org.olat.core.commons.services.taskexecutor.Task; import org.olat.core.commons.services.taskexecutor.TaskExecutorManager; @@ -36,10 +37,13 @@ import org.olat.core.gui.components.form.flexible.elements.FormLink; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiCellRenderer; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiCellRenderer; import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -50,6 +54,7 @@ import org.olat.core.gui.control.generic.wizard.Step; import org.olat.core.gui.control.generic.wizard.StepRunnerCallback; import org.olat.core.gui.control.generic.wizard.StepsMainRunController; import org.olat.core.gui.control.generic.wizard.StepsRunContext; +import org.olat.core.id.Identity; import org.olat.core.id.OLATResourceable; import org.olat.course.CourseFactory; import org.olat.course.ICourse; @@ -111,7 +116,11 @@ public class BulkAssessmentOverviewController extends FormBasicController { columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.header.comment", Cols.comment.ordinal())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.header.returnFiles", Cols.returnFile.ordinal())); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.header.numOfAssessedUsers", Cols.numOfAssessedUsers.ordinal())); - columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.header.owner", Cols.owner.ordinal())); + + FlexiCellRenderer renderer = new StaticFlexiCellRenderer("select-owner", new TextFlexiCellRenderer()); + columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("table.header.owner", Cols.owner.ordinal(), "select-owner", renderer)); + + columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("edit", translate("edit"), "edit")); columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("delete", translate("delete"), "delete")); @@ -165,6 +174,12 @@ public class BulkAssessmentOverviewController extends FormBasicController { doConfirmDelete(ureq, data); break; } + case "select-owner": { + TaskData data = taskModel.getObject(se.getIndex()); + Identity creator = data.getTask().getCreator(); + doOpenCard(ureq, creator); + break; + } } } } @@ -198,6 +213,11 @@ public class BulkAssessmentOverviewController extends FormBasicController { super.event(ureq, source, event); } + private void doOpenCard(UserRequest ureq, Identity creator) { + String businessPath = "[Identity:" + creator.getKey() + "]"; + NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl()); + } + private void doConfirmDelete(UserRequest ureq, TaskData data) { String title = translate("delete.task"); String text = translate("delete.task.confirm", new String[]{ data.toString() }); diff --git a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java index 23b81d6a09b4e0c55a6dd0200b00f8df01933875..810a444f93c101d16490f2e85a7ab1f5bcfe4646 100644 --- a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java +++ b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java @@ -34,6 +34,8 @@ import org.olat.core.CoreSpringFactory; import org.olat.core.commons.modules.bc.FolderConfig; import org.olat.core.commons.modules.bc.vfs.OlatRootFileImpl; import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl; +import org.olat.core.commons.persistence.DB; +import org.olat.core.commons.persistence.DBFactory; import org.olat.core.commons.services.taskexecutor.LongRunnable; import org.olat.core.commons.services.taskexecutor.Task; import org.olat.core.commons.services.taskexecutor.TaskAwareRunnable; @@ -176,6 +178,9 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable { public List<BulkAssessmentFeedback> process() { List<BulkAssessmentFeedback> feedbacks = new ArrayList<>(); try { + LoggingResourceable infos = LoggingResourceable.wrap(getCourseNode()); + ThreadLocalUserActivityLogger.addLoggingResourceInfo(infos); + doProcess(feedbacks); cleanup(); } catch (Exception e) { @@ -293,6 +298,7 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable { } private void doProcess(List<BulkAssessmentFeedback> feedbacks) { + final DB dbInstance = DBFactory.getInstance(); final BaseSecurity securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); final Identity coachIdentity = securityManager.loadIdentityByKey(coachedIdentity); final ICourse course = CourseFactory.loadCourse(courseRes); @@ -328,6 +334,7 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable { cut = courseNode.getCutValueConfiguration(); } + int count = 0; List<BulkAssessmentRow> rows = datas.getRows(); for(BulkAssessmentRow row:rows) { Long identityKey = row.getIdentityKey(); @@ -335,7 +342,7 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable { feedbacks.add(new BulkAssessmentFeedback("bulk.action.no.such.user", row.getAssessedId())); continue;//nothing to do } - + Identity identity = securityManager.loadIdentityByKey(identityKey); IdentityEnvironment ienv = new IdentityEnvironment(identity, studentRoles); UserCourseEnvironment uce = new UserCourseEnvironmentImpl(ienv, course.getCourseEnvironment()); @@ -415,6 +422,10 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable { } } } + + if(count++ % 5 == 0) { + dbInstance.commitAndCloseSession(); + } } } diff --git a/src/main/java/org/olat/home/UserSearchAndInfoController.java b/src/main/java/org/olat/home/UserSearchAndInfoController.java index 83bc1db91908c11b50128aa6694c42be9e4bafaf..a7dadf15189a26c195c16f496aa82f8d7e9b195b 100644 --- a/src/main/java/org/olat/home/UserSearchAndInfoController.java +++ b/src/main/java/org/olat/home/UserSearchAndInfoController.java @@ -97,8 +97,7 @@ public class UserSearchAndInfoController extends BasicController { */ @Override protected void event(UserRequest ureq, Component source, Event event) { - // TODO Auto-generated method stub - + // } /** @@ -106,8 +105,6 @@ public class UserSearchAndInfoController extends BasicController { */ @Override protected void doDispose() { - // TODO Auto-generated method stub - + // } - } diff --git a/src/main/java/org/olat/modules/co/ContactForm.java b/src/main/java/org/olat/modules/co/ContactForm.java index b7333fc036d7ed7f318abd648633c0933183961c..fe96d263237b9420b949723348e4c315d0bfa7e5 100644 --- a/src/main/java/org/olat/modules/co/ContactForm.java +++ b/src/main/java/org/olat/modules/co/ContactForm.java @@ -56,7 +56,6 @@ import org.olat.core.util.FileUtils; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.core.util.filter.FilterFactory; -import org.olat.core.util.filter.impl.SmileysCssToDataUriFilter; import org.olat.core.util.mail.ContactList; import org.olat.core.util.mail.MailModule; import org.olat.user.UserManager;