Search in sources :

Example 6 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project openolat by klemens.

the class VideoEntryDataSource method processViewModel.

private List<RepositoryEntryRow> processViewModel(List<RepositoryEntryMyView> repoEntries) {
    List<RepositoryEntryRow> items = new ArrayList<RepositoryEntryRow>();
    for (RepositoryEntryMyView entry : repoEntries) {
        RepositoryEntryRow row = new RepositoryEntryRow(entry);
        items.add(row);
    }
    return items;
}
Also used : RepositoryEntryRow(org.olat.repository.ui.list.RepositoryEntryRow) ArrayList(java.util.ArrayList) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView)

Example 7 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project openolat by klemens.

the class RepositoryEntryMyCourseQueries method searchViews.

public List<RepositoryEntryMyView> searchViews(SearchMyRepositoryEntryViewParams params, int firstResult, int maxResults) {
    if (params.getIdentity() == null) {
        log.error("No identity defined for query");
        return Collections.emptyList();
    }
    TypedQuery<Object[]> query = creatMyViewQuery(params, Object[].class);
    query.setFirstResult(firstResult);
    if (maxResults > 0) {
        query.setMaxResults(maxResults);
    }
    // we don't need statistics when rating and comments are disabled unless
    // were searching for videos, there we want to see the launch counter
    // from the statistics
    boolean needStats = repositoryModule.isRatingEnabled() || repositoryModule.isCommentEnabled() || (params.getResourceTypes() != null && params.getResourceTypes().contains(VideoFileResource.TYPE_NAME));
    List<Long> effKeys = new ArrayList<>();
    List<Object[]> objects = query.getResultList();
    List<RepositoryEntryMyView> views = new ArrayList<>(objects.size());
    Map<OLATResource, RepositoryEntryMyCourseImpl> viewsMap = new HashMap<>();
    for (Object[] object : objects) {
        RepositoryEntry re = (RepositoryEntry) object[0];
        Number numOfMarks = (Number) object[1];
        boolean hasMarks = numOfMarks == null ? false : numOfMarks.longValue() > 0;
        Number numOffers = (Number) object[2];
        long offers = numOffers == null ? 0l : numOffers.longValue();
        Integer myRating = (Integer) object[3];
        RepositoryEntryStatistics stats;
        if (needStats) {
            stats = re.getStatistics();
        } else {
            stats = null;
        }
        RepositoryEntryMyCourseImpl view = new RepositoryEntryMyCourseImpl(re, stats, hasMarks, offers, myRating);
        views.add(view);
        viewsMap.put(re.getOlatResource(), view);
        Long effKey = (Long) object[4];
        if (effKey != null) {
            effKeys.add(effKey);
        }
    }
    if (effKeys.size() > 0) {
        List<UserEfficiencyStatementLight> efficiencyStatements = efficiencyStatementManager.findEfficiencyStatementsLight(effKeys);
        for (UserEfficiencyStatementLight efficiencyStatement : efficiencyStatements) {
            if (viewsMap.containsKey(efficiencyStatement.getResource())) {
                viewsMap.get(efficiencyStatement.getResource()).setEfficiencyStatement(efficiencyStatement);
            }
        }
    }
    return views;
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView) OLATResource(org.olat.resource.OLATResource) UserEfficiencyStatementLight(org.olat.course.assessment.model.UserEfficiencyStatementLight) RepositoryEntry(org.olat.repository.RepositoryEntry) RepositoryEntryStatistics(org.olat.repository.model.RepositoryEntryStatistics) RepositoryEntryMyCourseImpl(org.olat.repository.model.RepositoryEntryMyCourseImpl)

Example 8 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project OpenOLAT by OpenOLAT.

the class RepositoryEntryMyCourseQueries method searchViews.

