Search in sources :

Example 76 with ReminderRuleImpl

use of org.olat.modules.reminder.model.ReminderRuleImpl in project OpenOLAT by OpenOLAT.

the class RepositoryEntryRoleRuleSPI method evaluate.

@Override
public List<Identity> evaluate(RepositoryEntry entry, ReminderRule rule) {
    List<Identity> identities = null;
    if (rule instanceof ReminderRuleImpl) {
        ReminderRuleImpl r = (ReminderRuleImpl) rule;
        String roles = r.getRightOperand();
        if (StringHelper.containsNonWhitespace(roles)) {
            switch(Roles.valueOf(roles)) {
                case owner:
                    identities = repositoryEntryRelationDao.getMembers(entry, RepositoryEntryRelationType.defaultGroup, GroupRoles.owner.name());
                    break;
                case coach:
                    identities = repositoryEntryRelationDao.getMembers(entry, RepositoryEntryRelationType.both, GroupRoles.coach.name());
                    break;
                case participant:
                    identities = repositoryEntryRelationDao.getMembers(entry, RepositoryEntryRelationType.both, GroupRoles.participant.name());
                    break;
                case participantAndCoach:
                    identities = repositoryEntryRelationDao.getMembers(entry, RepositoryEntryRelationType.both, GroupRoles.coach.name(), GroupRoles.participant.name());
                    break;
                case ownerAndCoach:
                    identities = repositoryEntryRelationDao.getMembers(entry, RepositoryEntryRelationType.both, GroupRoles.coach.name(), GroupRoles.owner.name());
                    break;
                case all:
                    identities = repositoryEntryRelationDao.getMembers(entry, RepositoryEntryRelationType.both, GroupRoles.owner.name(), GroupRoles.coach.name(), GroupRoles.participant.name());
                    break;
            }
        }
    }
    return identities == null ? Collections.<Identity>emptyList() : identities;
}
Also used : ReminderRuleImpl(org.olat.modules.reminder.model.ReminderRuleImpl) Identity(org.olat.core.id.Identity)

Example 77 with ReminderRuleImpl

use of org.olat.modules.reminder.model.ReminderRuleImpl in project OpenOLAT by OpenOLAT.

the class BusinessGroupRoleEditor method initForm.

@Override
public FormItem initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
    String id = Long.toString(CodeHelper.getRAMUniqueID());
    String page = Util.getPackageVelocityRoot(this.getClass()) + "/rule_1_element.html";
    FormLayoutContainer ruleCont = FormLayoutContainer.createCustomFormLayout(".".concat(id), formLayout.getTranslator(), page);
    ruleCont.setRootForm(formLayout.getRootForm());
    formLayout.add(ruleCont);
    ruleCont.getFormItemComponent().contextPut("id", id);
    String currentKey = null;
    if (rule instanceof ReminderRuleImpl) {
        ReminderRuleImpl roleRule = (ReminderRuleImpl) rule;
        currentKey = roleRule.getRightOperand();
    }
    String[] keys = new String[businessGroups.size()];
    String[] values = new String[businessGroups.size()];
    int count = 0;
    String selectedKey = null;
    for (BusinessGroup businessGroup : businessGroups) {
        String key = Integer.toString(count);
        if (currentKey != null && businessGroup.getKey().toString().equals(currentKey)) {
            selectedKey = key;
        }
        keys[count] = key;
        values[count++] = businessGroup.getName();
    }
    groupEl = uifactory.addDropdownSingleselect("ruleElement.".concat(id), null, ruleCont, keys, values, null);
    if (selectedKey != null) {
        groupEl.select(selectedKey, true);
    }
    if (StringHelper.containsNonWhitespace(currentKey) && selectedKey == null) {
        groupEl.setErrorKey("error.group.not.found", null);
    }
    return ruleCont;
}
Also used : ReminderRuleImpl(org.olat.modules.reminder.model.ReminderRuleImpl) BusinessGroup(org.olat.group.BusinessGroup) FormLayoutContainer(org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)

Example 78 with ReminderRuleImpl

use of org.olat.modules.reminder.model.ReminderRuleImpl in project OpenOLAT by OpenOLAT.

the class BusinessGroupRoleEditor method getConfiguration.

