Search in sources :

Example 6 with CollectRestriction

use of org.olat.portfolio.model.restriction.CollectRestriction in project openolat by klemens.

the class EPStructureManager method getRestrictionStatistics.

protected Integer[] getRestrictionStatistics(PortfolioStructure structure) {
    if (structure instanceof EPStructureElement) {
        EPStructureElement structEl = (EPStructureElement) structure;
        structEl = (EPStructureElement) reloadPortfolioStructure(structEl);
        final List<CollectRestriction> restrictions = structEl.getCollectRestrictions();
        if (restrictions != null && !restrictions.isEmpty()) {
            int todo = 0;
            int done = 0;
            List<AbstractArtefact> artefacts = getArtefacts(structEl);
            for (CollectRestriction cR : restrictions) {
                if (RestrictionsConstants.MIN.equals(cR.getRestriction()) || RestrictionsConstants.EQUAL.equals(cR.getRestriction())) {
                    todo += cR.getAmount();
                    int actualCRCount = countRestrictionType(artefacts, cR);
                    done += actualCRCount;
                }
            }
            return new Integer[] { done, todo };
        }
    }
    return null;
}
Also used : EPStructureElement(org.olat.portfolio.model.structel.EPStructureElement) AbstractArtefact(org.olat.portfolio.model.artefacts.AbstractArtefact) CollectRestriction(org.olat.portfolio.model.restriction.CollectRestriction)

Example 7 with CollectRestriction

use of org.olat.portfolio.model.restriction.CollectRestriction in project openolat by klemens.

the class EPStructureManager method addCollectRestriction.

/**
 * Add or update a restriction to the collection of artefacts for a given structure element
 * @param structure
 * @param artefactType
 * @param restriction
 * @param amount
 */
public void addCollectRestriction(PortfolioStructure structure, String artefactType, String restriction, int amount) {
    if (structure == null)
        throw new NullPointerException("Structure cannot be null");
    EPStructureElement structEl = (EPStructureElement) structure;
    List<CollectRestriction> restrictions = structEl.getCollectRestrictions();
    CollectRestriction cr = new CollectRestriction();
    cr.setArtefactType(artefactType);
    cr.setRestriction(restriction);
    cr.setAmount(amount);
    restrictions.add(cr);
}
Also used : EPStructureElement(org.olat.portfolio.model.structel.EPStructureElement) CollectRestriction(org.olat.portfolio.model.restriction.CollectRestriction)

Example 8 with CollectRestriction

use of org.olat.portfolio.model.restriction.CollectRestriction in project openolat by klemens.

the class EPStructureElementsController method initForm.

/**
 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer, org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
 */
protected void initForm(UserRequest ureq) {
    flc.contextPut("structElements", structElements);
    tableCtrls = new ArrayList<Controller>();
    addBtnCtrls = new ArrayList<Controller>();
    int i = 1;
    removeComponents();
    for (PortfolioStructure portStruct : structElements) {
        if (secCallback.isRestrictionsEnabled()) {
            List<CollectRestriction> restrictions = portStruct.getCollectRestrictions();
            if (!restrictions.isEmpty()) {
                boolean check = ePFMgr.checkCollectRestriction(portStruct);
                EPCollectRestrictionResultController resultCtrl = new EPCollectRestrictionResultController(ureq, getWindowControl());
                resultCtrl.setMessage(portStruct.getCollectRestrictions(), check);
                flc.put("checkResults" + i, resultCtrl.getInitialComponent());
                listenTo(resultCtrl);
            }
        }
        // get artefacts for this structure
        List<AbstractArtefact> artefacts = ePFMgr.getArtefacts(portStruct);
        if (artefacts.size() != 0) {
            EPMultiArtefactsController artefactCtrl = EPUIFactory.getConfigDependentArtefactsControllerForStructure(ureq, getWindowControl(), artefacts, portStruct, secCallback);
            flc.put("artefacts" + i, artefactCtrl.getInitialComponent());
            listenTo(artefactCtrl);
            tableCtrls.add(artefactCtrl);
        }
        if (!parentMapClosed && secCallback.canAddArtefact()) {
            // get an addElement-button for each structure
            EPAddElementsController addButton = new EPAddElementsController(ureq, getWindowControl(), portStruct);
            listenTo(addButton);
            addButton.setShowLink(EPAddElementsController.ADD_ARTEFACT);
            flc.put("addButton" + i, addButton.getInitialComponent());
            addBtnCtrls.add(addButton);
        }
        i++;
    }
    if (i != maxStructAmount)
        maxStructAmount = i;
}
Also used : EPCollectRestrictionResultController(org.olat.portfolio.ui.structel.edit.EPCollectRestrictionResultController) EPMultiArtefactsController(org.olat.portfolio.ui.artefacts.view.EPMultiArtefactsController) PortfolioStructure(org.olat.portfolio.model.structel.PortfolioStructure) AbstractArtefact(org.olat.portfolio.model.artefacts.AbstractArtefact) CollectRestriction(org.olat.portfolio.model.restriction.CollectRestriction) Controller(org.olat.core.gui.control.Controller) EPMultiArtefactsController(org.olat.portfolio.ui.artefacts.view.EPMultiArtefactsController) BasicController(org.olat.core.gui.control.controller.BasicController) EPCollectRestrictionResultController(org.olat.portfolio.ui.structel.edit.EPCollectRestrictionResultController)

Example 9 with CollectRestriction

use of org.olat.portfolio.model.restriction.CollectRestriction in project openolat by klemens.

