Search in sources :

Example 56 with Page

use of org.olat.modules.portfolio.Page in project openolat by klemens.

the class MediaDAOTest method usedInBinders.

@Test
public void usedInBinders() {
    Identity author = JunitTestHelper.createAndPersistIdentityAsRndUser("pf-media-2");
    Binder binder = portfolioService.createNewBinder("Binder p2", "A binder with 2 page", null, author);
    Section section = binderDao.createSection("Section", "First section", null, null, binder);
    dbInstance.commitAndCloseSession();
    Section reloadedSection = binderDao.loadSectionByKey(section.getKey());
    Page page = pageDao.createAndPersist("Page 1", "A page with content.", null, null, true, reloadedSection, null);
    Media media = mediaDao.createMedia("Media", "Binder", "Une citation sur les classeurs", TextHandler.TEXT_MEDIA, "[Media:0]", null, 10, author);
    dbInstance.commitAndCloseSession();
    MediaPart mediaPart = new MediaPart();
    mediaPart.setMedia(media);
    PageBody reloadedBody = pageDao.loadPageBodyByKey(page.getBody().getKey());
    pageDao.persistPart(reloadedBody, mediaPart);
    dbInstance.commitAndCloseSession();
    // reload
    List<BinderPageUsage> binders = mediaDao.usedInBinders(media);
    Assert.assertNotNull(binders);
    Assert.assertEquals(1, binders.size());
    Assert.assertTrue(binders.get(0).getBinderKey().equals(binder.getKey()));
}
Also used : Binder(org.olat.modules.portfolio.Binder) MediaPart(org.olat.modules.portfolio.model.MediaPart) BinderPageUsage(org.olat.modules.portfolio.model.BinderPageUsage) Media(org.olat.modules.portfolio.Media) Page(org.olat.modules.portfolio.Page) Identity(org.olat.core.id.Identity) Section(org.olat.modules.portfolio.Section) PageBody(org.olat.modules.portfolio.PageBody) Test(org.junit.Test)

Example 57 with Page

use of org.olat.modules.portfolio.Page in project openolat by klemens.

the class PageDAOTest method getPages_section.

@Test
public void getPages_section() {
    BinderImpl binder = binderDao.createAndPersist("Binder p2", "A binder with 2 page", null, null);
    Section section = binderDao.createSection("Section", "First section", null, null, binder);
    dbInstance.commitAndCloseSession();
    Section reloadedSection = binderDao.loadSectionByKey(section.getKey());
    Page page1 = pageDao.createAndPersist("Page 1", "A page with content.", null, null, true, reloadedSection, null);
    Page page2 = pageDao.createAndPersist("Page 2", "A page with content.", null, null, true, reloadedSection, null);
    Page page3 = pageDao.createAndPersist("Page 3", "A page with the demonstration of Hawking about black hole'evaporation.", null, null, true, reloadedSection, null);
    dbInstance.commitAndCloseSession();
    // reload
    List<Page> sectionPages = pageDao.getPages(reloadedSection);
    Assert.assertNotNull(sectionPages);
    Assert.assertEquals(3, sectionPages.size());
    Assert.assertTrue(sectionPages.contains(page1));
    Assert.assertTrue(sectionPages.contains(page2));
    Assert.assertTrue(sectionPages.contains(page3));
}
Also used : BinderImpl(org.olat.modules.portfolio.model.BinderImpl) Page(org.olat.modules.portfolio.Page) Section(org.olat.modules.portfolio.Section) Test(org.junit.Test)

Example 58 with Page

use of org.olat.modules.portfolio.Page in project openolat by klemens.

the class EvaluationFormHandler method getController.

