Jump to navigation

Class: NumberEntryPart

Numbas.parts.NumberEntryPart

new NumberEntryPart(pathopt, question, parentPart, storeopt)

Number entry part - student's answer must be within given range, and written to required precision.

Parameters:
Name Type Attributes Default Description
path Numbas.parts.partpath <optional>
'p0'
question Numbas.Question
parentPart Numbas.parts.Part
store Numbas.storage.BlankStorage <optional>
Source:

Members

answered :Boolean

Has this part been answered?

Type:
Inherited From:
Source:

creditFraction :Numbas.math.Fraction

Credit as a fraction. Used to avoid simple floating point errors.

Type:
Inherited From:
Source:

customName :String

Custom name for this part, or null if none. Variables will be substituted into this string from the part's scope.

Type:
Inherited From:
Source:

display :Numbas.display.PartDisplay

Associated display object. It is not safe to assume this is always present - in the editor, parts have no display.

Type:
Inherited From:
Source:

doesMarking :Boolean

Does this mark do any marking? False for information only parts

Type:
Inherited From:
Source:

finalised_result :Numbas.marking.finalised_state

The result of the last marking run

Type:
Inherited From:
Source:

gaps :Array.<Numbas.parts.Part>

Child gapfill parts

Type:
Inherited From:
Source:

isDirty :Boolean

Has the student changed their answer since last submitting?

Type:
Inherited From:
Source:

markingFeedback :Array.<Numbas.parts.feedbackmessage>

Messages explaining how marks were awarded

Type:
Inherited From:
Source:

markingScript :Numbas.marking.MarkingScript

The script to mark this part - assign credit, and give messages and feedback.

Type:
Inherited From:
Source:

marks :Number

Maximum marks available for this part

Type:
Inherited From:
Source:

name :String

A readable name for this part, to show to the student. Change it with Numbas.parts.Part#setName

Type:
Inherited From:
Source:

parentPart :Numbas.parts.Part

Reference to parent of this part, if this is a gap or a step

Type:
Inherited From:
Source:

path :Numbas.parts.partpath

A question-wide unique 'address' for this part.

Type:
Inherited From:
Source:

question :Numbas.Question

The question this part belongs to

Type:
Inherited From:
Source:

score :Number

Student's score on this part

Type:
Inherited From:
Source:

settings

Properties set when the part is generated Extends Numbas.parts.Part#settings

Properties:
Name Type Description
minvalueString Number

definition of minimum value, before variables are substituted in

minvalue Number

minimum value marked correct

maxvalueString Number

definition of maximum value, before variables are substituted in

maxvalue Number

maximum value marked correct

correctAnswerFraction Number

display the correct answer as a fraction?

allowFractions Boolean

can the student enter a fraction as their answer?

notationStyles Array.<String>

styles of notation to allow, other than <digits>.<digits>. See Numbas.util.re_decimal.

displayAnswer Number

representative correct answer to display when revealing answers

precisionType String

type of precision restriction to apply: none, dp - decimal places, or sigfig - significant figures

precisionString Number

definition of precision setting, before variables are substituted in

strictPrecision Boolean

must the student give exactly the required precision? If false, omitting trailing zeros is allowed.

precision Number

how many decimal places or significant figures to require

precisionPC Number

partial credit to award if the answer is between minvalue and maxvalue but not given to the required precision

precisionMessage String

message to display in the marking feedback if their answer was not given to the required precision

mustBeReduced Boolean

should the student enter a fraction in lowest terms

mustBeReducedPC Number

partial credit to award if the answer is not a reduced fraction

showPrecisionHint Boolean

show a hint about the required precision next to the input?

showFractionHint Boolean

show a hint that the answer should be a fraction next to the input?

Overrides:
Source:

shouldResubmit :Boolean

True if this part should be resubmitted because another part it depended on has changed

Type:
Inherited From:
Source:

stagedAnswer :Array.<String>

Student's answers as visible on the screen (not necessarily yet submitted)

Type:
Inherited From:
Source:

steps :Array.<Numbas.parts.Part>

Child step parts

Type:
Inherited From:
Source:

stepsMarks :Number

Marks available for the steps, if any

Type:
Inherited From:
Source:

stepsOpen :Boolean

