private void sendFeedback(List<BulkAssessmentFeedback> feedbacks) { if (task == null) { log.error("Haven't a task to know creator and modifiers of the task", null); return; } Identity creator = task.getCreator(); String language = creator.getUser().getPreferences().getLanguage(); Locale locale = I18nManager.getInstance().getLocaleOrDefault(language); Translator translator = Util.createPackageTranslator( BulkAssessmentOverviewController.class, locale, Util.createPackageTranslator(AssessmentManager.class, locale)); MailManager mailManager = CoreSpringFactory.getImpl(MailManager.class); TaskExecutorManager taskManager = CoreSpringFactory.getImpl(TaskExecutorManager.class); String feedbackStr = renderFeedback(feedbacks, translator); MailBundle mail = new MailBundle(); mail.setToId(creator); mail.setFrom(WebappHelper.getMailConfig("mailReplyTo")); List<Identity> modifiers = taskManager.getModifiers(task); if (modifiers.size() > 0) { ContactList cc = new ContactList("CC"); cc.addAllIdentites(modifiers); mail.setContactList(cc); } String businessPath = ""; ICourse course = CourseFactory.loadCourse(courseRes); CourseNode node = course.getRunStructure().getNode(courseNodeIdent); String courseTitle = course.getCourseTitle(); String nodeTitle = node.getShortTitle(); String numOfAssessedIds = Integer.toString(datas == null ? 0 : datas.getRowsSize()); String date = Formatter.getInstance(locale).formatDateAndTime(new Date()); mail.setContext(new MailContextImpl(courseRes, courseNodeIdent, businessPath)); String subject = translator.translate("confirmation.mail.subject", new String[] {courseTitle, nodeTitle}); String body = translator.translate( "confirmation.mail.body", new String[] {courseTitle, nodeTitle, feedbackStr, numOfAssessedIds, date}); mail.setContent(subject, body); mailManager.sendMessage(mail); }
private void createParticipantsMail(UserRequest ureq, List<Identity> participants) { VelocityContainer sendMessageVC = createVelocityContainer("sendmessage"); ContactMessage cmsg = new ContactMessage(ureq.getIdentity()); ContactList contactList = new ContactList(translate("participants.message.to")); contactList.addAllIdentites(participants); cmsg.addEmailTo(contactList); removeAsListenerAndDispose(contactCtr); contactCtr = new ContactFormController(ureq, getWindowControl(), false, false, false, false, cmsg); listenTo(contactCtr); sendMessageVC.contextPut("title", translate("participants.message")); sendMessageVC.put("contactForm", contactCtr.getInitialComponent()); removeAsListenerAndDispose(notificationCmc); notificationCmc = new CloseableModalController(getWindowControl(), "close", sendMessageVC); listenTo(notificationCmc); notificationCmc.activate(); }