use of org.olat.modules.reminder.Reminder in project OpenOLAT by OpenOLAT.
the class ReminderDAO method save.
public Reminder save(Reminder reminder) {
Reminder mergedReminder;
if (reminder.getKey() != null) {
reminder.setLastModified(new Date());
mergedReminder = dbInstance.getCurrentEntityManager().merge(reminder);
} else {
dbInstance.getCurrentEntityManager().persist(reminder);
mergedReminder = reminder;
}
return mergedReminder;
}
use of org.olat.modules.reminder.Reminder in project OpenOLAT by OpenOLAT.
the class CourseHandler method cloneReminders.
private void cloneReminders(Identity author, CourseEnvironmentMapper envMapper, RepositoryEntry source, RepositoryEntry target) {
ReminderModule reminderModule = CoreSpringFactory.getImpl(ReminderModule.class);
ReminderService reminderService = CoreSpringFactory.getImpl(ReminderService.class);
List<Reminder> reminders = reminderService.getReminders(source);
for (Reminder reminder : reminders) {
String configuration = reminder.getConfiguration();
ReminderRules rules = reminderService.toRules(configuration);
ReminderRules clonedRules = new ReminderRules();
for (ReminderRule rule : rules.getRules()) {
RuleSPI ruleSpi = reminderModule.getRuleSPIByType(rule.getType());
if (ruleSpi != null) {
ReminderRule clonedRule = ruleSpi.clone(rule, envMapper);
if (clonedRule != null)
clonedRules.getRules().add(clonedRule);
}
}
Reminder clonedReminder = reminderService.createReminder(target, author);
clonedReminder.setDescription(reminder.getDescription());
clonedReminder.setEmailSubject(reminder.getEmailSubject());
clonedReminder.setEmailBody(reminder.getEmailBody());
clonedReminder.setConfiguration(reminderService.toXML(clonedRules));
reminderService.save(clonedReminder);
}
}
use of org.olat.modules.reminder.Reminder in project OpenOLAT by OpenOLAT.
the class CourseHandler method importReminders.
private void importReminders(RepositoryEntry re, File fImportBaseDirectory, CourseEnvironmentMapper envMapper, Identity initialAuthor) {
ReminderModule reminderModule = CoreSpringFactory.getImpl(ReminderModule.class);
ReminderService reminderService = CoreSpringFactory.getImpl(ReminderService.class);
List<Reminder> reminders = reminderService.importRawReminders(initialAuthor, re, fImportBaseDirectory);
if (reminders.size() > 0) {
for (Reminder reminder : reminders) {
ReminderRules clonedRules = new ReminderRules();
String configuration = reminder.getConfiguration();
ReminderRules rules = reminderService.toRules(configuration);
for (ReminderRule rule : rules.getRules()) {
RuleSPI ruleSpi = reminderModule.getRuleSPIByType(rule.getType());
if (ruleSpi != null) {
ReminderRule clonedRule = ruleSpi.clone(rule, envMapper);
clonedRules.getRules().add(clonedRule);
}
}
String convertedConfiguration = reminderService.toXML(clonedRules);
reminder.setConfiguration(convertedConfiguration);
reminderService.save(reminder);
}
}
}
use of org.olat.modules.reminder.Reminder in project OpenOLAT by OpenOLAT.
the class ReminderDAOTest method deleteReminder.
@Test
public void deleteReminder() {
// create and reminder and an identity
Identity creator = JunitTestHelper.createAndPersistIdentityAsRndUser("creator-rem-9");
Identity recepient1 = JunitTestHelper.createAndPersistIdentityAsRndUser("recepient-rem-9a");
Identity recepient2 = JunitTestHelper.createAndPersistIdentityAsRndUser("recepient-rem-9b");
Identity recepient3 = JunitTestHelper.createAndPersistIdentityAsRndUser("recepient-rem-9c");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
Reminder reminderToDelete = createAndSaveReminder(entry, creator, 8);
dbInstance.commitAndCloseSession();
Assert.assertNotNull(reminderToDelete);
// send 4 reminders
reminderDao.markAsSend(reminderToDelete, recepient1, "ok");
reminderDao.markAsSend(reminderToDelete, recepient2, "error");
reminderDao.markAsSend(reminderToDelete, recepient3, "error");
reminderDao.markAsSend(reminderToDelete, recepient2, "error");
dbInstance.commitAndCloseSession();
// check
List<SentReminder> sentReminders = reminderDao.getSendReminders(reminderToDelete);
Assert.assertNotNull(sentReminders);
Assert.assertEquals(4, sentReminders.size());
reminderDao.delete(reminderToDelete);
dbInstance.commit();
// check that the reminder is missing
List<Reminder> deletedReminders = reminderDao.getReminders(entry);
Assert.assertNotNull(deletedReminders);
Assert.assertEquals(0, deletedReminders.size());
}
use of org.olat.modules.reminder.Reminder in project OpenOLAT by OpenOLAT.
the class ReminderDAOTest method getReminders_startDate.
@Test
public void getReminders_startDate() {
// create and reminder and an identity
Identity creator = JunitTestHelper.createAndPersistIdentityAsRndUser("creator-rem-3");
RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
Reminder savedReminder = createAndSaveReminder(entry, creator, 3);
Assert.assertNotNull(savedReminder);
dbInstance.commitAndCloseSession();
Date now = new Date();
boolean found = false;
List<Reminder> loadedReminders = reminderDao.getReminders(now);
for (Reminder loadedReminder : loadedReminders) {
if (loadedReminder.equals(savedReminder)) {
found = true;
}
}
Assert.assertTrue(found);
}
Aggregations