Commit 57b3ceba by Calen Pennington

Add a field type that treats a string as an int

parent 45544396
...@@ -21,6 +21,16 @@ from xmodule.raw_module import RawDescriptor ...@@ -21,6 +21,16 @@ from xmodule.raw_module import RawDescriptor
from xmodule.exceptions import NotFoundError from xmodule.exceptions import NotFoundError
from .model import Int, Scope, ModuleScope, ModelType, String, Boolean, Object, Float from .model import Int, Scope, ModuleScope, ModelType, String, Boolean, Object, Float
class StringyInt(Int):
"""
A model type that converts from strings to integers when reading from json
"""
def from_json(self, value):
if isinstance(value, basestring):
return int(value)
return value
log = logging.getLogger("mitx.courseware") log = logging.getLogger("mitx.courseware")
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
...@@ -88,7 +98,7 @@ class CapaModule(XModule): ...@@ -88,7 +98,7 @@ class CapaModule(XModule):
icon_class = 'problem' icon_class = 'problem'
attempts = Int(help="Number of attempts taken by the student on this problem", default=0, scope=Scope.student_state) attempts = Int(help="Number of attempts taken by the student on this problem", default=0, scope=Scope.student_state)
max_attempts = Int(help="Maximum number of attempts that a student is allowed", scope=Scope.settings) max_attempts = StringyInt(help="Maximum number of attempts that a student is allowed", scope=Scope.settings)
due = String(help="Date that this problem is due by", scope=Scope.settings) due = String(help="Date that this problem is due by", scope=Scope.settings)
graceperiod = Timedelta(help="Amount of time after the due date that submissions will be accepted", scope=Scope.settings) graceperiod = Timedelta(help="Amount of time after the due date that submissions will be accepted", scope=Scope.settings)
show_answer = String(help="When to show the problem answer to the student", scope=Scope.settings, default="closed") show_answer = String(help="When to show the problem answer to the student", scope=Scope.settings, default="closed")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment