diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java b/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java index 667f93f54ff242af703f2f634d72dc0de6fefd44..60a132b0fd3b8a545a73fff92d5c7bd926842741 100644 --- a/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java +++ b/src/main/java/org/olat/course/certificate/manager/CertificatePDFFormWorker.java @@ -116,6 +116,10 @@ public class CertificatePDFFormWorker { fillCertificationInfos(acroForm); fillAssessmentInfos(acroForm); } + if(!destinationDir.exists()) { + destinationDir.mkdirs(); + } + File certificateFile = new File(destinationDir, templateName); OutputStream out = new FileOutputStream(certificateFile); document.save(out); diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java index 74a879fd08ac7e91ec00bdef0bc1aa2b29d412a1..2e52334f14cc8f32798c9c70028aaeee1c49ae49 100644 --- a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java +++ b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java @@ -66,6 +66,7 @@ import org.olat.core.id.Roles; import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; import org.olat.core.util.FileUtils; +import org.olat.core.util.Formatter; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.core.util.WebappHelper; @@ -111,6 +112,7 @@ import org.olat.repository.RepositoryService; import org.olat.repository.model.RepositoryEntrySecurity; import org.olat.resource.OLATResource; import org.olat.user.UserManager; +import org.olat.user.propertyhandlers.DatePropertyHandler; import org.olat.user.propertyhandlers.UserPropertyHandler; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; @@ -679,7 +681,11 @@ public class CertificatesManagerImpl implements CertificatesManager, MessageList identity.setName("username"); List<UserPropertyHandler> userPropertyHandlers = userManager.getAllUserPropertyHandlers(); for(UserPropertyHandler handler:userPropertyHandlers) { - identity.getUser().setProperty(handler.getName(), handler.getName()); + if(handler instanceof DatePropertyHandler) { + identity.getUser().setProperty(handler.getName(), Formatter.formatDatetime(new Date())); + } else { + identity.getUser().setProperty(handler.getName(), handler.getName()); + } } return identity; } diff --git a/src/main/resources/org/olat/course/certificate/template.pdf b/src/main/resources/org/olat/course/certificate/template.pdf new file mode 100644 index 0000000000000000000000000000000000000000..688e2fa1a06ac9a6ac8e4f204829b5c0dd456968 Binary files /dev/null and b/src/main/resources/org/olat/course/certificate/template.pdf differ