Search in sources :

Example 1 with BusinessGroupRef

use of org.olat.group.BusinessGroupRef in project OpenOLAT by OpenOLAT.

the class GTAManagerImpl method getDuplicatedMemberships.

@Override
public List<IdentityRef> getDuplicatedMemberships(GTACourseNode cNode) {
    List<IdentityRef> duplicates;
    ModuleConfiguration config = cNode.getModuleConfiguration();
    if (GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) {
        List<Long> groupKeys = config.getList(GTACourseNode.GTASK_GROUPS, Long.class);
        List<Long> areaKeys = config.getList(GTACourseNode.GTASK_AREAS, Long.class);
        List<Long> consolidatedGroupKeys = new ArrayList<>();
        if (groupKeys != null && groupKeys.size() > 0) {
            consolidatedGroupKeys.addAll(groupKeys);
        }
        consolidatedGroupKeys.addAll(areaManager.findBusinessGroupKeysOfAreaKeys(areaKeys));
        List<BusinessGroupRef> businessGroups = BusinessGroupRefImpl.toRefs(consolidatedGroupKeys);
        duplicates = businessGroupRelationDao.getDuplicateMemberships(businessGroups);
    } else {
        duplicates = Collections.emptyList();
    }
    return duplicates;
}
Also used : BusinessGroupRef(org.olat.group.BusinessGroupRef) ModuleConfiguration(org.olat.modules.ModuleConfiguration) IdentityRef(org.olat.basesecurity.IdentityRef) ArrayList(java.util.ArrayList)

Example 2 with BusinessGroupRef

use of org.olat.group.BusinessGroupRef in project OpenOLAT by OpenOLAT.

the class GTAManagerImpl method getMembership.

@Override
public Membership getMembership(IdentityRef identity, RepositoryEntryRef entry, GTACourseNode cNode) {
    List<String> roles;
    ModuleConfiguration config = cNode.getModuleConfiguration();
    if (GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) {
        List<Long> groupKeys = config.getList(GTACourseNode.GTASK_GROUPS, Long.class);
        List<Long> areaKeys = config.getList(GTACourseNode.GTASK_AREAS, Long.class);
        List<Long> consolidatedGroupKeys = new ArrayList<>();
        if (groupKeys != null && groupKeys.size() > 0) {
            consolidatedGroupKeys.addAll(groupKeys);
        }
        consolidatedGroupKeys.addAll(areaManager.findBusinessGroupKeysOfAreaKeys(areaKeys));
        List<BusinessGroupRef> businessGroups = BusinessGroupRefImpl.toRefs(consolidatedGroupKeys);
        roles = businessGroupRelationDao.getRoles(identity, businessGroups);
    } else {
        roles = repositoryEntryRelationDao.getRoles(identity, entry);
    }
    boolean coach = roles.contains(GroupRoles.coach.name()) || roles.contains(GroupRoles.owner.name());
    boolean participant = roles.contains(GroupRoles.participant.name());
    return new Membership(coach, participant);
}
Also used : BusinessGroupRef(org.olat.group.BusinessGroupRef) ModuleConfiguration(org.olat.modules.ModuleConfiguration) ArrayList(java.util.ArrayList) Membership(org.olat.course.nodes.gta.model.Membership)

Example 3 with BusinessGroupRef

use of org.olat.group.BusinessGroupRef in project OpenOLAT by OpenOLAT.

the class CourseRuntimeController method event.

@Override
protected void event(UserRequest ureq, Component source, Event event) {
    if (layoutLink == source) {
        doLayout(ureq);
    } else if (optionsLink == source) {
        doOptions(ureq);
    } else if (assessmentModeLink == source) {
        doAssessmentMode(ureq);
    } else if (certificatesOptionsLink == source) {
        doCertificatesOptions(ureq);
    } else if (lifeCycleChangeLink == source) {
        doLifeCycleChange(ureq);
    } else if (reminderLink == source) {
        doReminders(ureq);
    } else if (lecturesAdminLink == source) {
        doLecturesAdmin(ureq);
    } else if (lecturesLink == source) {
        doLectures(ureq);
    } else if (archiverLink == source) {
        doArchive(ureq);
    } else if (folderLink == source) {
        doCourseFolder(ureq);
    } else if (areaLink == source) {
        doCourseAreas(ureq);
    } else if (dbLink == source) {
        doDatabases(ureq);
    } else if (courseStatisticLink == source) {
        doCourseStatistics(ureq);
    } else if (testStatisticLink == source) {
        doAssessmentTestStatistics(ureq);
    } else if (surveyStatisticLink == source) {
        doAssessmentSurveyStatistics(ureq);
    } else if (assessmentLink == source) {
        doAssessmentTool(ureq);
    } else if (calendarLink == source) {
        launchCalendar(ureq);
    } else if (chatLink == source) {
        launchChat(ureq);
    } else if (searchLink == source) {
        launchCourseSearch(ureq);
    } else if (efficiencyStatementsLink == source) {
        doEfficiencyStatements(ureq);
    } else if (noteLink == source) {
        launchPersonalNotes(ureq);
    } else if (openGlossaryLink == source) {
        launchGlossary(ureq);
    } else if (leaveLink == source) {
        doConfirmLeave(ureq);
    } else if (source instanceof Link && "group".equals(((Link) source).getCommand())) {
        BusinessGroupRef ref = (BusinessGroupRef) ((Link) source).getUserObject();
        launchGroup(ureq, ref.getKey());
    } else if (source == toolbarPanel) {
        if (event instanceof VetoPopEvent) {
            delayedClose = Delayed.pop;
        } else if (event instanceof PopEvent) {
            processPopEvent(ureq, (PopEvent) event);
        }
    } else if (enableGlossaryLink == source) {
        toggleGlossary(ureq);
    }
    // Update window title
    if (source instanceof Link) {
        Link link = (Link) source;
        ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
        String newTitle = course.getCourseTitle() + " - " + link.getI18n();
        getWindowControl().getWindowBackOffice().getWindow().setTitle(getTranslator(), newTitle);
    }
    super.event(ureq, source, event);
}
Also used : BusinessGroupRef(org.olat.group.BusinessGroupRef) VetoPopEvent(org.olat.core.gui.components.stack.VetoPopEvent) PopEvent(org.olat.core.gui.components.stack.PopEvent) ICourse(org.olat.course.ICourse) VetoPopEvent(org.olat.core.gui.components.stack.VetoPopEvent) Link(org.olat.core.gui.components.link.Link)