public List<RepositoryEntryMyView> searchViews(SearchMyRepositoryEntryViewParams params, int firstResult, int maxResults) {
    if (params.getIdentity() == null) {
        log.error("No identity defined for query");
        return Collections.emptyList();
    }
    TypedQuery<Object[]> query = creatMyViewQuery(params, Object[].class);
    query.setFirstResult(firstResult);
    if (maxResults > 0) {
        query.setMaxResults(maxResults);
    }
    // we don't need statistics when rating and comments are disabled unless
    // were searching for videos, there we want to see the launch counter
    // from the statistics
    boolean needStats = repositoryModule.isRatingEnabled() || repositoryModule.isCommentEnabled() || (params.getResourceTypes() != null && params.getResourceTypes().contains(VideoFileResource.TYPE_NAME));
    List<Long> effKeys = new ArrayList<>();
    List<Object[]> objects = query.getResultList();
    List<RepositoryEntryMyView> views = new ArrayList<>(objects.size());
    Map<OLATResource, RepositoryEntryMyCourseImpl> viewsMap = new HashMap<>();
    for (Object[] object : objects) {
        RepositoryEntry re = (RepositoryEntry) object[0];
        Number numOfMarks = (Number) object[1];
        boolean hasMarks = numOfMarks == null ? false : numOfMarks.longValue() > 0;
        Number numOffers = (Number) object[2];
        long offers = numOffers == null ? 0l : numOffers.longValue();
        Integer myRating = (Integer) object[3];
        RepositoryEntryStatistics stats;
        if (needStats) {
            stats = re.getStatistics();
        } else {
            stats = null;
        }
        RepositoryEntryMyCourseImpl view = new RepositoryEntryMyCourseImpl(re, stats, hasMarks, offers, myRating);
        views.add(view);
        viewsMap.put(re.getOlatResource(), view);
        Long effKey = (Long) object[4];
        if (effKey != null) {
            effKeys.add(effKey);
        }
    }
    if (effKeys.size() > 0) {
        List<UserEfficiencyStatementLight> efficiencyStatements = efficiencyStatementManager.findEfficiencyStatementsLight(effKeys);
        for (UserEfficiencyStatementLight efficiencyStatement : efficiencyStatements) {
            if (viewsMap.containsKey(efficiencyStatement.getResource())) {
                viewsMap.get(efficiencyStatement.getResource()).setEfficiencyStatement(efficiencyStatement);
            }
        }
    }
    return views;
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView) OLATResource(org.olat.resource.OLATResource) UserEfficiencyStatementLight(org.olat.course.assessment.model.UserEfficiencyStatementLight) RepositoryEntry(org.olat.repository.RepositoryEntry) RepositoryEntryStatistics(org.olat.repository.model.RepositoryEntryStatistics) RepositoryEntryMyCourseImpl(org.olat.repository.model.RepositoryEntryMyCourseImpl)

Example 9 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project OpenOLAT by OpenOLAT.

the class VideoEntryDataSource method processViewModel.

private List<RepositoryEntryRow> processViewModel(List<RepositoryEntryMyView> repoEntries) {
    List<RepositoryEntryRow> items = new ArrayList<RepositoryEntryRow>();
    for (RepositoryEntryMyView entry : repoEntries) {
        RepositoryEntryRow row = new RepositoryEntryRow(entry);
        items.add(row);
    }
    return items;
}
Also used : RepositoryEntryRow(org.olat.repository.ui.list.RepositoryEntryRow) ArrayList(java.util.ArrayList) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView)

Example 10 with RepositoryEntryMyView

use of org.olat.repository.RepositoryEntryMyView in project OpenOLAT by OpenOLAT.

the class DefaultRepositoryEntryDataSource method processViewModel.