@Override
public ReminderRule getConfiguration() {
    ReminderRuleImpl configuredRule = null;
    if (groupEl.isOneSelected()) {
        String selectedKey = groupEl.getSelectedKey();
        int index = Integer.parseInt(selectedKey);
        if (index >= 0 && index < businessGroups.size()) {
            BusinessGroup businessGroup = businessGroups.get(index);
            configuredRule = new ReminderRuleImpl();
            configuredRule.setType(BusinessGroupRoleRuleSPI.class.getSimpleName());
            configuredRule.setOperator("=");
            configuredRule.setRightOperand(businessGroup.getKey().toString());
        }
    }
    return configuredRule;
}
Also used : BusinessGroupRoleRuleSPI(org.olat.modules.reminder.rule.BusinessGroupRoleRuleSPI) ReminderRuleImpl(org.olat.modules.reminder.model.ReminderRuleImpl) BusinessGroup(org.olat.group.BusinessGroup)

Example 79 with ReminderRuleImpl

use of org.olat.modules.reminder.model.ReminderRuleImpl in project OpenOLAT by OpenOLAT.

the class DateRuleEditor method initForm.

@Override
public FormItem initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
    String id = Long.toString(CodeHelper.getRAMUniqueID());
    String page = Util.getPackageVelocityRoot(this.getClass()) + "/rule_1_element.html";
    FormLayoutContainer ruleCont = FormLayoutContainer.createCustomFormLayout(".".concat(id), formLayout.getTranslator(), page);
    ruleCont.setRootForm(formLayout.getRootForm());
    formLayout.add(ruleCont);
    ruleCont.getFormItemComponent().contextPut("id", id);
    Date after = null;
    if (rule instanceof ReminderRuleImpl) {
        ReminderRuleImpl ruleImpl = (ReminderRuleImpl) rule;
        try {
            after = Formatter.parseDatetime(ruleImpl.getRightOperand());
        } catch (ParseException e) {
            log.error("", e);
        }
    }
    afterEl = uifactory.addDateChooser("ruleElement.".concat(id), null, after, ruleCont);
    afterEl.setDateChooserTimeEnabled(true);
    return ruleCont;
}
Also used : ReminderRuleImpl(org.olat.modules.reminder.model.ReminderRuleImpl) FormLayoutContainer(org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer) ParseException(java.text.ParseException) Date(java.util.Date)

Example 80 with ReminderRuleImpl

use of org.olat.modules.reminder.model.ReminderRuleImpl in project OpenOLAT by OpenOLAT.

the class DateRuleEditor method getConfiguration.

@Override
public ReminderRule getConfiguration() {
    ReminderRuleImpl configuredRule = new ReminderRuleImpl();
    configuredRule.setType(DateRuleSPI.class.getSimpleName());
    configuredRule.setOperator(DateRuleSPI.AFTER);
    if (afterEl.getDate() != null) {
        configuredRule.setRightOperand(Formatter.formatDatetime(afterEl.getDate()));
    }
    return configuredRule;
}
Also used : DateRuleSPI(org.olat.modules.reminder.rule.DateRuleSPI) ReminderRuleImpl(org.olat.modules.reminder.model.ReminderRuleImpl)

Aggregations

ReminderRuleImpl (org.olat.modules.reminder.model.ReminderRuleImpl)114 ArrayList (java.util.ArrayList)46 Identity (org.olat.core.id.Identity)26 ReminderRule (org.olat.modules.reminder.ReminderRule)26 ICourse (org.olat.course.ICourse)22 FormLayoutContainer (org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)20 CourseNode (org.olat.course.nodes.CourseNode)20 Test (org.junit.Test)16 Date (java.util.Date)14 Translator (org.olat.core.gui.translator.Translator)14 GTACourseNode (org.olat.course.nodes.GTACourseNode)14 List (java.util.List)12 RepositoryEntry (org.olat.repository.RepositoryEntry)12 TaskList (org.olat.course.nodes.gta.TaskList)10 Calendar (java.util.Calendar)8 AssessableCourseNode (org.olat.course.nodes.AssessableCourseNode)8 ParseException (java.text.ParseException)6 InitialAttemptsRuleSPI (org.olat.course.reminder.rule.InitialAttemptsRuleSPI)6 ScoreRuleSPI (org.olat.course.reminder.rule.ScoreRuleSPI)6 File (java.io.File)4