the class EPStructureDetailsController method formOK.

/**
 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#formOK(org.olat.core.gui.UserRequest)
 */
@Override
protected void formOK(final UserRequest ureq) {
    editStructure = ePFMgr.reloadPortfolioStructure(editStructure);
    editStructure.setTitle(titleEl.getValue());
    editStructure.setDescription(descriptionEl.getValue());
    editStructure.setArtefactRepresentationMode(viewRadio.getSelectedKey());
    if (rootStructure instanceof EPStructuredMapTemplate && restrictionElements != null) {
        clearErrors();
        editStructure.getCollectRestrictions().clear();
        setCollectRestrictions();
        for (final SingleSelection restrictionElement : restrictionElements) {
            final CollectRestriction restriction = (CollectRestriction) restrictionElement.getUserObject();
            if (restriction.isValid()) {
                final CollectRestriction cr = new CollectRestriction(restriction);
                editStructure.getCollectRestrictions().add(cr);
            }
        }
    }
    ePFMgr.savePortfolioStructure(editStructure);
    fireEvent(ureq, new EPStructureEvent(EPStructureEvent.CHANGE, editStructure));
}
Also used : EPStructureEvent(org.olat.portfolio.ui.structel.EPStructureEvent) EPStructuredMapTemplate(org.olat.portfolio.model.structel.EPStructuredMapTemplate) SingleSelection(org.olat.core.gui.components.form.flexible.elements.SingleSelection) CollectRestriction(org.olat.portfolio.model.restriction.CollectRestriction)

Example 10 with CollectRestriction

use of org.olat.portfolio.model.restriction.CollectRestriction in project openolat by klemens.

the class EPStructureDetailsController method validateFormLogic.

/**
 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#validateFormLogic(org.olat.core.gui.UserRequest)
 */
@Override
protected boolean validateFormLogic(UserRequest ureq) {
    if (rootStructure instanceof EPStructuredMapTemplate && restrictionElements != null) {
        setCollectRestrictions();
        clearErrors();
        ArrayList<String> usedTypes = new ArrayList<String>();
        int i = 0;
        boolean hasError = false;
        for (SingleSelection restrictionElement : restrictionElements) {
            CollectRestriction restriction = (CollectRestriction) restrictionElement.getUserObject();
            if (usedTypes.contains(restriction.getArtefactType())) {
                StaticTextElement thisErrorEl = errorElements.get(i);
                thisErrorEl.setVisible(true);
                thisErrorEl.setValue(translate("collect.restriction.duplicate.type"));
                hasError = true;
            }
            usedTypes.add(restriction.getArtefactType());
            boolean hasRestriction = StringHelper.containsNonWhitespace(restriction.getRestriction());
            boolean hasArtType = StringHelper.containsNonWhitespace(restriction.getArtefactType());
            boolean hasAmount = restriction.getAmount() > 0;
            boolean isValid = restriction.isValid();
            if (!isValid && (hasRestriction || hasArtType || hasAmount)) {
                StaticTextElement thisErrorEl = errorElements.get(i);
                thisErrorEl.setVisible(true);
                thisErrorEl.setValue(translate("collect.restriction.incomplete"));
                hasError = true;
            }
            i++;
        }
        return !hasError;
    }
    return true;
}
Also used : EPStructuredMapTemplate(org.olat.portfolio.model.structel.EPStructuredMapTemplate) SingleSelection(org.olat.core.gui.components.form.flexible.elements.SingleSelection) ArrayList(java.util.ArrayList) CollectRestriction(org.olat.portfolio.model.restriction.CollectRestriction) StaticTextElement(org.olat.core.gui.components.form.flexible.elements.StaticTextElement)

Aggregations

CollectRestriction (org.olat.portfolio.model.restriction.CollectRestriction)26 ArrayList (java.util.ArrayList)10 AbstractArtefact (org.olat.portfolio.model.artefacts.AbstractArtefact)10 SingleSelection (org.olat.core.gui.components.form.flexible.elements.SingleSelection)8 EPStructureElement (org.olat.portfolio.model.structel.EPStructureElement)8 StaticTextElement (org.olat.core.gui.components.form.flexible.elements.StaticTextElement)6 EPStructuredMapTemplate (org.olat.portfolio.model.structel.EPStructuredMapTemplate)6 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)4 RichTextElement (org.olat.core.gui.components.form.flexible.elements.RichTextElement)4 TextElement (org.olat.core.gui.components.form.flexible.elements.TextElement)4 PortfolioStructure (org.olat.portfolio.model.structel.PortfolioStructure)4 EPMultiArtefactsController (org.olat.portfolio.ui.artefacts.view.EPMultiArtefactsController)4 EPCollectRestrictionResultController (org.olat.portfolio.ui.structel.edit.EPCollectRestrictionResultController)4 CommentAndRatingDefaultSecurityCallback (org.olat.core.commons.services.commentAndRating.CommentAndRatingDefaultSecurityCallback)2 CommentAndRatingSecurityCallback (org.olat.core.commons.services.commentAndRating.CommentAndRatingSecurityCallback)2 UserCommentsAndRatingsController (org.olat.core.commons.services.commentAndRating.ui.UserCommentsAndRatingsController)2 FormLayoutContainer (org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer)2 Controller (org.olat.core.gui.control.Controller)2 BasicController (org.olat.core.gui.control.controller.BasicController)2 EPArtefactHandler (org.olat.portfolio.EPArtefactHandler)2