Commit Graph

38 Commits

Author SHA1 Message Date
Ahtisham Shahid
4f5496f02c Fixed Import error due to pre tag
Fixed regex for nested pre tags

Updated import export test

fixed quality test issue

fixed No exception type(s) specified

updated tests

fixed linter issue

fixed linter issue

fixed linter issue
2020-05-20 13:17:53 +05:00
Ahtisham Shahid
f264e5dd03 fixed \n escape issue in import
updated test

updated test
2020-03-27 12:29:32 +05:00
saadyousafarbi
dd994657ac use xpath instead of tag to get all matches from subtree instead of subelements. 2020-02-11 18:59:24 +05:00
Feanil Patel
9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00
DawoudSheraz
e306bc74c0 avoid pretty printing of pre tags in course import 2019-11-12 13:57:25 +05:00
Braden MacDonald
d3f6ed09d8 Learning Contexts, New XBlock Runtime, Blockstore API Client + Content Libraries
https://github.com/edx/edx-platform/pull/20645

This introduces:
* A new XBlock runtime that can read and write XBlocks that are persisted using
  Blockstore instead of Modulestore. The new runtime is currently isolated so
  that it can be tested without risk to the current courseware/runtime.
* Content Libraries v2, which store XBlocks in Blockstore not modulestore
* An API Client for Blockstore
* "Learning Context" plugin API. A learning context is a more abstract concept
  than a course; it's a collection of XBlocks that serves some learning purpose.
2019-08-30 10:31:15 -07:00
Usman Khalid
0b27c62ca6 Convert VideoModule to VideoBlock.
Some deprecated functionality has been removed:

- Reading data field and transforms being applied in the init() method.
- The source field.
- The source_visible attribute.
2019-06-20 22:12:39 +05:00
Maxim Dorovkov
8702e40589 INCR-230 - Run python-modernize and isort on common/lib/xmodule/xmodule (#20506)
* INCR-230 - Run python-modernize and isort on common/lib/xmodule/xmodule, plus a few minor fixes suggested by Jeremy
2019-05-16 10:09:15 -04:00
Usman Khalid
41c6236e0a Convert CapaModule to ProblemBlock.
* Minimum possible changes were made to merge CapaModule & CapaDescriptor into
  one ProblemBlock class.
* There are no known changes in behavior.
* CapaModule and CapaDescriptor inherited from a number of classes which inherit
  from XModule or XModuleDescriptor but did not depend on them. For all these
  classes the methods were moved to mixins which did not inherit from either and
  then these mixins were added to ProblemBlock in the order which maintains MRO.
2019-05-01 20:08:36 +05:00
David Ormsbee
d0c353609d Don't break exports for uninstalled XBlock content
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.
2019-02-06 15:36:59 -05:00
Andy Armstrong
93235d118d Reorder imports using isort (except lms and cms) 2017-05-30 16:04:54 -04:00
Christina Roberts
2497f0a0eb WIP: xblock pipeline work (#10176)
[PERF-303] Integer XBlocks/XModules into the static asset pipeline.

This PR, based on hackathon work from Christina/Andy, implements a way to discover all installed XBlocks and XModules and to enumerate their public assets, then pulling them in during the collectstatic phase and hashing them.  In turn, the methods for generating URLs to resources will then returned the hashed name for assets, allowing them to be served from nginx/CDNs, and cached heavily.
2016-04-29 10:52:42 -04:00
David Baumgold
36e77c7463 Fixing pep8 issues 2014-12-11 13:04:49 -05:00
Don Mitchell
3b43f34b20 XML export maps keys into xml expected format 2014-08-15 16:02:48 -04:00
cahrens
367ea683bd Support non-ascii chars as arguments to format.
We've had errors in export related to non-ascii chars being passed to format. Proactively making these usages of format robut to non-ascii chars.

Part of STUD-868
2013-12-20 14:55:07 -05:00
Calen Pennington
8201b1412e Use XBlock 0.3 2013-09-06 09:45:59 -04:00
Chris Dodge
fcaf3e6329 give some debug message regarding why export might fail 2013-08-08 21:01:38 -04:00
Peter Fogg
512269f842 Add descriptor for modules with empty XML data.
This allows a more general approach to modules such as word_cloud and
video which have no XML data (it's all store in metadata), but use
XmlDescriptor for backwards compatibility. They now generate an empty
tag on export, and clear out empty tags on import.

Also a small change to the video module as a result -- if it's asked
to parse empty XML data, it won't try to parse anything.
2013-07-30 13:53:38 -04:00
Peter Fogg
f355e4a8f4 More general solution to word cloud export problems. 2013-07-30 10:29:12 -04:00
Don Mitchell
8c904f31a9 Move defaults from yaml templates to field definitions.
This standardizes the XModule field default values to be the same as the
values that are presented by studio when a component is added to a
course.
2013-07-16 14:24:41 -04:00
Chris Dodge
5e3ca48c8d address some violations 2013-04-10 09:40:23 -04:00
Chris Dodge
b54ebb3460 make discussion module use MetadataOnlyEditingDescriptor which will not present a code edit region and only display the metadata editor 2013-03-15 22:43:20 -04:00
Calen Pennington
4f555f6480 Merge remote-tracking branch 'origin/master' into feature/cale/xmodule-storage-model
Conflicts:
	cms/djangoapps/contentstore/course_info_model.py
	cms/djangoapps/contentstore/module_info_model.py
	cms/djangoapps/contentstore/tests/factories.py
	cms/djangoapps/contentstore/tests/test_course_settings.py
	cms/djangoapps/contentstore/views.py
	cms/djangoapps/models/settings/course_details.py
	cms/djangoapps/models/settings/course_grading.py
	cms/templates/edit_subsection.html
	common/djangoapps/mitxmako/shortcuts.py
	common/djangoapps/static_replace.py
	common/djangoapps/util/converters.py
	common/djangoapps/xmodule_modifiers.py
	common/lib/xmodule/setup.py
	common/lib/xmodule/xmodule/abtest_module.py
	common/lib/xmodule/xmodule/capa_module.py
	common/lib/xmodule/xmodule/course_module.py
	common/lib/xmodule/xmodule/discussion_module.py
	common/lib/xmodule/xmodule/error_module.py
	common/lib/xmodule/xmodule/html_module.py
	common/lib/xmodule/xmodule/js/src/video/display.coffee
	common/lib/xmodule/xmodule/mako_module.py
	common/lib/xmodule/xmodule/modulestore/mongo.py
	common/lib/xmodule/xmodule/modulestore/store_utilities.py
	common/lib/xmodule/xmodule/modulestore/xml.py
	common/lib/xmodule/xmodule/modulestore/xml_importer.py
	common/lib/xmodule/xmodule/raw_module.py
	common/lib/xmodule/xmodule/self_assessment_module.py
	common/lib/xmodule/xmodule/seq_module.py
	common/lib/xmodule/xmodule/template_module.py
	common/lib/xmodule/xmodule/tests/__init__.py
	common/lib/xmodule/xmodule/tests/test_export.py
	common/lib/xmodule/xmodule/tests/test_import.py
	common/lib/xmodule/xmodule/video_module.py
	common/lib/xmodule/xmodule/x_module.py
	common/lib/xmodule/xmodule/xml_module.py
	lms/djangoapps/courseware/access.py
	lms/djangoapps/courseware/courses.py
	lms/djangoapps/courseware/grades.py
	lms/djangoapps/courseware/models.py
	lms/djangoapps/courseware/module_render.py
	lms/djangoapps/courseware/tests/tests.py
	lms/djangoapps/courseware/views.py
	lms/djangoapps/django_comment_client/utils.py
	lms/templates/staff_problem_info.html
	lms/templates/video.html
	rakefile
2013-02-07 15:12:30 -05:00
Calen Pennington
cfae1cdf62 Pep8 autofixes 2013-02-06 11:13:50 -05:00
Calen Pennington
789ac3fc87 Use the XBlock library as the base for XModule, so that we can incrementally rely on more and more of the XBlock api 2013-01-04 16:19:58 -05:00
Calen Pennington
d61c91c139 Fix errors around error descriptors and custom tag modules 2012-12-28 14:53:30 -05:00
Calen Pennington
8693d288c8 Fix errors from running unit tests (some tests still fail) 2012-12-28 14:51:50 -05:00
Brian Wilson
4ebd70dcc4 add support for utf8 in sequences, verticals and custom modules. 2012-12-04 03:54:36 -05:00
Calen Pennington
3107bb9c45 Make separate json and xml editing interfaces 2012-09-25 10:10:44 -04:00
Victor Shnayder
0b67d1c401 Turn error_handlers into error_trackers
* simplify logic--tracker just tracks errors.  Trackers should not raise,
      and are not be responsible for logging.
* adapted code to use trackers.
* Started cleanup of error handling code:
  - if need to add info and re-raise, just do that.  No logging.
  - if working around a problem, log and track as needed.
2012-08-01 11:48:18 -04:00
Victor Shnayder
ef6da22ac3 Add a fallback MalformedDescriptor
* when things don't load normally, use this
* separate raw editing functionality into EditingDescriptor
* raw descriptor just enforces that xml is valid
* add a MalformedDescriptor that just saves a string
* Fallback to it on import.
2012-08-01 11:40:11 -04:00
Calen Pennington
6997fc579e Continue on errors when syncing with github 2012-07-30 13:50:00 -04:00
Victor Shnayder
5f84e61925 Add hook for error handling during xml import
* add error_handler member to DescriptorSystem
* call it where import errors happen
* also includes some refactoring in xml.py
* some more line length and docstring cleanups
2012-07-27 16:08:22 -04:00
Victor Shnayder
63f34f2e70 Line length and doc string cleanups
* no functionality changed in this commit.
2012-07-27 16:08:22 -04:00
Calen Pennington
5026d6e9fb Give all XModuleDescriptors a module_class, and make it inheritance of js_module_names work 2012-07-24 16:14:00 -04:00
Calen Pennington
3fa636e060 Move module javascript into common/lib/xmodule. Still TODO: run jasmine tests in that directory 2012-07-24 16:13:59 -04:00
Calen Pennington
97cdb67b49 Log error messages when failing to parse xml from a string that contain context of where the error occurred in the string (in definition_to_xml) 2012-07-24 15:05:07 -04:00
Calen Pennington
a0f550396c Make xmodule fit the typical python installation setup 2012-07-02 13:19:27 -04:00