Is the steps display open? (Students can toggle it, but that doesn't affect whether they get the penalty)

Type:
Inherited From:
Source:

stepsShown :Boolean

Have the steps been show for this part?

Type:
Inherited From:
Source:

studentAnswer

The student's last submitted answer

Source:

type :String

This part's type, e.g. "jme", "numberentry", ...

Type:
Inherited From:
Source:

useCustomName :Boolean

Should a custom name be used?

Type:
Inherited From:
Source:

warnings :Array.<String>

Warnings shown next to the student's answer

Type:
Inherited From:
Source:

xml :Element

XML defining this part

Type:
Inherited From:
Source:

Methods

addCredit(credit, message)

Add an absolute value to credit

Parameters:
Name Type Description
credit Number

amount to add

message String

message to show in feedback to explain this action

Inherited From:
Source:

addStep(step, index)

Add a step to this part

Parameters:
Name Type Description
step Numbas.parts.Part
index Number

position of the step

Inherited From:
Source:

addVariableReplacement(variable, part, must_go_first)

Add a variable replacement for this part's adaptive marking

Parameters:
Name Type Description
variable String

the name of the variable to replace

part String

the path of the part to use

must_go_first Boolean

Must the referred part be answered before this part can be marked?

Inherited From:
Source:

apply_feedback(feedback)

Apply a finalised list of feedback states to this part.

Parameters:
Name Type Description
feedback Array.<Numbas.marking.feedback_item>
Inherited From:
Source:
See:

applyScoreLimits()

Make sure the awarded score is between the minimum and maximum available.

Inherited From:
Source:

assignName(index, siblings) → {Boolean}

Assign a name to this part

Parameters:
Name Type Description
index Number

the number of parts before this one that have names.

siblings Number

the number of siblings this part has

Returns:
Type Description
Boolean

true if this part has a name that should increment the label counter

Inherited From:
Source:

baseMarkingScript() → {Numbas.marking.MarkingScript}

The script to mark this part - assign credit, and give messages and feedback.

Returns:
Type Description
Numbas.marking.MarkingScript
Overrides:
Source:

calculateScore()

Calculate the student's score based on their submitted answers

Calls the parent part's calculateScore method at the end.

Inherited From:
Source:

cleanAnswer(answer) → {String}

Tidy up the student's answer - at the moment, just remove space. You could override this to do more substantial filtering of the student's answer.

Parameters:
Name Type Description
answer String
Returns:
Type Description
String
Source:

error(message, args, originalErroropt)

Throw an error, with the part's identifier prepended to the message

Parameters:
Name Type Attributes Description
message String
args Object

arguments for the error message

originalError Error <optional>

if this is a re-thrown error, the original error object

Throws:
Inherited From:
Source:

errorCarriedForwardScope() → {Numbas.jme.Scope}

Replace variables with student's answers to previous parts

Returns:
Type Description
Numbas.jme.Scope
Inherited From:
Source:

finaliseLoad()

Perform any tidying up or processing that needs to happen once the part's definition has been loaded

Overrides:
Source:

getCorrectAnswer(scope) → {String}

Compute the correct answer, based on the given scope

Parameters:
Name Type Description
scope Numbas.jme.Scope
Returns:
Type Description
String
Overrides:
Source:

getScope() → {Numbas.jme.Scope}

Get a JME scope for this part. If this.question is set, use the question's scope. Otherwise, use Numbas.jme.builtinScope.

Returns:
Type Description
Numbas.jme.Scope
Inherited From:
Source:

giveWarning(warning)

Give the student a warning about this part.

Parameters:
Name Type Description
warning String
Inherited From:
Source:
See:

hasStagedAnswer() → {Boolean}

Has the student entered an answer to this part?

Returns:
Type Description
Boolean
Inherited From:
Source:
See:

hideSteps()

Close the steps box. This doesn't affect the steps penalty.

Inherited From:
Source:

input_options() → {Object}

Options for this part's input widget

Returns:
Type Description
Object
Overrides:
Source:

input_widget() → {String}

The name of the input widget this part uses, if any.

Returns:
Type Description
String
Overrides:
Source:

loadFromJSON(data)

Load the part's settings from a JSON object

Parameters:
Name Type Description
data Object
Overrides:
Source:

loadFromXML(xml)

Load the part's settings from an XML node

Parameters:
Name Type Description
xml Element
Overrides:
Source:

mark(scope) → {Numbas.marking.finalised_state}

Function which marks the student's answer: run this.settings.markingScript, which sets the credit for the student's answer to a number between 0 and 1 and produces a list of feedback messages and warnings. If the question has been answered in a way that can be marked, this.answered should be set to true.

Parameters:
Name Type Description
scope Numbas.jme.Scope
Returns:
Type Description
Numbas.marking.finalised_state
Inherited From:
Source:
See:

mark_answer(studentAnswer, scope) → {Numbas.marking.marking_script_result}

Run the marking script against the given answer. This does NOT apply the feedback and credit to the part object, it just returns it.

Parameters:
Name Type Description
studentAnswer Numbas.jme.token
scope Numbas.jme.Scope
Returns:
Type Description
Numbas.marking.marking_script_result
Inherited From:
Source:
See:

markAgainstScope(scope, feedback) → {Numbas.parts.marking_results}

Calculate the correct answer in the given scope, and mark the student's answer

Parameters:
Name Type Description
scope Numbas.jme.Scope

scope in which to calculate the correct answer

feedback Object.<Array.<String>>

dictionary of existing warnings and markingFeedback lists, to add to - copies of these are returned with any additional feedback appended

Returns:
Type Description
Numbas.parts.marking_results
Inherited From:
Source:

markingComment(message)

Add a comment to the marking feedback

Parameters:
Name Type Description
message String
Inherited From:
Source:

multCredit(factor, message)

Multiply credit by the given amount - use to apply penalties

Parameters:
Name Type Description
factor Number
message String

message to show in feedback to explain this action

Inherited From:
Source:

openSteps()

Open the steps, either because the student asked or the answers to the question are being revealed. This doesn't affect the steps penalty.

Inherited From:
Source:

pleaseResubmit()

Called by another part when its marking means that the marking for this part might change (i.e., when this part replaces a variable with the answer from the other part) Sets this part as dirty, and gives a warning explaining why the student must resubmit.

Inherited From:
Source:

(abstract) rawStudentAnswerAsJME() → {Numbas.jme.token}

Get the student's answer as it was entered as a JME data type, to be used in the custom marking algorithm

Returns:
Type Description
Numbas.jme.token
Overrides:
Source:

removeWarnings()

Remove all warnings

Inherited From:
Source:
See:

resume()

Load saved data about this part from storage The part is not resubmitted - you must do this afterwards, once any steps or gaps have been resumed.

Overrides:
Source:

revealAnswer(dontStore)

Reveal the correct answer to this part

Parameters:
Name Type Description
dontStore Boolean

don't tell the storage that this is happening - use when loading from storage to avoid callback loops

Inherited From:
Source:

setCredit(credit, message, reason)

Set the credit to an absolute value

Parameters:
Name Type Description
credit Number
message String

message to show in feedback to explain this action

reason String

why was the credit set to this value? If given, either 'correct' or 'incorrect'.

Inherited From:
Source:

setDirty(dirty)

Call when the student changes their answer, or submits - update Numbas.parts.Part.isDirty

Parameters:
Name Type Description
dirty Boolean
Inherited From:
Source:

setMarkingScript(markingScriptString, extend_base)

Set this part's JME marking script

Parameters:
Name Type Description
markingScriptString String
extend_base Boolean

Does this script extend the built-in script?

Inherited From:
Source:

setScript(name, order, script)

Set a custom JavaScript script

Parameters:
Name Type Description
name String

the name of the method to override

order String

When should the script run? 'instead', 'before' or 'after'

script String

the source code of the script

Inherited From:
Source:
See:

setStudentAnswer()

Save a copy of the student's answer as entered on the page, for use in marking.

Overrides:
Source:

setWarnings(warnings)

Set the list of warnings

Parameters:
Name Type Description
warnings Array.<String>
Inherited From:
Source:
See:

showSteps(dontStore)

Show the steps, as a result of the student asking to show them. If the answers have not been revealed, we should apply the steps penalty.

Parameters:
Name Type Description
dontStore Boolean

don't tell the storage that this is happening - use when loading from storage to avoid callback loops

Inherited From:
Source:

storeAnswer(answer)

Update the stored answer from the student (called when the student changes their answer, but before submitting)

Parameters:
Name Type Description
answer *
Inherited From:
Source:
See:
  • {Numbas.parts.Part.stagedAnswer}

(abstract) studentAnswerAsJME() → {Numbas.jme.token}

Get the student's answer as a JME data type, to be used in error-carried-forward calculations

Returns:
Type Description
Numbas.jme.token
Inherited From:
Source:

subCredit(credit, message)

Subtract an absolute value from credit

Parameters:
Name Type Description
credit Number

amount to subtract

message String

message to show in feedback to explain this action

Inherited From:
Source:

submit()

Submit the student's answers to this part - remove warnings. save answer, calculate marks, update scores

Inherited From:
Source: