Clean up editable_metadata_fields.
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
<%
|
||||
import hashlib
|
||||
import copy
|
||||
import json
|
||||
hlskey = hashlib.md5(module.location.url()).hexdigest()
|
||||
%>
|
||||
|
||||
<% showHighLevelSource='source_code' in json_metadata_data and json_metadata_data['source_code']['explicitly_set'] %>
|
||||
% if 'source_code' in json_metadata_data:
|
||||
<% del json_metadata_data['source_code'] %>
|
||||
<% showHighLevelSource='source_code' in editable_metadata_fields and editable_metadata_fields['source_code']['explicitly_set'] %>
|
||||
<% metadata_field_copy = copy.deepcopy(editable_metadata_fields) %>
|
||||
## Delete 'source_code' field (if it exists) so metadata editor view does not attempt to render it.
|
||||
% if 'source_code' in editable_metadata_fields:
|
||||
## source-edit.html needs access to the 'source_code' value, so delete from a copy.
|
||||
<% del metadata_field_copy['source_code'] %>
|
||||
% endif
|
||||
<div class="wrapper-comp-settings metadata_edit" id="settings-tab" data-metadata='${json.dumps(json_metadata_data)}'/>
|
||||
<div class="wrapper-comp-settings metadata_edit" id="settings-tab" data-metadata='${json.dumps(metadata_field_copy)}'/>
|
||||
|
||||
% if showHighLevelSource:
|
||||
<a href="#hls-modal-${hlskey}" style="color:yellow;" id="hls-trig-${hlskey}" >Edit High Level Source</a>
|
||||
|
||||
@@ -31,13 +31,9 @@ class MakoModuleDescriptor(XModuleDescriptor):
|
||||
"""
|
||||
Return the context to render the mako template with
|
||||
"""
|
||||
# TODO: just return a single thing.
|
||||
[editable_metadata, simplified_metadata] = self.editable_metadata_fields
|
||||
return {
|
||||
'module': self,
|
||||
'editable_metadata_fields': editable_metadata,
|
||||
'json_metadata_data' : simplified_metadata
|
||||
|
||||
'editable_metadata_fields': self.editable_metadata_fields
|
||||
}
|
||||
|
||||
def get_html(self):
|
||||
|
||||
@@ -626,8 +626,7 @@ class XModuleDescriptor(XModuleFields, HTMLSnippet, ResourceTemplates, XBlock):
|
||||
"""
|
||||
inherited_metadata = getattr(self, '_inherited_metadata', {})
|
||||
inheritable_metadata = getattr(self, '_inheritable_metadata', {})
|
||||
metadata = {}
|
||||
simple_metadata = {}
|
||||
metadata_fields = {}
|
||||
for field in self.fields:
|
||||
|
||||
if field.scope != Scope.settings or field in self.non_editable_metadata_fields:
|
||||
@@ -643,12 +642,6 @@ class XModuleDescriptor(XModuleFields, HTMLSnippet, ResourceTemplates, XBlock):
|
||||
if field.name in inherited_metadata:
|
||||
explicitly_set = False
|
||||
|
||||
metadata[field.name] = {'field': field,
|
||||
'value': value,
|
||||
'default_value': default_value,
|
||||
'inheritable': inheritable,
|
||||
'explicitly_set': explicitly_set}
|
||||
|
||||
# We support the following editors:
|
||||
# 1. A select editor for fields with a list of possible values (includes Booleans).
|
||||
# 2. Number editor for integers and floats.
|
||||
@@ -670,7 +663,7 @@ class XModuleDescriptor(XModuleFields, HTMLSnippet, ResourceTemplates, XBlock):
|
||||
type = "Integer"
|
||||
elif isinstance(field, Float):
|
||||
type = "Float"
|
||||
simple_metadata[field.name] = {'field_name' : field.name,
|
||||
metadata_fields[field.name] = {'field_name' : field.name,
|
||||
'type' : type,
|
||||
'display_name' : field.display_name,
|
||||
'value': field.to_json(value),
|
||||
@@ -680,7 +673,7 @@ class XModuleDescriptor(XModuleFields, HTMLSnippet, ResourceTemplates, XBlock):
|
||||
'explicitly_set': explicitly_set,
|
||||
'help': field.help}
|
||||
|
||||
return metadata, simple_metadata
|
||||
return metadata_fields
|
||||
|
||||
|
||||
class DescriptorSystem(object):
|
||||
|
||||
Reference in New Issue
Block a user