GithubHelp home page GithubHelp logo

sakaicontrib / mneme-project Goto Github PK

View Code? Open in Web Editor NEW
0.0 6.0 6.0 2.76 MB

Etudes Mneme Tool and additional projects.

Java 98.43% HTML 0.29% JavaScript 0.96% CSS 0.21% PLSQL 0.04% Shell 0.07%

mneme-project's Introduction

Mneme

This is a test and survey tool for the Sakai (http://sakaiproject.org) learning management system. It has it's own web UI framework (ambrosia) that's part of this repository.

Building

Build Status

To build have a copy of Java 8 and Maven 3 and run:

mvn install

mneme-project's People

Contributors

austin48 avatar bgarciaentornos avatar buckett avatar rashmim00 avatar tannirum avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mneme-project's Issues

Incorrectly marked answers when using numerical questions and with 'any order'

  • create a new test in Assignments, Tests and Surveys (mneme)
  • add a Fill in the blank question
  • create two fill in the blanks to the ckeditor

What is your favorite number: {3568}
Pick a number 3 or 4: {3|4}

  • In the question settings, set the question to be "Numerical"
  • In the question settings, choose "Any Order"
  • Save and publish
  • take the test as a student
  • for the first fill in the blank use a comma in your answer
  • choose 3 or 4 for the 2nd question

What is your favorite number: 3,568
Pick a number 3 or 4: 3

  • Finish the test
  • View the grades as an instructor
  • the 2nd question will be marked wrong even though 3 was a correct choice.

AutoDDL missing mneme_assessment_title table

When running fresh with auto-ddl turned on, one question table was not created.

Turns out the DDL for the table was missing from the mneme_question.sql, which is the file that auto-ddl runs.

This a problem for both Oracle and MySQL

mneme maintenance job error getTimedOutSubmissions

I see this error thousands of times when the menme maintenance runs. I believe it started happening due to adding the SendEmailOnSubmission stuff in the oxford changes.

13-Sep-2018 12:25:25.874 WARN [org.etudes.mneme.impl.SubmissionServiceImpl] org.etudes.mneme.impl.SubmissionServiceImpl.getTimedOutSubmissions Error getTimedOutSubmissions: java.lang.IllegalArgumentException
Continue... getTimedOutSubmissions

java.lang.IllegalArgumentException
at org.etudes.mneme.impl.AssessmentImpl.setSendEmailOnSubmission(AssessmentImpl.java:1866)
at org.etudes.mneme.impl.AssessmentStorageSql$9.readSqlResultRecord(AssessmentStorageSql.java:1103)
at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:583)
at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:471)
at org.etudes.mneme.impl.AssessmentStorageSql.readAssessments(AssessmentStorageSql.java:1052)
at org.etudes.mneme.impl.AssessmentStorageSql.readAssessment(AssessmentStorageSql.java:1014)
at org.etudes.mneme.impl.AssessmentStorageSql.getAssessment(AssessmentStorageSql.java:221)
at org.etudes.mneme.impl.AssessmentServiceImpl.getAssessment(AssessmentServiceImpl.java:452)
at org.etudes.mneme.impl.SubmissionAssessmentImpl.getAssessment(SubmissionAssessmentImpl.java:945)
at org.etudes.mneme.impl.SubmissionAssessmentImpl.getTimeLimit(SubmissionAssessmentImpl.java:647)
at org.etudes.mneme.impl.SubmissionServiceImpl.getTimedOutSubmissions(SubmissionServiceImpl.java:3519)
at org.etudes.mneme.impl.SubmissionServiceImpl.run(SubmissionServiceImpl.java:2205)
at java.lang.Thread.run(Thread.java:748)

"Content is not allowed in prolog" error importing QTI zip file

Steps

  • create a new test
  • export it
  • in another site, import the export zip file
  • the test will not be imported.
  • checking the tomcat logs there's an error
