Skip to content

Commit 11bf61f

Browse files
committed
exported olx format <prereqisite required_content_key=abc content_type=sequential .... />
1 parent 637f32b commit 11bf61f

File tree

1 file changed

+9
-30
lines changed

1 file changed

+9
-30
lines changed

xmodule/xml_block.py

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
from xblock.runtime import KvsFieldData
1313
from xmodule.modulestore import EdxJSONEncoder
1414
from xmodule.modulestore.inheritance import InheritanceKeyValueStore, own_metadata
15+
1516
from opaque_keys.edx.keys import UsageKey
1617
log = logging.getLogger(__name__)
18+
1719
# assume all XML files are persisted as utf-8.
1820
EDX_XML_PARSER = XMLParser(dtd_validation=False, load_dtd=False, remove_blank_text=True, encoding='utf-8')
1921

@@ -142,22 +144,10 @@ def _extract_prereq_url_name(self, prereq_usage_key):
142144
"""
143145
Extract the url_name from a prerequisite usage key.
144146
"""
145-
try:
146-
if isinstance(prereq_usage_key, str):
147-
prereq_usage_key = UsageKey.from_string(prereq_usage_key)
148-
149-
# Get the block_id which should be the url_name
147+
if isinstance(prereq_usage_key, str):
148+
prereq_usage_key = UsageKey.from_string(prereq_usage_key)
150149
return prereq_usage_key.block_id
151-
152-
except (ImportError, ValueError, AttributeError, TypeError) as e:
153-
log.warning("Could not extract url_name from prerequisite key %s: %s", prereq_usage_key, e)
154-
# Extract from string as fallback
155-
if isinstance(prereq_usage_key, str):
156-
# Assuming format like: block-v1:org+course+run+type@sequential+block@url_name
157-
if '@sequential+block@' in prereq_usage_key:
158-
parts = prereq_usage_key.split('@sequential+block@')
159-
if len(parts) > 1:
160-
return parts[1]
150+
else:
161151
return None
162152

163153
def _add_prerequisite_to_xml(self, xml_object):
@@ -178,23 +168,12 @@ def _add_prerequisite_to_xml(self, xml_object):
178168
prereq_id, min_score, min_completion = prereq_info
179169
prereq_url_name = self._extract_prereq_url_name(prereq_id)
180170
if not prereq_url_name:
181-
log.warning("Could not extract prerequisite url_name from %s", prereq_id)
182171
return
183172

184-
# Create prerequisite element
185173
prereq_element = etree.Element('prerequisite')
186-
required_seq_element = etree.Element('required_sequential')
187-
required_seq_element.set('url_name', prereq_url_name)
188-
prereq_element.append(required_seq_element)
189-
if min_score is not None and int(min_score) > 0:
190-
min_score_element = etree.Element('min_score')
191-
min_score_element.text = str(min_score)
192-
prereq_element.append(min_score_element)
193-
if min_completion is not None and int(min_completion) > 0:
194-
min_completion_element = etree.Element('min_completion')
195-
min_completion_element.text = str(min_completion)
196-
prereq_element.append(min_completion_element)
197-
# Insert at the beginning
174+
prereq_element.set('required_content', prereq_url_name)
175+
prereq_element.set('min_score_element', str(min_score))
176+
prereq_element.set('min_completion', str(min_completion))
198177
xml_object.insert(0, prereq_element)
199178

200179
@staticmethod
@@ -501,7 +480,7 @@ def add_xml_to_node(self, node):
501480
return
502481

503482
if self.category == 'sequential':
504-
self._add_prerequisite_to_xml(xml_object) # Uncomment this later
483+
self._add_prerequisite_to_xml(xml_object)
505484

506485
for aside in self.runtime.get_asides(self):
507486
if aside.needs_serialization():

0 commit comments

Comments
 (0)