Search in sources :

Example 66 with Event

use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project OpenOLAT by OpenOLAT.

the class AssessmentTestFormItem method evalFormRequest.

@Override
public void evalFormRequest(UserRequest ureq) {
    String uri = ureq.getModuleURI();
    if (uri == null) {
        QTIWorksAssessmentTestEvent event = null;
        String cmd = ureq.getParameter("cid");
        if (StringHelper.containsNonWhitespace(cmd)) {
            switch(QTIWorksAssessmentTestEvent.Event.valueOf(cmd)) {
                case selectItem:
                    {
                        if (isRenderNavigation()) {
                            String selectedItem = ureq.getParameter("item");
                            event = new QTIWorksAssessmentTestEvent(selectItem, selectedItem, this);
                            break;
                        } else {
                            // not it's job
                            return;
                        }
                    }
                case nextItem:
                    {
                        event = new QTIWorksAssessmentTestEvent(nextItem, this);
                        break;
                    }
                case finishItem:
                    {
                        event = new QTIWorksAssessmentTestEvent(finishItem, this);
                        break;
                    }
                case endTestPart:
                    {
                        event = new QTIWorksAssessmentTestEvent(endTestPart, this);
                        break;
                    }
                case advanceTestPart:
                    {
                        event = new QTIWorksAssessmentTestEvent(advanceTestPart, this);
                        break;
                    }
                case testPartNavigation:
                    {
                        event = new QTIWorksAssessmentTestEvent(testPartNavigation, this);
                        break;
                    }
                case reviewItem:
                    {
                        String selectedItem = ureq.getParameter("item");
                        event = new QTIWorksAssessmentTestEvent(reviewItem, selectedItem, this);
                        break;
                    }
                case itemSolution:
                    {
                        String selectedItem = ureq.getParameter("item");
                        event = new QTIWorksAssessmentTestEvent(itemSolution, selectedItem, this);
                        break;
                    }
                case reviewTestPart:
                    {
                        event = new QTIWorksAssessmentTestEvent(reviewTestPart, this);
                        break;
                    }
                case exitTest:
                    {
                        event = new QTIWorksAssessmentTestEvent(exitTest, this);
                        break;
                    }
                case timesUp:
                    {
                        event = new QTIWorksAssessmentTestEvent(timesUp, this);
                        break;
                    }
                case tmpResponse:
                    {
                        event = new QTIWorksAssessmentTestEvent(tmpResponse, this);
                        break;
                    }
                case rubric:
                    {
                        String selectedSection = ureq.getParameter("section");
                        event = new QTIWorksAssessmentTestEvent(rubric, selectedSection, this);
                        break;
                    }
                default:
                    {
                        event = null;
                    }
            }
        }
        if (event != null) {
            getRootForm().fireFormEvent(ureq, event);
            component.setDirty(true);
        }
    }
}
Also used : QTIWorksAssessmentTestEvent(org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent)

Example 67 with Event

use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project OpenOLAT by OpenOLAT.

the class AssessmentTreeFormItem method evalFormRequest.

@Override
public void evalFormRequest(UserRequest ureq) {
    String uri = ureq.getModuleURI();
    if (uri == null) {
        QTIWorksAssessmentTestEvent event = null;
        String cmd = ureq.getParameter("cid");
        if (StringHelper.containsNonWhitespace(cmd)) {
            switch(QTIWorksAssessmentTestEvent.Event.valueOf(cmd)) {
                case selectItem:
                    {
                        String selectedItem = ureq.getParameter("item");
                        event = new QTIWorksAssessmentTestEvent(selectItem, selectedItem, this);
                        getRootForm().fireFormEvent(ureq, event);
                        component.setDirty(true);
                        testComponent.setDirty(true);
                        break;
                    }
                case mark:
                    {
                        String selectedItem = ureq.getParameter("item");
                        event = new QTIWorksAssessmentTestEvent(mark, selectedItem, this);
                        getRootForm().fireFormEvent(ureq, event);
                        break;
                    }
                default:
                    break;
            }
        }
    }
}
Also used : QTIWorksAssessmentTestEvent(org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent)

Example 68 with Event

use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project OpenOLAT by OpenOLAT.

the class AssessmentItemEditorController method event.