15-Jun-2018 10:27:36.900 DEBUG [http-nio-8980-exec-4] org.etudes.mneme.impl.PoolServiceImpl.allowManagePools allowManagePools: 546076f7-7b0d-4484-8e43-fa3d25f0cb81
[Fatal Error] catalog.xml:1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException; systemId: file:/usr/local/apache-tomcat-8.5.31-for-sakai-12.1-dev-uh/webapps/etudes-mneme-tool/WEB-INF/classes/catalog.xml; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150)
	at org.etudes.mneme.tool.UploadXml.setUpload(UploadXml.java:83)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.etudes.ambrosia.impl.UiPropertyReference.setFileValue(UiPropertyReference.java:802)
	at org.etudes.ambrosia.impl.UiPropertyReference.write(UiPropertyReference.java:438)
	at org.etudes.ambrosia.impl.UiDecoder.decode(UiDecoder.java:149)
	at org.etudes.ambrosia.impl.UiServiceImpl.decode(UiServiceImpl.java:202)
	at org.etudes.mneme.tool.ImportQtiView.post(ImportQtiView.java:124)
	at org.etudes.ambrosia.util.AmbrosiaServlet.doPost(AmbrosiaServlet.java:236)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:418)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:470)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:356)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:316)
	at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:513)
	at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1488)
	at org.sakaiproject.portal.charon.handlers.SiteHandler.doToolBuffer(SiteHandler.java:1227)
	at org.sakaiproject.portal.charon.handlers.SiteHandler.bufferContent(SiteHandler.java:1061)
	at org.sakaiproject.portal.charon.handlers.SiteHandler.doSite(SiteHandler.java:490)
	at org.sakaiproject.portal.charon.handlers.SiteHandler.doGet(SiteHandler.java:266)
	at org.sakaiproject.portal.charon.handlers.SiteHandler.doGet(SiteHandler.java:154)
	at org.sakaiproject.portal.charon.handlers.WorksiteHandler.doPost(WorksiteHandler.java:69)
	at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1172)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:467)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

Export Summary fails when test contains a "survey" question

  • Create an new Assessment
  • Add a question
  • Set the question to True / False
  • Check "Click to make this a survey question"
  • Continue creating the question and test
  • Publish the assessment
  • Take the test
  • Click grading
  • Select the test
  • Click "Export of Data"

The export fails with

2016-10-06 16:22:45,506 WARN ajp-bio-8009-exec-164 org.etudes.mneme.impl.AttachmentServiceImpl - summary spreadsheet:
java.lang.NullPointerException

Export Summary fails with excel 255 column limit

  1. as an instructor create a test with more than 255 questions
  2. login as a student and answer all 255 questions
  3. as the instructor, refresh the tool and click the 'person' icon next to the test
  4. click Export Data
  5. click "Export summary" link
  6. the exported file is zero bytes and the tomcat logs says there's an error with more than 255 excel columns

typos in ambrosia.dtd file

typos in ambrosia.dtd file

-<ELEMENT failedRequirementsMessage (message)* >
+<!ELEMENT failedRequirementsMessage (message)* >

-<<!ATTLIST htmlModel stripP (TRUE|FALSE) #IMPLIED >
+<!ATTLIST htmlModel stripP (TRUE|FALSE) #IMPLIED >

Suppress user name while grading hides the names in the Name column but User Name column still shows usernames

  • In an assignment's options, select 'Suppress user name while grading'
  • go to grading
  • the Names column show generic "User" for each user's name
  • but the User Name still shows the user's username
  1. it looks like this might be due to a change in gradeAssessment.xml
    e06f729

Where the "User Name" column is a new column that was added.

  1. Is there any particular reason why that "User Name" column was added? the "Name" column already shows the (username) in parentheses

Migration script for Sakai 11.x adds columns but no default value when required, breaking mneme.

When using the migration script mneme_assessment_oxford.sql, it adds a column SEND_SUBMIT_EMAIL to the MNEME_ASSESSMENT table. However, if there are already assessments present added by a previous version of mneme, the value will become null in this column.

This has the unfortunate effect that an error page is shown when opening mneme from Sakai. The page shows a non descriptive message and a button that seemingly does nothing.

Alert

Press "Return" to continue.

Return

There is no cause of the error provided. After code inspection it turns out that a check on the sendEmailOnSubmission setter of the AssessmentImpl object makes sure that an IllegalArgumentException is thrown when the value returns null from the database.

@bgarciaentornos @buckett I've added a pull request to this issue to fix the migration script by adding a default value for that column.

Question warning icon is too small

The warning icon for questions is too small:
screen shot 2017-10-06 at 10 29 43

One way to get this is to create an assessment that requires points and add a single question that doesn't have any points assigned to it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.