private Controller getController(UserRequest ureq, WindowControl wControl, PageBody body, EvaluationFormPart eva) {
    PortfolioService portfolioService = CoreSpringFactory.getImpl(PortfolioService.class);
    Controller ctrl = null;
    Page page = portfolioService.getPageByBody(body);
    List<AccessRights> accessRights = portfolioService.getAccessRights(page);
    if (hasRole(PortfolioRoles.owner, ureq.getIdentity(), accessRights)) {
        ctrl = new EvaluationFormController(ureq, wControl, ureq.getIdentity(), body, eva.getContent(), false);
    } else if (hasRole(PortfolioRoles.coach, ureq.getIdentity(), accessRights)) {
        Identity owner = getOwner(accessRights);
        ctrl = new EvaluationFormController(ureq, wControl, owner, body, eva.getContent(), true);
    } else if (hasRole(PortfolioRoles.reviewer, ureq.getIdentity(), accessRights) || hasRole(PortfolioRoles.invitee, ureq.getIdentity(), accessRights)) {
        Identity owner = getOwner(accessRights);
        ctrl = new EvaluationFormController(ureq, wControl, owner, body, eva.getContent(), true);
    }
    return ctrl;
}
Also used : AccessRights(org.olat.modules.portfolio.model.AccessRights) MultiEvaluationFormController(org.olat.modules.portfolio.ui.MultiEvaluationFormController) EvaluationFormController(org.olat.modules.forms.ui.EvaluationFormController) PortfolioService(org.olat.modules.portfolio.PortfolioService) Page(org.olat.modules.portfolio.Page) MultiEvaluationFormController(org.olat.modules.portfolio.ui.MultiEvaluationFormController) Controller(org.olat.core.gui.control.Controller) EvaluationFormController(org.olat.modules.forms.ui.EvaluationFormController) PortfolioHomeController(org.olat.modules.portfolio.ui.PortfolioHomeController) Identity(org.olat.core.id.Identity)

Example 59 with Page

use of org.olat.modules.portfolio.Page in project openolat by klemens.

the class ExportBinderAsCPResource method createImsManifest.

private ManifestType createImsManifest(Binder binder, List<Section> sections, List<Page> pages) {
    ManifestType manifest = cpObjectFactory.createManifestType();
    manifest.setIdentifier(UUID.randomUUID().toString());
    // schema
    ManifestMetadataType metadataType = cpObjectFactory.createManifestMetadataType();
    manifest.setMetadata(metadataType);
    // organizations
    OrganizationsType organizations = cpObjectFactory.createOrganizationsType();
    manifest.setOrganizations(organizations);
    OrganizationType organization = cpObjectFactory.createOrganizationType();
    organization.setIdentifier("binder_" + binder.getKey());
    organization.setTitle(binder.getTitle());
    organization.setStructure("hierarchical");
    organizations.getOrganization().add(organization);
    organizations.setDefault(organization);
    ResourcesType resources = cpObjectFactory.createResourcesType();
    manifest.setResources(resources);
    Map<Section, ItemType> sectionToItemMap = new HashMap<>();
    for (Section section : sections) {
        ItemType sectionItem = cpObjectFactory.createItemType();
        String itemIdentifier = "section_" + section.getKey().toString();
        String resourceIdentifier = "res_" + itemIdentifier;
        sectionItem.setTitle(section.getTitle());
        sectionItem.setIdentifier(itemIdentifier);
        sectionItem.setIdentifierref(resourceIdentifier);
        sectionItem.setIsvisible(Boolean.TRUE);
        organization.getItem().add(sectionItem);
        sectionToItemMap.put(section, sectionItem);
        ResourceType resource = cpObjectFactory.createResourceType();
        resource.setIdentifier(resourceIdentifier);
        resource.setType("webcontent");
        resource.setHref(sectionFilename(section));
        resources.getResource().add(resource);
    }
    for (Page page : pages) {
        ItemType sectionItem = sectionToItemMap.get(page.getSection());
        if (sectionItem == null) {
            continue;
        }
        ItemType pageItem = cpObjectFactory.createItemType();
        pageItem.setTitle(page.getTitle());
        String itemIdentifier = "page_" + page.getKey().toString();
        String resourceIdentifier = "res_" + itemIdentifier;
        pageItem.setIdentifier(itemIdentifier);
        pageItem.setIdentifierref(resourceIdentifier);
        pageItem.setIsvisible(Boolean.TRUE);
        sectionItem.getItem().add(pageItem);
        ResourceType resource = cpObjectFactory.createResourceType();
        resource.setIdentifier(resourceIdentifier);
        resource.setType("webcontent");
        resource.setHref(pageFilename(page));
        resources.getResource().add(resource);
    }
    return manifest;
}
Also used : ManifestMetadataType(org.olat.imscp.xml.manifest.ManifestMetadataType) ResourcesType(org.olat.imscp.xml.manifest.ResourcesType) ManifestType(org.olat.imscp.xml.manifest.ManifestType) OrganizationsType(org.olat.imscp.xml.manifest.OrganizationsType) HashMap(java.util.HashMap) ItemType(org.olat.imscp.xml.manifest.ItemType) ResourceType(org.olat.imscp.xml.manifest.ResourceType) Page(org.olat.modules.portfolio.Page) OrganizationType(org.olat.imscp.xml.manifest.OrganizationType) AssessmentSection(org.olat.modules.portfolio.AssessmentSection) Section(org.olat.modules.portfolio.Section)

