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;
}
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;
}
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;
}
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;
}
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;
}
Aggregations