diff --git a/cms/static/coffee/spec/views/metadata_edit_spec.coffee b/cms/static/coffee/spec/views/metadata_edit_spec.coffee index 40547323bbc3..1a219fc817b3 100644 --- a/cms/static/coffee/spec/views/metadata_edit_spec.coffee +++ b/cms/static/coffee/spec/views/metadata_edit_spec.coffee @@ -14,6 +14,7 @@ define ["js/models/metadata", "js/collections/metadata", "js/views/metadata", "c stringEntryTemplate = readFixtures('metadata-string-entry.underscore') optionEntryTemplate = readFixtures('metadata-option-entry.underscore') listEntryTemplate = readFixtures('metadata-list-entry.underscore') + checkboxEntryTemplate = readFixtures('metadata-checkbox-entry.underscore') beforeEach -> setFixtures($(" + + <% showHighLevelSource='source_code' in editable_metadata_fields and editable_metadata_fields['source_code']['explicitly_set'] and enable_latex_compiler %> <% metadata_field_copy = copy.copy(editable_metadata_fields) %> ## Delete 'source_code' field (if it exists) so metadata editor view does not attempt to render it. diff --git a/cms/templates/widgets/tabs/metadata-edit-tab.html b/cms/templates/widgets/tabs/metadata-edit-tab.html index 0caf9d207832..ebe3cc33bfe6 100644 --- a/cms/templates/widgets/tabs/metadata-edit-tab.html +++ b/cms/templates/widgets/tabs/metadata-edit-tab.html @@ -24,5 +24,9 @@ <%static:include path="js/metadata-list-entry.underscore" /> + +
diff --git a/common/lib/xmodule/xmodule/fields.py b/common/lib/xmodule/xmodule/fields.py index 7eefd0608681..0d2df1e3646d 100644 --- a/common/lib/xmodule/xmodule/fields.py +++ b/common/lib/xmodule/xmodule/fields.py @@ -2,7 +2,7 @@ import logging import re -from xblock.fields import Field +from xblock.fields import Field, List import datetime import dateutil.parser @@ -218,3 +218,8 @@ def timedelta_to_string(self, value): if len(stringified) == 7: stringified = '0' + stringified return stringified + + +class Checkbox(List): + pass + diff --git a/common/lib/xmodule/xmodule/x_module.py b/common/lib/xmodule/xmodule/x_module.py index ef994bea7286..9b13ff210d9a 100644 --- a/common/lib/xmodule/xmodule/x_module.py +++ b/common/lib/xmodule/xmodule/x_module.py @@ -15,7 +15,7 @@ from xblock.core import XBlock from xblock.fields import Scope, Integer, Float, List, XBlockMixin, String -from xmodule.fields import RelativeTime +from xmodule.fields import RelativeTime, Checkbox from xblock.fragment import Fragment from xblock.runtime import Runtime from xmodule.errortracker import exc_info_to_str @@ -737,8 +737,11 @@ def jsonify_value(field, json_choice): editor_type = "Generic" values = field.values if isinstance(values, (tuple, list)) and len(values) > 0: - editor_type = "Select" values = [jsonify_value(field, json_choice) for json_choice in values] + if isinstance(field, Checkbox): + editor_type = "Checkbox" + else: + editor_type = "Select" elif isinstance(field, Integer): editor_type = "Integer" elif isinstance(field, Float):