Skip to content
Snippets Groups Projects
Commit 410c3ef9 authored by srosse's avatar srosse
Browse files

OO-2968: fill the title and short title independently of the assessment...

OO-2968: fill the title and short title independently of the assessment informations, add a fallback solution to the list to show the course title instead an empty title
parent d59c2347
No related branches found
No related tags found
No related merge requests found
......@@ -195,7 +195,8 @@ public class EfficiencyStatementManager implements UserDataDeletable {
efficiencyProperty.setResource(repoEntry.getOlatResource());
efficiencyProperty.setCourseRepoKey(repoEntry.getKey());
}
efficiencyProperty.setShortTitle(courseEnv.getRunStructure().getRootNode().getShortTitle());
efficiencyProperty.setTitle(courseEnv.getRunStructure().getRootNode().getLongTitle());
fillEfficiencyStatement(efficiencyStatement, efficiencyProperty);
dbInstance.getCurrentEntityManager().persist(efficiencyProperty);
if (debug) {
......@@ -205,7 +206,9 @@ public class EfficiencyStatementManager implements UserDataDeletable {
// update existing
if (debug) {
log.debug("updating efficiency statement property::" + efficiencyProperty.getKey() + " for id::" + assessedIdentity.getName() + " repoEntry::" + repoEntry.getKey());
}
}
efficiencyProperty.setShortTitle(courseEnv.getRunStructure().getRootNode().getShortTitle());
efficiencyProperty.setTitle(courseEnv.getRunStructure().getRootNode().getLongTitle());
fillEfficiencyStatement(efficiencyStatement, efficiencyProperty);
dbInstance.getCurrentEntityManager().merge(efficiencyProperty);
}
......
......@@ -56,6 +56,7 @@ import org.olat.core.gui.render.StringOutput;
import org.olat.core.gui.render.URLBuilder;
import org.olat.core.gui.translator.Translator;
import org.olat.core.id.Identity;
import org.olat.core.util.StringHelper;
import org.olat.core.util.Util;
import org.olat.core.util.coordinate.CoordinatorManager;
import org.olat.core.util.event.GenericEventListener;
......@@ -246,6 +247,9 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
resourceKeyToStatments.put(resourceKey, wrapper);
statments.add(wrapper);
} else {
if(!StringHelper.containsNonWhitespace(wrapper.getDisplayName())) {
wrapper.setDisplayName(certificate.getCourseTitle());
}
wrapper.setResourceKey(resourceKey);
}
if(resourceKey != null && wrapper.getResourceKey() == null) {
......@@ -254,6 +258,13 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
wrapper.setCertificate(certificate);
}
for(CertificateAndEfficiencyStatement statment:statments) {
if(!StringHelper.containsNonWhitespace(statment.getDisplayName()) && statment.getResourceKey() != null) {
String displayName = repositoryManager.lookupDisplayNameByResourceKey(statment.getResourceKey());
statment.setDisplayName(displayName);
}
}
tableModel.setObjects(statments);
}
......
......@@ -74,6 +74,7 @@ import org.olat.resource.OLATResourceImpl;
@NamedQuery(name="filterRepositoryEntryMembership", query="select v.key, membership.identity.key from repositoryentry as v inner join v.groups as relGroup inner join relGroup.group as baseGroup inner join baseGroup.members as membership on membership.role in ('owner','coach','participant') where membership.identity.key=:identityKey and v.key in (:repositoryEntryKey)"),
@NamedQuery(name="loadRepositoryEntryByKey", query="select v from repositoryentry as v inner join fetch v.olatResource as ores inner join fetch v.statistics as statistics left join fetch v.lifecycle as lifecycle where v.key = :repoKey"),
@NamedQuery(name="loadRepositoryEntryByResourceKey", query="select v from repositoryentry as v inner join fetch v.olatResource as ores inner join fetch v.statistics as statistics left join fetch v.lifecycle as lifecycle where ores.key = :resourceKey"),
@NamedQuery(name="getDisplayNameByResourceKey", query="select v.displayname from repositoryentry v where v.olatResource.key=:resKey"),
@NamedQuery(name="getDisplayNameByOlatResourceRedId", query="select v.displayname from repositoryentry v inner join v.olatResource as ores where ores.resId=:resid"),
@NamedQuery(name="getDisplayNameByRepositoryEntryKey", query="select v.displayname from repositoryentry v where v.key=:reKey")
......
......@@ -429,6 +429,18 @@ public class RepositoryManager {
return displaynames.get(0);
}
public String lookupDisplayNameByResourceKey(Long resourceKey) {
List<String> displaynames = dbInstance.getCurrentEntityManager()
.createNamedQuery("getDisplayNameByResourceKey", String.class)
.setParameter("resKey", resourceKey)
.setHint("org.hibernate.cacheable", Boolean.TRUE)
.getResultList();
if (displaynames.size() > 1) throw new AssertException("Repository lookup returned zero or more than one result: " + displaynames.size());
else if (displaynames.isEmpty()) return null;
return displaynames.get(0);
}
/**
* Convenience method to access the repositoryEntry displayname by the referenced OLATResourceable id.
* This only works if a repository entry has an referenced olat resourceable like a course or an content package repo entry
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment