Commit c0f0366b by cahrens

Some cleanup TODOs.

parent d4df9eeb
...@@ -34,6 +34,7 @@ class StringyInteger(Integer): ...@@ -34,6 +34,7 @@ class StringyInteger(Integer):
return None return None
# TODO: move to fields.py and remove duplicated code.
class StringyFloat(Float): class StringyFloat(Float):
""" """
A model type that converts from string to floats when reading from json A model type that converts from string to floats when reading from json
...@@ -95,7 +96,7 @@ class CapaFields(object): ...@@ -95,7 +96,7 @@ class CapaFields(object):
input_state = Object(help="Dictionary for maintaining the state of inputtypes", scope=Scope.user_state) input_state = Object(help="Dictionary for maintaining the state of inputtypes", scope=Scope.user_state)
student_answers = Object(help="Dictionary with the current student responses", scope=Scope.user_state) student_answers = Object(help="Dictionary with the current student responses", scope=Scope.user_state)
done = Boolean(help="Whether the student has answered the problem", scope=Scope.user_state) done = Boolean(help="Whether the student has answered the problem", scope=Scope.user_state)
display_name = String(help="Display name for this module", scope=Scope.settings) display_name = XModule.display_name
seed = StringyInteger(help="Random seed for this student", scope=Scope.user_state) seed = StringyInteger(help="Random seed for this student", scope=Scope.user_state)
weight = StringyFloat(help="How much to weight this problem by", scope=Scope.settings) weight = StringyFloat(help="How much to weight this problem by", scope=Scope.settings)
markdown = String(help="Markdown source of this module", scope=Scope.settings) markdown = String(help="Markdown source of this module", scope=Scope.settings)
......
from .x_module import XModuleDescriptor, DescriptorSystem from .x_module import XModuleDescriptor, DescriptorSystem
from .modulestore.inheritance import own_metadata from .modulestore.inheritance import own_metadata
from xblock.core import Scope
class MakoDescriptorSystem(DescriptorSystem): class MakoDescriptorSystem(DescriptorSystem):
...@@ -44,10 +46,26 @@ class MakoModuleDescriptor(XModuleDescriptor): ...@@ -44,10 +46,26 @@ class MakoModuleDescriptor(XModuleDescriptor):
# cdodge: encapsulate a means to expose "editable" metadata fields (i.e. not internal system metadata) # cdodge: encapsulate a means to expose "editable" metadata fields (i.e. not internal system metadata)
@property @property
def editable_metadata_fields(self): def editable_metadata_fields(self):
fields = {} # fields = {}
for field, value in own_metadata(self).items(): # for field, value in own_metadata(self).items():
if field in self.system_metadata_fields: # if field in self.system_metadata_fields:
# continue
#
# fields[field] = value
# return fields
inherited_metadata = getattr(self, '_inherited_metadata', {})
metadata = {}
for field in self.fields:
# Only save metadata that wasn't inherited
if field.scope != Scope.settings or field.name in self.system_metadata_fields:
continue continue
fields[field] = value if field.name in self._model_data:
return fields metadata[field.name] = self._model_data[field.name]
if field.name in inherited_metadata and self._model_data.get(field.name) == inherited_metadata.get(
field.name):
metadata[field.name] = str(metadata[field.name]) + ' INHERITED'
else:
metadata[field.name] = str(getattr(self, field.name)) + ' DEFAULT'
return metadata
...@@ -155,6 +155,7 @@ class XmlDescriptor(XModuleDescriptor): ...@@ -155,6 +155,7 @@ class XmlDescriptor(XModuleDescriptor):
Remove any attribute named in cls.metadata_attributes from the supplied Remove any attribute named in cls.metadata_attributes from the supplied
xml_object xml_object
""" """
# TODO: change to use Fields definitions
for attr in cls.metadata_attributes: for attr in cls.metadata_attributes:
if xml_object.get(attr) is not None: if xml_object.get(attr) is not None:
del xml_object.attrib[attr] del xml_object.attrib[attr]
......
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