Example 4 with BusinessGroupRef

use of org.olat.group.BusinessGroupRef in project OpenOLAT by OpenOLAT.

the class AbstractBusinessGroupListController method toBusinessGroups.

protected final List<BusinessGroup> toBusinessGroups(UserRequest ureq, List<? extends BusinessGroupRef> items, boolean editableOnly) {
    List<Long> groupKeys = new ArrayList<Long>();
    for (BusinessGroupRef item : items) {
        groupKeys.add(item.getKey());
    }
    if (editableOnly) {
        filterEditableGroupKeys(ureq, groupKeys);
    }
    List<BusinessGroup> groups = businessGroupService.loadBusinessGroups(groupKeys);
    return groups;
}
Also used : BusinessGroupRef(org.olat.group.BusinessGroupRef) BGCopyBusinessGroup(org.olat.group.ui.wizard.BGCopyBusinessGroup) BGConfigBusinessGroup(org.olat.group.ui.wizard.BGConfigBusinessGroup) BusinessGroup(org.olat.group.BusinessGroup) ArrayList(java.util.ArrayList)

Example 5 with BusinessGroupRef

use of org.olat.group.BusinessGroupRef in project OpenOLAT by OpenOLAT.

the class BusinessGroupMembershipProcessor method processResourceRemoved.

private void processResourceRemoved(Long groupKey, Long repoKey) {
    BusinessGroupRef groupRef = new BusinessGroupRefImpl(groupKey);
    RepositoryEntryRef entryRef = new RepositoryEntryRefImpl(repoKey);
    OLATResource resource = repositoryManager.lookupRepositoryEntryResource(entryRef.getKey());
    List<Long> memberKeys = businessGroupRelationDao.getMemberKeys(Collections.singletonList(groupRef), GroupRoles.coach.name(), GroupRoles.participant.name());
    for (Long memberKey : memberKeys) {
        IdentityRef member = new IdentityRefImpl(memberKey);
        List<String> remaingRoles = repositoryEntryRelationDao.getRoles(member, entryRef);
        if (remaingRoles.isEmpty()) {
            notificationsManager.unsubscribeAllForIdentityAndResId(member, resource.getResourceableId());
        }
    }
}
Also used : BusinessGroupRef(org.olat.group.BusinessGroupRef) IdentityRefImpl(org.olat.basesecurity.model.IdentityRefImpl) RepositoryEntryRefImpl(org.olat.repository.model.RepositoryEntryRefImpl) IdentityRef(org.olat.basesecurity.IdentityRef) OLATResource(org.olat.resource.OLATResource) BusinessGroupRefImpl(org.olat.group.model.BusinessGroupRefImpl) RepositoryEntryRef(org.olat.repository.RepositoryEntryRef)

Aggregations

BusinessGroupRef (org.olat.group.BusinessGroupRef)22 ArrayList (java.util.ArrayList)12 IdentityRef (org.olat.basesecurity.IdentityRef)8 IdentityRefImpl (org.olat.basesecurity.model.IdentityRefImpl)6 BusinessGroupRefImpl (org.olat.group.model.BusinessGroupRefImpl)6 BusinessGroup (org.olat.group.BusinessGroup)4 BGConfigBusinessGroup (org.olat.group.ui.wizard.BGConfigBusinessGroup)4 BGCopyBusinessGroup (org.olat.group.ui.wizard.BGCopyBusinessGroup)4 ModuleConfiguration (org.olat.modules.ModuleConfiguration)4 RepositoryEntryRef (org.olat.repository.RepositoryEntryRef)4 RepositoryEntryRefImpl (org.olat.repository.model.RepositoryEntryRefImpl)4 OLATResource (org.olat.resource.OLATResource)4 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)2 FlexiTableSearchEvent (org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent)2 SelectionEvent (org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent)2 Link (org.olat.core.gui.components.link.Link)2 PopEvent (org.olat.core.gui.components.stack.PopEvent)2 VetoPopEvent (org.olat.core.gui.components.stack.VetoPopEvent)2 Identity (org.olat.core.id.Identity)2 ICourse (org.olat.course.ICourse)2