@Override
protected void event(UserRequest ureq, Controller source, Event event) {
    if (event instanceof AssessmentItemEvent) {
        AssessmentItemEvent aie = (AssessmentItemEvent) event;
        if (AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED.equals(aie.getCommand())) {
            doBuildAndSaveAssessmentItem();
            doBuildAndCommitMetadata();
            fireEvent(ureq, new AssessmentItemEvent(aie.getCommand(), aie.getAssessmentItem(), itemRef, aie.getQuestionType()));
        } else if (AssessmentItemEvent.ASSESSMENT_ITEM_NEED_RELOAD.equals(aie.getCommand())) {
            fireEvent(ureq, event);
        }
    } else if (poolEditor == source) {
        if (event instanceof DetachFromPoolEvent) {
            fireEvent(ureq, event);
        }
    }
    super.event(ureq, source, event);
}
Also used : DetachFromPoolEvent(org.olat.ims.qti21.ui.editor.events.DetachFromPoolEvent) AssessmentItemEvent(org.olat.ims.qti21.ui.editor.events.AssessmentItemEvent)

Example 69 with Event

use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project openolat by klemens.

the class QTI21ServiceImpl method extraTimeAssessmentTestSession.

@Override
public void extraTimeAssessmentTestSession(AssessmentTestSession session, int extraTime, Identity actor) {
    testSessionDao.extraTime(session, extraTime);
    // commit before event
    dbInstance.commit();
    AssessmentSessionAuditLogger candidateAuditLogger = getAssessmentSessionAuditLogger(session, false);
    candidateAuditLogger.logTestExtend(session, extraTime, actor);
    RetrieveAssessmentTestSessionEvent event = new RetrieveAssessmentTestSessionEvent(session.getKey());
    OLATResourceable sessionOres = OresHelper.createOLATResourceableInstance(AssessmentTestSession.class, session.getKey());
    coordinatorManager.getCoordinator().getEventBus().fireEventToListenersOf(event, sessionOres);
}
Also used : OLATResourceable(org.olat.core.id.OLATResourceable) AssessmentSessionAuditLogger(org.olat.ims.qti21.AssessmentSessionAuditLogger) RetrieveAssessmentTestSessionEvent(org.olat.ims.qti21.ui.event.RetrieveAssessmentTestSessionEvent)

Example 70 with Event

use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project openolat by klemens.

the class QTI21ServiceImpl method recordCandidateItemEvent.

@Override
public CandidateEvent recordCandidateItemEvent(AssessmentTestSession candidateSession, RepositoryEntryRef testEntry, RepositoryEntryRef entry, CandidateItemEventType itemEventType, ItemSessionState itemSessionState, NotificationRecorder notificationRecorder) {
    CandidateEvent event = new CandidateEvent(candidateSession, testEntry, entry);
    event.setItemEventType(itemEventType);
    return event;
}
Also used : CandidateEvent(org.olat.ims.qti21.model.audit.CandidateEvent)

Aggregations

CandidateEvent (org.olat.ims.qti21.model.audit.CandidateEvent)46 Date (java.util.Date)36 NotificationRecorder (uk.ac.ed.ph.jqtiplus.notification.NotificationRecorder)32 TestSessionState (uk.ac.ed.ph.jqtiplus.state.TestSessionState)32 ItemSessionState (uk.ac.ed.ph.jqtiplus.state.ItemSessionState)22 AssessmentResult (uk.ac.ed.ph.jqtiplus.node.result.AssessmentResult)20 QtiCandidateStateException (uk.ac.ed.ph.jqtiplus.exception.QtiCandidateStateException)19 OLATRuntimeException (org.olat.core.logging.OLATRuntimeException)18 TestPlanNodeKey (uk.ac.ed.ph.jqtiplus.state.TestPlanNodeKey)16 TestPlanNode (uk.ac.ed.ph.jqtiplus.state.TestPlanNode)14 HashMap (java.util.HashMap)12 List (java.util.List)10 RetrieveAssessmentTestSessionEvent (org.olat.ims.qti21.ui.event.RetrieveAssessmentTestSessionEvent)10 OLATResourceable (org.olat.core.id.OLATResourceable)8 AssessmentResponse (org.olat.ims.qti21.AssessmentResponse)8 AssessmentTestSession (org.olat.ims.qti21.AssessmentTestSession)8 StringInput (org.olat.ims.qti21.ui.ResponseInput.StringInput)8 FileResponseData (uk.ac.ed.ph.jqtiplus.types.FileResponseData)8 Identifier (uk.ac.ed.ph.jqtiplus.types.Identifier)8 ResponseData (uk.ac.ed.ph.jqtiplus.types.ResponseData)8