private List<RepositoryEntryRow> processViewModel(List<RepositoryEntryMyView> repoEntries) {
    List<Long> repoKeys = new ArrayList<>(repoEntries.size());
    List<OLATResource> resourcesWithAC = new ArrayList<>(repoEntries.size());
    for (RepositoryEntryMyView entry : repoEntries) {
        repoKeys.add(entry.getKey());
        if (entry.isValidOfferAvailable()) {
            resourcesWithAC.add(entry.getOlatResource());
        }
    }
    List<OLATResourceAccess> resourcesWithOffer = acService.filterResourceWithAC(resourcesWithAC);
    repositoryService.filterMembership(searchParams.getIdentity(), repoKeys);
    List<RepositoryEntryRow> items = new ArrayList<RepositoryEntryRow>();
    for (RepositoryEntryMyView entry : repoEntries) {
        RepositoryEntryRow row = new RepositoryEntryRow(entry);
        VFSLeaf image = repositoryManager.getImage(entry);
        if (image != null) {
            row.setThumbnailRelPath(uifactory.getMapperThumbnailUrl() + "/" + image.getName());
        }
        List<PriceMethod> types = new ArrayList<PriceMethod>();
        if (entry.isMembersOnly()) {
            // members only always show lock icon
            types.add(new PriceMethod("", "o_ac_membersonly_icon", uifactory.getTranslator().translate("cif.access.membersonly.short")));
        } else {
            // collect access control method icons
            OLATResource resource = entry.getOlatResource();
            for (OLATResourceAccess resourceAccess : resourcesWithOffer) {
                if (resource.getKey().equals(resourceAccess.getResource().getKey())) {
                    for (PriceMethodBundle bundle : resourceAccess.getMethods()) {
                        String type = (bundle.getMethod().getMethodCssClass() + "_icon").intern();
                        String price = bundle.getPrice() == null || bundle.getPrice().isEmpty() ? "" : PriceFormat.fullFormat(bundle.getPrice());
                        AccessMethodHandler amh = acModule.getAccessMethodHandler(bundle.getMethod().getType());
                        String displayName = amh.getMethodName(uifactory.getTranslator().getLocale());
                        types.add(new PriceMethod(price, type, displayName));
                    }
                }
            }
        }
        row.setMember(repoKeys.contains(entry.getKey()));
        if (!types.isEmpty()) {
            row.setAccessTypes(types);
        }
        uifactory.forgeMarkLink(row);
        uifactory.forgeSelectLink(row);
        uifactory.forgeStartLink(row);
        uifactory.forgeDetails(row);
        uifactory.forgeRatings(row);
        uifactory.forgeComments(row);
        items.add(row);
    }
    return items;
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) ArrayList(java.util.ArrayList) RepositoryEntryMyView(org.olat.repository.RepositoryEntryMyView) OLATResource(org.olat.resource.OLATResource) OLATResourceAccess(org.olat.resource.accesscontrol.model.OLATResourceAccess) PriceMethod(org.olat.repository.ui.PriceMethod) AccessMethodHandler(org.olat.resource.accesscontrol.method.AccessMethodHandler) PriceMethodBundle(org.olat.resource.accesscontrol.model.PriceMethodBundle)

Aggregations

RepositoryEntryMyView (org.olat.repository.RepositoryEntryMyView)14 ArrayList (java.util.ArrayList)6 OrderBy (org.olat.repository.model.SearchMyRepositoryEntryViewParams.OrderBy)6 Test (org.junit.Test)4 DefaultResultInfos (org.olat.core.commons.persistence.DefaultResultInfos)4 Identity (org.olat.core.id.Identity)4 Roles (org.olat.core.id.Roles)4 SearchMyRepositoryEntryViewParams (org.olat.repository.model.SearchMyRepositoryEntryViewParams)4 RepositoryEntryRow (org.olat.repository.ui.list.RepositoryEntryRow)4 OLATResource (org.olat.resource.OLATResource)4 HashMap (java.util.HashMap)2 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)2 UserEfficiencyStatementLight (org.olat.course.assessment.model.UserEfficiencyStatementLight)2 RepositoryEntry (org.olat.repository.RepositoryEntry)2 RepositoryEntryMyCourseImpl (org.olat.repository.model.RepositoryEntryMyCourseImpl)2 RepositoryEntryStatistics (org.olat.repository.model.RepositoryEntryStatistics)2 PriceMethod (org.olat.repository.ui.PriceMethod)2 AccessMethodHandler (org.olat.resource.accesscontrol.method.AccessMethodHandler)2 OLATResourceAccess (org.olat.resource.accesscontrol.model.OLATResourceAccess)2 PriceMethodBundle (org.olat.resource.accesscontrol.model.PriceMethodBundle)2