Skip to content
Snippets Groups Projects
user avatar
David Ormsbee authored
When an unknown content type is encountered, it's imported as a
RawDescriptor, which will preserve the OLX and export it back out. But
if we import a course while an XBlock is installed and then export it
after that XBlock is removed, we export RawDescriptors that never got to
save the original OLX and have a blank "data" field. Attempting to
export this used to fail and break export altogether. We now test that
the export continues to complete, and just skips over anything it can't
serialize out.

Note that this will stil export pointers in the export, so if you
uninstalled a "AmazingBlock" and exported, you might see something like
the following in a vertical's XML::

<vertical display_name="Unit">
  <amazing url_name="2edebb68d5734395a06b8a62b9bb677e"/>
</vertical>

However there would be no corresponding file at:
  /amazing/2edebb68d5734395a06b8a62b9bb677e.xml

In fact, there would be no /amazing directory at all in the export.

The better long term solution is probably to leave the pointer as-is
and export some generic file that can't be mistaken for OLX (say a
JSON file) that represents the raw key-value data we have in
Modulstore for the now unknown XBlock type. However, this commit at
least keeps export from crashing out entirely.
d0c35360
History
Name Last commit Last update