Example 60 with Page

use of org.olat.modules.portfolio.Page in project openolat by klemens.

the class ExportBinderAsCPResource method prepare.

@Override
public void prepare(HttpServletResponse hres) {
    try {
        hres.setCharacterEncoding("UTF-8");
    } catch (Exception e) {
        log.error("", e);
    }
    try (ZipOutputStream zout = new ZipOutputStream(hres.getOutputStream())) {
        Binder binder = portfolioService.getBinderByKey(binderRef.getKey());
        String label = binder.getTitle();
        String secureLabel = StringHelper.transformDisplayNameToFileSystemName(label);
        String file = secureLabel + ".zip";
        hres.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + StringHelper.urlEncodeUTF8(file));
        hres.setHeader("Content-Description", StringHelper.urlEncodeUTF8(label));
        // load pages
        List<Section> sections = portfolioService.getSections(binder);
        List<Page> pages = portfolioService.getPages(binder, null);
        // manifest
        ManifestType manifest = createImsManifest(binder, sections, pages);
        zout.putNextEntry(new ZipEntry("imsmanifest.xml"));
        write(manifest, new ShieldOutputStream(zout));
        zout.closeEntry();
        // write pages
        for (Section section : sections) {
            exportSection(section, zout);
        }
        // write pages
        for (Page page : pages) {
            exportPage(page, zout);
        }
        // theme and javascripts
        exportCSSAndJs(zout);
        // make it readable offline
        ByteArrayOutputStream manifestOut = new ByteArrayOutputStream();
        write(manifest, manifestOut);
        String manifestXml = new String(manifestOut.toByteArray());
        String indexSrc = sectionFilename(sections.get(0));
        CPOfflineReadableManager.getInstance().makeCPOfflineReadable(manifestXml, indexSrc, zout);
    } catch (Exception e) {
        log.error("", e);
    }
}
Also used : Binder(org.olat.modules.portfolio.Binder) ManifestType(org.olat.imscp.xml.manifest.ManifestType) ShieldOutputStream(org.olat.core.util.io.ShieldOutputStream) ZipOutputStream(java.util.zip.ZipOutputStream) ZipEntry(java.util.zip.ZipEntry) Page(org.olat.modules.portfolio.Page) ByteArrayOutputStream(java.io.ByteArrayOutputStream) AssessmentSection(org.olat.modules.portfolio.AssessmentSection) Section(org.olat.modules.portfolio.Section) JAXBException(javax.xml.bind.JAXBException) SAXException(org.xml.sax.SAXException) IOException(java.io.IOException)

Aggregations

Page (org.olat.modules.portfolio.Page)136 Section (org.olat.modules.portfolio.Section)98 Test (org.junit.Test)70 Identity (org.olat.core.id.Identity)64 Binder (org.olat.modules.portfolio.Binder)44 ArrayList (java.util.ArrayList)32 BinderImpl (org.olat.modules.portfolio.model.BinderImpl)32 AssessmentSection (org.olat.modules.portfolio.AssessmentSection)26 SynchedBinder (org.olat.modules.portfolio.model.SynchedBinder)26 Assignment (org.olat.modules.portfolio.Assignment)24 RepositoryEntry (org.olat.repository.RepositoryEntry)22 HashMap (java.util.HashMap)20 SectionRef (org.olat.modules.portfolio.SectionRef)20 PageUserInformations (org.olat.modules.portfolio.PageUserInformations)18 AssessedPage (org.olat.modules.portfolio.model.AssessedPage)16 PageBody (org.olat.modules.portfolio.PageBody)14 OLATResourceable (org.olat.core.id.OLATResourceable)12 AccessRights (org.olat.modules.portfolio.model.AccessRights)12 CategoryToElement (org.olat.modules.portfolio.CategoryToElement)10 Date (java.util.Date)8