From 6bd64c4a6100192119312b905382e761d30bc12b Mon Sep 17 00:00:00 2001 From: Robert Raposa Date: Fri, 12 May 2017 14:57:49 -0400 Subject: [PATCH] Clean up docs directory. - Remove old docs - Move testing.rst - Update READMEs and index.rst for docs. --- README.rst | 16 +- docs/README.rst | 50 +- docs/en_us/Makefile | 16 - .../architecture/locator_ubiquity.graphml | 669 ------------------ docs/en_us/architecture/locator_ubiquity.jpg | Bin 43662 -> 0 bytes docs/en_us/architecture/presplit.graphml | 547 -------------- docs/en_us/architecture/presplit.jpg | Bin 35802 -> 0 bytes .../en_us/architecture/studio mapping.graphml | 605 ---------------- docs/en_us/architecture/studio mapping.jpg | Bin 40189 -> 0 bytes docs/en_us/developers/README.rst | 46 -- docs/en_us/enrollment_api/Makefile | 164 ----- docs/en_us/enrollment_api/__init__.py | 0 docs/en_us/enrollment_api/requirements.txt | 9 - docs/en_us/enrollment_api/source/__init__.py | 0 .../source/_static/homepage-bg.jpg | Bin 158490 -> 0 bytes .../source/_templates/layout.html | 5 - docs/en_us/enrollment_api/source/conf.py | 98 --- docs/en_us/enrollment_api/source/index.rst | 5 - docs/en_us/internal/development.md | 136 ---- docs/en_us/internal/discussion.md | 167 ----- docs/en_us/internal/jenkins/builds.md | 1 - docs/en_us/internal/jenkins/jenkins.md | 1 - docs/en_us/internal/jenkins/results.md | 1 - .../en_us/internal/jenkins/troubleshooting.md | 1 - docs/en_us/internal/mongo.md | 145 ---- docs/en_us/internal/mongo_indexes.md | 60 -- docs/en_us/internal/overview.md | 142 ---- docs/en_us/internal/persistence.rst | 658 ----------------- docs/en_us/internal/remote_gradebook.md | 47 -- docs/en_us/internal/testing.md | 1 - docs/en_us/platform_api/Makefile | 164 ----- docs/en_us/platform_api/__init__.py | 0 docs/en_us/platform_api/requirements.txt | 16 - docs/en_us/platform_api/source/__init__.py | 0 .../source/_static/homepage-bg.jpg | Bin 158490 -> 0 bytes .../source/_templates/layout.html | 5 - .../platform_api/source/authentication.rst | 23 - docs/en_us/platform_api/source/change_log.rst | 29 - docs/en_us/platform_api/source/conf.py | 247 ------- .../source/course_structure/index.rst | 25 - .../platform_api/source/courses/blocks.rst | 290 -------- .../platform_api/source/courses/courses.rst | 226 ------ .../platform_api/source/courses/index.rst | 14 - .../platform_api/source/courses/overview.rst | 65 -- .../platform_api/source/docs_settings.py | 12 - .../source/enrollment/enrollment.rst | 170 ----- .../platform_api/source/enrollment/index.rst | 11 - .../source/enrollment/overview.rst | 46 -- docs/en_us/platform_api/source/index.rst | 40 -- docs/en_us/platform_api/source/links.rst | 7 - .../platform_api/source/mobile/index.rst | 29 - docs/en_us/platform_api/source/overview.rst | 21 - docs/en_us/platform_api/source/preface.rst | 1 - .../source/profile_images/index.rst | 16 - docs/en_us/platform_api/source/read_me.rst | 17 - .../platform_api/source/user/accounts.rst | 44 -- docs/en_us/platform_api/source/user/index.rst | 12 - .../platform_api/source/user/overview.rst | 75 -- .../platform_api/source/user/preferences.rst | 54 -- docs/en_us/shared/browsers.rst | 34 - .../images/Announcement_subscriptions.png | Bin 15424 -> 0 bytes docs/en_us/shared/preface.rst | 482 ------------- docs/index.rst | 39 + docs/shared/__init__.py | 0 docs/shared/conf.py | 345 --------- docs/shared/requirements.txt | 74 -- docs/{en_us/internal => }/test_pyramid.png | Bin docs/{en_us/internal => }/testing.rst | 0 68 files changed, 42 insertions(+), 6181 deletions(-) delete mode 100644 docs/en_us/Makefile delete mode 100644 docs/en_us/architecture/locator_ubiquity.graphml delete mode 100644 docs/en_us/architecture/locator_ubiquity.jpg delete mode 100644 docs/en_us/architecture/presplit.graphml delete mode 100644 docs/en_us/architecture/presplit.jpg delete mode 100644 docs/en_us/architecture/studio mapping.graphml delete mode 100644 docs/en_us/architecture/studio mapping.jpg delete mode 100644 docs/en_us/developers/README.rst delete mode 100644 docs/en_us/enrollment_api/Makefile delete mode 100644 docs/en_us/enrollment_api/__init__.py delete mode 100644 docs/en_us/enrollment_api/requirements.txt delete mode 100644 docs/en_us/enrollment_api/source/__init__.py delete mode 100644 docs/en_us/enrollment_api/source/_static/homepage-bg.jpg delete mode 100644 docs/en_us/enrollment_api/source/_templates/layout.html delete mode 100644 docs/en_us/enrollment_api/source/conf.py delete mode 100644 docs/en_us/enrollment_api/source/index.rst delete mode 100644 docs/en_us/internal/development.md delete mode 100644 docs/en_us/internal/discussion.md delete mode 100644 docs/en_us/internal/jenkins/builds.md delete mode 100644 docs/en_us/internal/jenkins/jenkins.md delete mode 100644 docs/en_us/internal/jenkins/results.md delete mode 100644 docs/en_us/internal/jenkins/troubleshooting.md delete mode 100644 docs/en_us/internal/mongo.md delete mode 100644 docs/en_us/internal/mongo_indexes.md delete mode 100644 docs/en_us/internal/overview.md delete mode 100644 docs/en_us/internal/persistence.rst delete mode 100644 docs/en_us/internal/remote_gradebook.md delete mode 100644 docs/en_us/internal/testing.md delete mode 100644 docs/en_us/platform_api/Makefile delete mode 100644 docs/en_us/platform_api/__init__.py delete mode 100644 docs/en_us/platform_api/requirements.txt delete mode 100644 docs/en_us/platform_api/source/__init__.py delete mode 100644 docs/en_us/platform_api/source/_static/homepage-bg.jpg delete mode 100644 docs/en_us/platform_api/source/_templates/layout.html delete mode 100644 docs/en_us/platform_api/source/authentication.rst delete mode 100644 docs/en_us/platform_api/source/change_log.rst delete mode 100644 docs/en_us/platform_api/source/conf.py delete mode 100644 docs/en_us/platform_api/source/course_structure/index.rst delete mode 100644 docs/en_us/platform_api/source/courses/blocks.rst delete mode 100644 docs/en_us/platform_api/source/courses/courses.rst delete mode 100644 docs/en_us/platform_api/source/courses/index.rst delete mode 100644 docs/en_us/platform_api/source/courses/overview.rst delete mode 100644 docs/en_us/platform_api/source/docs_settings.py delete mode 100644 docs/en_us/platform_api/source/enrollment/enrollment.rst delete mode 100644 docs/en_us/platform_api/source/enrollment/index.rst delete mode 100644 docs/en_us/platform_api/source/enrollment/overview.rst delete mode 100644 docs/en_us/platform_api/source/index.rst delete mode 100644 docs/en_us/platform_api/source/links.rst delete mode 100644 docs/en_us/platform_api/source/mobile/index.rst delete mode 100644 docs/en_us/platform_api/source/overview.rst delete mode 100644 docs/en_us/platform_api/source/preface.rst delete mode 100644 docs/en_us/platform_api/source/profile_images/index.rst delete mode 100644 docs/en_us/platform_api/source/read_me.rst delete mode 100644 docs/en_us/platform_api/source/user/accounts.rst delete mode 100644 docs/en_us/platform_api/source/user/index.rst delete mode 100644 docs/en_us/platform_api/source/user/overview.rst delete mode 100644 docs/en_us/platform_api/source/user/preferences.rst delete mode 100644 docs/en_us/shared/browsers.rst delete mode 100644 docs/en_us/shared/images/Announcement_subscriptions.png delete mode 100644 docs/en_us/shared/preface.rst create mode 100644 docs/index.rst delete mode 100644 docs/shared/__init__.py delete mode 100644 docs/shared/conf.py delete mode 100644 docs/shared/requirements.txt rename docs/{en_us/internal => }/test_pyramid.png (100%) rename docs/{en_us/internal => }/testing.rst (100%) diff --git a/README.rst b/README.rst index 5df62bd254..ccf7f05338 100644 --- a/README.rst +++ b/README.rst @@ -51,21 +51,9 @@ in. If you do not have an account, follow these steps. Documentation ------------- -Documentation is managed in the `edx-documentation`_ repository. Documentation -is built using `Sphinx`_: you can `view the built documentation on -ReadTheDocs`_. - -You can also check out `Confluence`_, our wiki system. Once you sign up for -an account, you'll be able to create new pages and edit existing pages, just -like in any other wiki system. You only need one account for both Confluence -and `JIRA`_, our issue tracker. - -.. _Sphinx: http://sphinx-doc.org/ -.. _view the built documentation on ReadTheDocs: http://docs.edx.org/ -.. _edx-documentation: https://github.com/edx/edx-documentation -.. _Confluence: http://openedx.atlassian.net/wiki/ -.. _JIRA: https://openedx.atlassian.net/ +Documentation details can be found in the `docs index.rst`_. +.. _docs index.rst: docs/index.rst Getting Help ------------ diff --git a/docs/README.rst b/docs/README.rst index 91439343fc..26064211fe 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -1,49 +1 @@ -################### -EdX Documentation -################### - -The following documentation projects have been moved to the `edx-documentation`_ repository as of November 3, 2014: - -* course_authors -* data -* developers -* install_operations -* mobile -* OLX -* ORA-2 -* release_notes -* students - -API documentation that includes docstrings from code files is stored in the -repository of that module. All other documentation projects are stored in edx- -documentation. - -By moving documentation to its own repository, we will be better able to -develop workflows, manage versioning, create translations, and automate -testing, without complicating ongoing development of the edX Platform. - -.. _edx_documentation: https://github.com/edx/edx-documentation - -****************************** -View Published Documentation -****************************** - -EdX documentation is published through Read the Docs. Links to all published -documentation are available through `docs.edx.org`_. - -.. _docs.edx.org: http://docs.edx.org - -****************************** -Submit Documentation Issues -****************************** - -We welcome input from the community on any documentation issues. You can -submit issues to the Documentation project in the `Open edX JIRA board`_. - -You will need to `create a free JIRA account`_ account before you can submit your first -ticket. - -.. _create a free JIRA account: https://openedx.atlassian.net/admin/users/sign-up -.. _Open edX JIRA board: https://openedx.atlassian.net - -You can also email docs@edx.org. +See `index.rst `_ for details. diff --git a/docs/en_us/Makefile b/docs/en_us/Makefile deleted file mode 100644 index 651529b12e..0000000000 --- a/docs/en_us/Makefile +++ /dev/null @@ -1,16 +0,0 @@ - -.PHONY: html - -Q_FLAG = - -ifeq ($(quiet), true) -Q_FLAG = quiet=true -endif - -html: - @cd $(CURDIR)/data && make html $(Q_FLAG) - @cd $(CURDIR)/course_authors && make html $(Q_FLAG) - @cd $(CURDIR)/developers && make html $(Q_FLAG) - @cd $(CURDIR)/install_operations && make html $(Q_FLAG) - @cd $(CURDIR)/ORA2 && make html $(Q_FLAG) - @cd $(CURDIR)/release_notes && make html $(Q_FLAG) diff --git a/docs/en_us/architecture/locator_ubiquity.graphml b/docs/en_us/architecture/locator_ubiquity.graphml deleted file mode 100644 index b71c38996b..0000000000 --- a/docs/en_us/architecture/locator_ubiquity.graphml +++ /dev/null @@ -1,669 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Studio Client - - - - - - - - - - - - - - - - - - LMS Client - - - - - - - - - - - - - - - - - - Studio App - - - - - - - - - - - - - - - - - - LMS App - - - - - - - - - - - - - - - - - - MixedModulestore - - - - - - - - - - - - - - - - - - Contentstore - - - - - - - - - - - - - - - - - - Discussion Forums - - - - - - - - - - - - - - - - - - Grading, -Analytics, -... - - - - - - - - - - - - - - - - - - Mongo -modulestore - - - - - - - - - - - - - - - - - XML files - - - - - - - - - - - - - - - - - GridFS (mongo) - - - - - - - - - - - - - - - - - Assets - - - - - - - - - - - - - - - - - xblock -runtime - - - - - - - - - - - - - - - - - - auth svcs - - - - - - - - - - - - - - - - - - SQL store - - - - - - - - - - - - - - - - - ? Discussion - store ? - - - - - - - - - - - - - - - - - loc_mapper - - - - - - - - - - - - - - - - - - loc_mapper - mongo - - - - - - - - - - - - - - - - - "Split" -modulestore - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/en_us/architecture/locator_ubiquity.jpg b/docs/en_us/architecture/locator_ubiquity.jpg deleted file mode 100644 index 07780c2985c144139439f8ca2adcfeb0c98bbb26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43662 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%0DE~p&6UFT>I`69^KDU=ttHoaKW~Ov(mqL=!@+ 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 QU97g#r#3k`_x - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Studio Client - - - - - - - - - - - - - - - - - - LMS Client - - - - - - - - - - - - - - - - - - Studio App - - - - - - - - - - - - - - - - - - LMS App - - - - - - - - - - - - - - - - - - MixedModulestore - - - - - - - - - - - - - - - - - - Contentstore - - - - - - - - - - - - - - - - - - Discussion Forums - - - - - - - - - - - - - - - - - - Grading, -Analytics, -... - - - - - - - - - - - - - - - - - - Mongo -modulestore - - - - - - - - - - - - - - - - - XML files - - - - - - - - - - - - - - - - - GridFS (mongo) - - - - - - - - - - - - - - - - - Assets - - - - - - - - - - - - - - - - - xblock -runtime - - - - - - - - - - - - - - - - - - auth svcs - - - - - - - - - - - - - - - - - - SQL store - - - - - - - - - - - - - - - - - ? Discussion - store ? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/en_us/architecture/presplit.jpg b/docs/en_us/architecture/presplit.jpg deleted file mode 100644 index 5f667e278cb9b195e837529d21cc452ac16bdaeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35802 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 Z<&I`rc;0(X9F25p4g9N_pN@a5{U0wrvNHex diff --git a/docs/en_us/architecture/studio mapping.graphml b/docs/en_us/architecture/studio mapping.graphml deleted file mode 100644 index da3e274462..0000000000 --- a/docs/en_us/architecture/studio mapping.graphml +++ /dev/null @@ -1,605 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Studio Client - - - - - - - - - - - - - - - - - - LMS Client - - - - - - - - - - - - - - - - - - Studio App - - - - - - - - - - - - - - - - - - LMS App - - - - - - - - - - - - - - - - - - MixedModulestore - - - - - - - - - - - - - - - - - - Contentstore - - - - - - - - - - - - - - - - - - Discussion Forums - - - - - - - - - - - - - - - - - - Grading, -Analytics, -... - - - - - - - - - - - - - - - - - - Mongo -modulestore - - - - - - - - - - - - - - - - - XML files - - - - - - - - - - - - - - - - - GridFS (mongo) - - - - - - - - - - - - - - - - - Assets - - - - - - - - - - - - - - - - - xblock -runtime - - - - - - - - - - - - - - - - - - auth svcs - - - - - - - - - - - - - - - - - - SQL store - - - - - - - - - - - - - - - - - ? Discussion - store ? - - - - - - - - - - - - - - - - - loc_mapper - - - - - - - - - - - - - - - - - - loc_mapper - mongo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/en_us/architecture/studio mapping.jpg b/docs/en_us/architecture/studio mapping.jpg deleted file mode 100644 index 134dd0c26f87b1fa797cbe17c522fc1cf73ec238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40189 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/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -Q_FLAG = - -ifeq ($(quiet), true) -Q_FLAG = -Q -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = $(Q_FLAG) -d $(BUILDDIR)/doctrees -c source $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/edX.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/edX.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/edX" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/edX" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/en_us/enrollment_api/__init__.py b/docs/en_us/enrollment_api/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en_us/enrollment_api/requirements.txt b/docs/en_us/enrollment_api/requirements.txt deleted file mode 100644 index 64a0ffa0e8..0000000000 --- a/docs/en_us/enrollment_api/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -path.py -Django >=1.4,<1.5 -pytz --e git+https://github.com/edx/XBlock.git#egg=XBlock -lxml -sphinxcontrib-napoleon==0.2.6 -stevedore==0.14.1 -djangorestframework==2.3.14 -PyYAML>=3.10 diff --git a/docs/en_us/enrollment_api/source/__init__.py b/docs/en_us/enrollment_api/source/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en_us/enrollment_api/source/_static/homepage-bg.jpg b/docs/en_us/enrollment_api/source/_static/homepage-bg.jpg deleted file mode 100644 index 0193dbbf58a1053cd61fcfc5234d9581ff885af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158490 zcmY)V2UHVJ)IN@fDkw-%dJ&K!y@OOK(wo%K5_*k*^p1t1bPUo0gbqST=pZE^D!qdc zLRBdVRUrW+f}fx7`=0YX|Nq@{?wsATyL0#M%sh8y?(^UBf8PL%#`;G305Wm_!1Lb$ z_-_@E1h{qM#toVqw`gc?G2W!T$;f>B)~(yjEKE$yOiV0y8UJZ!#=CdfIXF4k@AC28 zzt6`fEhQx-t@!_hjPB-5I(oX>bac0wZ{NPneD^j3!|l7AOiXu}m^k^_?*0=tex7@r zoSgS~1O@r|1qCG~#U&;G-}8$9eF8AikPF|~qaYIikTa1{Fp>TD1;7OWkW-M6kpcdn z{4<+^l8XAqe=7i*|GRz}mSQBBGn%N^XaT{jK;EF1*9wKFA)`_=LGMgz@-Vq=9<GFuxKld7DN1QAQ7o?A=S z-=%-IyxMj-ZTEGq28)Fcdh**!etU`y_#u-s^q_vd6WP7OK^9}=!3bLt`=wwI%_(uS zGph0W_IYgwR59(H*iu@bd8yNMLy)(sT)sdWibu$)_G7o3jO2_~^AIeg!qxla zVLPdJ>kfU|yN0i6CA?YjKWn5QW|z0*8b1hGL}coPXn8svO|ic#z`2VxwW>Hq>_mg5 zY)M`q9u+PFvL56leQMmh6eBvB_J#wVj6+i1^4oITUhWWMRK_T4bcMs$Tzv>#4D6Gt zO2#*Wk`%IMV?>E@o;?q{eRg)XN+(FuEEF%kTXO6vHr&nsV2;W=Sh8gjYX3cCAakS& z-9ZBp;bx+1yjuMwXK#ku1bsuOwN*2-RC#Y(0bcB#{B2Lgk>GvxtWI>$&_hU8tDR?%G>GkQGF}6 z4)?7pj=wwQrw5kO<(JbHG(Pr$^}^8sI$s`oG6BsESsfgs>#0AT_KC%?K^ zFy2S`_Mk#pd&Irr<0HQotcL_Z062?g@%QZV_Mm!NyJBjYV8*=)9u=hbt?fLC3XfSY zSl%_B^Sfo0{JkGso8G$iQ+m`0>YyF+bl#1TCvMpN@t(UcGC*FVl&L8%}qESiY2%^Y#OiiqlWyQ?qU_Nq3!k~`aV4s)D5)n#|t#m;(2*NF;|`7jRu?( z%Wpz@7eNls6yimo9QBlAw*gjn795k9PmLf;;}t+3l`kea(H)M(5?_1LT&!6^M6r|Z zKf>tV#t0>j0QZ~8aOI#-a5{&3h2syQ7!>3*@0H*tY~EG3N+SRibr>rsqkW5kVS3@< zf(zxkSY9r`2NoP#mJR4xsUkx>RCROE)3EHKNf`qbx9Gd3)~UEMx8tQHNt$x-0B73{%#zA*@vUx32PU?fEP zT+Q(!W3geDiBX!-bI(aAJHgveaaYK{RRLU$O%iW6iQ(S!OzU|7WMXbNT$ko3j$a3` z@4a7=dIEdqGqEig3vr^)4hYtZ)JXmVuTl1PV>ffqO40UalT}B&5AXK+CF>C{tBCvI zvFM^3h-)u!1&jSNE$}!1Jzin^LNa_0t*W3;cHrbE$@*c+)_;UP-+|8Sg;t!8xJA>( zl9~>n!mh*iyJA6Z*q(^2N~NfS)n4z2c06G2AD#NuW0c77}9FmUVVZ61uT5y3KSbwowtUBfO#$ z^30zr;%DqFl^pUnTti345btOXSNnQ!saS=OL0#5JS_2065;9)}KX-JyubYO@R8FnK z97~5$Rn9VZ*lsQ4_C{r31eyI1axO-Sotb)%y-LkvWo*^tm&BXuZ5rB<{P<|8=XTeM zuT}lMn)JQYLU3cde!6}pcl46ok;;ZYSI!ya?Witx+*s~ajAY-daE!K$w|W^4^X%-F zLJq(EI2gD3KfY^zLuRXg67y&EmbxI-TV^z@LH3@;>R!hjx%}*SeK=$)_Nh$axgAsA zYYHH8BdFt*f}<@&tEA+2Pbn28zP{3w5HCfA?)+rf_kGc!j|>diIJx!!iKhR(7XSVlqR)%{e_!s@!xeP)#gu26gZbZbZ_^*VpfNKLy z6v3hPZl;zM)z(sGa^oNR4i4~#>jBA);(Tdu{>r;VIz+yG_ky*DL>B3O+7}Uh$Vy6#q=Uv#mL-OP2^atfJPN<$NtMA z?`k@Q=c{$V@@`8EfwpOC)7jrKJ>s*dcW#xTxxOR|Q7N$V(-I4m(k6%t(c9cRs%v*s zC^m?z`RcPl$9`y>&+LWwTcgJdu=~=Qpr?Y&0!wk(cY+Z6xqfm~?}dC3Lx>x(?l&T< zy?)@m3H@7U*F2eH$JS%$ij=iltl$8-J$)YXLEgMeWWmmvQ`BuI(fg0z`_B|e=Ni#B z`gbnr-!jP|ppV4orsoz%awFB;7rGIs6%zO1{MgPh(u=zI;w8(;OLJ59;Ay|0wDr`Dri4ye4C3 znWft94PqF<0E|iWDq`P1QwWVyMj%$amo}UhTz2Y(Y3FbwvcO2m75YU^gz=vAz~m{Z z?pcNzoqm#Kosu)$jK41tl;uID{p|C=Pv)CO2>L>X2K8CDgUYfk6Xe(LH^SN{)CxzjPAy<4-!!^xIR_qt{(n+CLo z69|*f*aL+X;4k}K%-1E0;AYX z2OCY>2aC=%fo*{xD*KImgyr~@t&dU|DER=)0)F;s#S%UeRs)UjDqc26~fufZt_Kf<1#tp>X} zPhhsa9fT^{J)n0399}K8*MwWS)Zn^7YT-)m$361Hssw@Eu^nbEQ&BhBnYF*VpM$Hz zuh&>AkzL;HU&Lo|au2?CMJt6lA8=lAp=y>h+g}b3Rid&wJFrLrEpb%WH$2`~@|iTb z4l{a*zECbyjQB5hIf&`&1^uvFSEbB5_3FxhTb`~(;FfBtScj;%c}NQM%&}2Dj4c*_ zkBya>OILmb>>fO53;hrusNY{2Cu1b8^i5(2Sdq$Vm}*NsT|klD-7YGkC(LzV)Wo9F zS2^Y(P91T3Gvtzud@SxL)}b}WRneD)xnBNg5WpL=BG_PE@4vTh&1HMg({G?`#-s7{ zT;5Sj5C{qwT$ufUF7Kl;M4=;V;mRe%jhLj7#Y1ez+5?TJX|~bst79^S%=J6Jc@q8u zgxKRHIhD(e0&dHwJ<*WEROCfR<-wt zr_@y*GTJ%z1+|*aZb)9g`wV-armzXC;z|Br-#Q{#@m-w7+ttr6Uqdz|lK|&9H>mUTwbf=l3K0 z(uw)F4nbw50sl1Le#Xz5rlDu`b&&b#g_fr^Inbq8&4ukz+u-_aXGvI@MO|I~ynYEA z!EPcMz44r_vT_z~o!&IC(6bC^$**yQc6_$Gy#)K%izl_e8?!4ldw{SoCOs^efiLpo z34x*au||r(*%>*Za2pByNfhjGku08r7TB3LXBO2roUc5mdUk!!Kz!sE4s{x@ZsWz1 z9cFJN*;B;Czc4K!zJC&M+HpMo^RdbM&g%%n9{<_Ce%r5Mom>(T?VoNUyaI0#!+M=t z2JOW12ys&vdy2T0&iGrnKF_B4iwkRy`=GSHR;z(h{{d>hhoBk6`B6<8xDL|oF7cwE ziUpqh@;rN5&0kC)G<+PYl?{|51Q zTWMfnCXMB2oA0Olbro5t(*BgyZf8+&{L}8b&`o(k=&IFhWg9}BMe^#8`Var<4kY_y zmJ10)gdN*S%cge%d?K)OxRsipd`W%p@Cewh53CPMGQXGCa}a<^^@3MTe1CVL!6!Lu zYhOgablKl!dx_3eUsSomlwt9WxZ|y^Ho6}*HpZ9&pjyXQ(+<#?sZ%4leR|gQbdem9 z3psK*={^@Q=ut$qc1gC+wpm}T3 zodYI&))6#Ns;^($<*KoR`gc-W8v>>;->>`aIg~2kdW*9fFcAq^t3<4adNN!{p$pcw z>M}j!E27Ne%iCf-6CHchhwHEDY&;!TwdMyuZoLMNKTYse%{H(Z`qE)dsw zW4Hevs@+^|p)U=CHLSTY3yh!;9Jr-8r)t--Zxv%9e1o80w z5&bu>cG9o z^;!{yyf-rwbKO0-HYY7hM%~brem8gQfBLt~n|fRwSGb9fSFVj4P$vSK8wG?QQ&ZE2 zq!| z0=0vNzB%heuM@C%V(wMer=6panEoH=4|EYRNPjmc8tfNI>t8iSj!OgDM8(s~I5D&I zs^N#GU4eT61GcCoBf48ozNdHQpIUp##o>+^22a7(_|D52nH5Fv9-Gd+T_Zuw^j_|R zDev&1+#rKln6O|T@Z;1t5&r3$it+aNkZ%Wyu4H4tX`TJtHl59)aqQhd3nInSgd^BvbVClR(ui!g?OEb7+`Lv97AA?($Nn;SYuX z251BYaOkkk<-9;BTRB!VQ4+AzVTuFZq1`-EX=c%zte}U{8ci0TRwH^rjg+#lI)WtB zR<-BfCPZKOjAegMNW@&uDD<>%V~mq5`S||ubjq&gou9^aZ1i@7FB0VCzJ9oj1OKc& z_IV_H28t4L6<9()k{mhmz39qcg!V}`H5HeY1@kFiN+WIv`2*E$X*F>2=E8 zBE_JeJCC{(IwH%;@~0F%w!ae(a>q&jzZ=u;)W6Kkxz$>TT&zJn{pq{2(+(_s>baQF zzUNbUy)K<&1;LncO3V{F3NjuPR3|jedo<`3;6h%SH%|K_#pZC(jQwkfkTT9u&BhJ1 z4pH}VX#c}dzP@`^-E0ps5sKX9eSR;t92s^uZWDWbUwJAH_Gg$7M`&U&5X$o*rx`)+ ziCCz-sjA=8kjj?*v_+ckoZ*1h?AQ`rEJq1nF~@z2S9dF#Msj1VRr-N#K?ZZTTr?+) z7EtFOOJGs4y$mD2HgFc?g0~iMD(%{V`pg0CUR)=~qrFi-YIl_yU)?TnDhUf_%@%sn z6cCM^b**`|a zE6@31T++7pIOwJ03(YPT#}8!ue82zBC*5Ehk5|V0X5IZI4;kuJb}63FMu@h@fY
(qt&@k)n3?rFO`nvE4{ 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ⅅ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 diff --git a/docs/en_us/enrollment_api/source/_templates/layout.html b/docs/en_us/enrollment_api/source/_templates/layout.html deleted file mode 100644 index 66ff998af1..0000000000 --- a/docs/en_us/enrollment_api/source/_templates/layout.html +++ /dev/null @@ -1,5 +0,0 @@ -{% extends "!layout.html" %} - -{% block header %} -Edx logo -{% endblock %} \ No newline at end of file diff --git a/docs/en_us/enrollment_api/source/conf.py b/docs/en_us/enrollment_api/source/conf.py deleted file mode 100644 index 46449d29c8..0000000000 --- a/docs/en_us/enrollment_api/source/conf.py +++ /dev/null @@ -1,98 +0,0 @@ -# -*- coding: utf-8 -*- -# pylint: disable=invalid-name -# pylint: disable=redefined-builtin -# pylint: disable=protected-access -# pylint: disable=unused-argument - -import os -from path import Path as path -import sys -import mock - -MOCK_MODULES = [ - 'ipware', - 'ip', - 'ipware.ip', - 'get_ip', - 'pygeoip', - 'ipaddr', - 'django_countries', - 'fields', - 'django_countries.fields', - 'opaque_keys', - 'opaque_keys.edx', - 'opaque_keys.edx.keys', - 'CourseKey', - 'UsageKey', - 'BlockTypeKey', - 'opaque_keys.edx.locations', - 'SlashSeparatedCourseKey', - 'Location', - 'opaque_keys.edx.locator', - 'Locator', -] - -for mod_name in MOCK_MODULES: - sys.modules[mod_name] = mock.Mock() - -on_rtd = os.environ.get('READTHEDOCS', None) == 'True' - -sys.path.append('../../../../') - -from docs.shared.conf import * - - -# Add any paths that contain templates here, relative to this directory. -#templates_path.append('source/_templates') - - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path.append('source/_static') - -if not on_rtd: # only import and set the theme if we're building docs locally - import sphinx_rtd_theme - html_theme = 'sphinx_rtd_theme' - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -root = path('../../../../').abspath() -sys.path.insert(0, root) -sys.path.append(root / "common/djangoapps") -sys.path.append('.') - -#sys.path.insert( -# 0, -# os.path.abspath( -# os.path.normpath( -# os.path.dirname(__file__) + '/../../../..' -# ) -# ) -#) - - -# django configuration - careful here -if on_rtd: - os.environ['DJANGO_SETTINGS_MODULE'] = 'lms' -else: - os.environ['DJANGO_SETTINGS_MODULE'] = 'lms' - -# -- General configuration ----------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [ - 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', - 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', 'sphinxcontrib.napoleon'] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['build', 'links.rst'] - - -project = 'edX Enrollment API Version 1' diff --git a/docs/en_us/enrollment_api/source/index.rst b/docs/en_us/enrollment_api/source/index.rst deleted file mode 100644 index 15318f1517..0000000000 --- a/docs/en_us/enrollment_api/source/index.rst +++ /dev/null @@ -1,5 +0,0 @@ -################################################ -edX Enrollment API Version 1 -################################################ - -This documentation has moved. Enrollment API information is now included in the `EdX Platform APIs documentation `_. diff --git a/docs/en_us/internal/development.md b/docs/en_us/internal/development.md deleted file mode 100644 index 3f93f6b841..0000000000 --- a/docs/en_us/internal/development.md +++ /dev/null @@ -1,136 +0,0 @@ -# Development Tasks - -## Prerequisites - -### Ruby - -To install all of the required ruby libraries, run `bundle install`. -This will read the `Gemfile` and install all of the gems specified there. - -### Python - -Run the following:: - - pip install -r requirements.txt - -### Binaries - -Install the following: - -* Mongodb (http://www.mongodb.org/) - -### Databases - -First start up the MongoDB daemon. E.g. to start it up in the background -using a config file (sometimes using `sudo` is required): - - mongod --config /usr/local/etc/mongod.conf & - -On some Linux distributions the configuration script is located at: - - /etc/mongodb.conf - -If MongoDB does not start properly, it might be the case that there is a stray -lock file somewhere, or that the configuration file is corrupt. In this case -try deleting the lock files, and then running the MongoDB repair script: - - sudo rm -rf /data/db/mongod.lock - sudo rm -rf /var/lib/mongodb/mongod.lock - sudo -u mongodb mongod -f /usr/local/etc/mongod.conf --repair - -To verify that MongoDB started up OK, run the MongoDB client: - - mongo - -After MongoDB daemon is successfully running, check out the course data -directories that you want to work with into the `GITHUB_REPO_ROOT` (by default, -`../data`). Then run the following command: - - paver update_db - -## Installing - -To create your development environment, run the shell script in the root of -the repo: - - scripts/create-dev-env.sh - - -## Starting development servers - -Both the LMS and Studio can be started using the following shortcut tasks - - paver lms # Start the LMS - paver studio # Start studio - paver lms --settings=cms.dev # Start LMS to run alongside Studio - paver lms --settings=cms.dev_preview # Start LMS to run alongside Studio in preview mode - -Under the hood, this executes `./manage.py {lms|cms} --settings $ENV runserver`, -which starts a local development server. - -Both of these commands take arguments to start the servers in different environments -or with additional options: - - # Start the LMS using the test configuration, on port 5000 - paver lms --settings=test --port=5000 # Executes ./manage.py lms --settings test runserver 5000 - -To get a full list of available paver tasks, run: - - paver --help - - -### Troubleshooting - -#### Reference Error: XModule is not defined (javascript) -This means that the javascript defining an xmodule hasn't loaded correctly. There are a number -of different things that could be causing this: - -1. See `Error: watch EMFILE` - -#### Error: watch EMFILE (coffee) -When running a development server, we also start a watcher process alongside to recompile coffeescript -and sass as changes are made. On Mac OSX systems, the coffee watcher process takes more file handles -than are allowed by default. This will result in `EMFILE` errors when coffeescript is running, and -will prevent javascript from compiling, leading to the error 'XModule is not defined' - -To work around this issue, we use `Process::setrlimit` to set the number of allowed open files. -Coffee watches both directories and files, so you will need to set this fairly high (anecdotally, -8000 seems to do the trick on OSX 10.7.5, 10.8.3, and 10.8.4) - - -## Running Tests - -See `testing.rst` for instructions on running the test suite. - -## Content development - -If you change course content, while running the LMS in dev mode, it is unnecessary to restart to refresh the modulestore. - -Instead, hit /migrate/modules to see a list of all modules loaded, and click on links (eg /migrate/reload/edx4edx) to reload a course. - -### Gitreload-based workflow - -github (or other equivalent git-based repository systems) used for -course content can be setup to trigger an automatic reload when changes are pushed. Here is how: - -1. Each content directory in edx_all/data should be a clone of a git repo - -2. The user running the edx gunicorn process should have its ssh key registered with the git repo - -3. The list settings.ALLOWED_GITRELOAD_IPS should contain the IP address of the git repo originating the gitreload request. - By default, this list is ['207.97.227.253', '50.57.128.197', '108.171.174.178'] (the github IPs). - The list can be overridden in the startup file used, eg lms/envs/dev*.py - -4. The git post-receive-hook should POST to /gitreload with a JSON payload. This payload should define at least - - { "repository" : { "name" : reload_dir } - - where reload_dir is the directory name of the content to reload (ie edx_all/data/reload_dir should exist) - - The edx server will then do "git reset --hard HEAD; git clean -f -d; git pull origin" in that directory. After the pull, - it will reload the modulestore for that course. - -Note that the gitreload-based workflow is not meant for deployments on AWS (or elsewhere) which use collectstatic, since collectstatic is not run by a gitreload event. - -Also, the gitreload feature needs FEATURES['ENABLE_LMS_MIGRATION'] = True in the django settings. - diff --git a/docs/en_us/internal/discussion.md b/docs/en_us/internal/discussion.md deleted file mode 100644 index 3f0d51dfba..0000000000 --- a/docs/en_us/internal/discussion.md +++ /dev/null @@ -1,167 +0,0 @@ -# Running the discussion service - -## Instruction for Mac - -## Installing Mongodb - -If you haven't done so already: - - brew install mongodb - -Make sure that you have mongodb running. You can simply open a new terminal tab and type: - - mongod - -## Installing elasticsearch - - brew install elasticsearch - -For debugging, it's often more convenient to have elasticsearch running in a terminal tab instead of in background. To do so, simply open a new terminal tab and then type: - - elasticsearch -f - -## Setting up the discussion service - -You can retrieve the source code from the [github repository](https://github.com/edx/cs_comments_service). - -First go into the edx_all directory. Then type - - git clone https://github.com/edx/cs_comments_service.git - cd cs_comments_service/ - -If you see a prompt asking "Do you wish to trust this .rvmrc file?", type "y" - -Now if you see this error "Gemset 'cs_comments_service' does not exist," run the following command to create the gemset and then use the rvm environment manually: - - rvm gemset create 'cs_comments_service' - rvm use 1.9.3@cs_comments_service - -Now use the following command to install required packages: - - bundle install - -The following command creates database indexes: - - bundle exec rake db:init - -Now use the following command to generate seeds (basically some random comments in Latin): - - bundle exec rake db:seed - -It's done! Launch the app now: - - ruby app.rb - -## Integrating with the edx platform - -The API key must match on both sides. It is configured here: -* edx-platform: COMMENTS_SERVICE_KEY in your dev.py file (dev environment) or ENV_TOKENS (prod environment) -* cs_comments_service: api_key in the application.yml file (dev environment) or ENV variable (prod environment) - - -## Running the delayed job worker - -In the discussion service, notifications are handled asynchronously using a third party gem called delayed_job. If you want to test this functionality, run the following command in a separate tab: - - bundle exec rake jobs:work - -## From the edx-platform django app, initialize roles and permissions - -To fully test the discussion forum, you might want to act as a moderator or an administrator. Currently, the roles are: - - * moderators can manage everything in the forum, and - * administrators can manage everything plus assigning and revoking moderator status of other users. - -First make sure that the database is up-to-date: - - paver update_db - -If you have created users in the edx-platform django apps when the comment service was not running, you will need to one-way sync the users into the comment service back end database: - - ./manage.py lms sync_user_info - -Now initialize roles and permissions, providing a course id. See the example below. Note that you do not need to do this for Studio-created courses, as the Studio application does this for you. - - ./manage.py lms seed_permissions_roles "MITx/6.002x/2012_Fall" - -To assign yourself as a moderator, use the following command (assuming your username is "test", and the course id is "MITx/6.002x/2012_Fall"): - - ./manage.py lms assign_role test Moderator "MITx/6.002x/2012_Fall" - -To assign yourself as an administrator, use the following command - - ./manage.py lms assign_role test Administrator "MITx/6.002x/2012_Fall" - -## Some other useful commands - -### generate seeds for a specific forum -The seed generating command above assumes that you have the following discussion tags somewhere in the course data: - - - - - -For example, you can insert them into overview section as following: - - -

- - -
-
- <%include file="sections/introseq.xml"/> -
-
- - See the Lab Introduction or Interactive Lab Usage Handout for information on how to do the lab - - - -
-
- - - - -
- - -Currently, only the attribute "id" is actually used, which identifies discussion forum. In the code for the data generator, the corresponding lines are: - - generate_comments_for("video_1") - generate_comments_for("lab_1") - generate_comments_for("lab_2") - -We also have a command for generating comments within a forum with the specified id: - - bundle exec rake db:generate_comments[type_the_discussion_id_here] - -For instance, if you want to generate comments for a new discussion tab named "lab_3", then use the following command - - bundle exec rake db:generate_comments[lab_3] - -### Running tests for the service - - bundle exec rspec - -Warning: the development and test environments share the same elasticsearch index. After running tests, search may not work in the development environment. You simply need to reindex: - - bundle exec rake db:reindex_search - -### debugging the service - -You can use the following command to launch a console within the service environment: - - bundle exec rake console - -### show user roles and permissions - -Use the following command to see the roles and permissions of a user in a given course (assuming, again, that the username is "test"): - - ./manage.py lms show_permissions moderator - -You need to make sure that the environment variables are exported. Otherwise you would need to do - - ./manage.py lms show_permissions moderator diff --git a/docs/en_us/internal/jenkins/builds.md b/docs/en_us/internal/jenkins/builds.md deleted file mode 100644 index 839a42c830..0000000000 --- a/docs/en_us/internal/jenkins/builds.md +++ /dev/null @@ -1 +0,0 @@ -See: https://openedx.atlassian.net/wiki/display/TE/Jenkins+Guide diff --git a/docs/en_us/internal/jenkins/jenkins.md b/docs/en_us/internal/jenkins/jenkins.md deleted file mode 100644 index 839a42c830..0000000000 --- a/docs/en_us/internal/jenkins/jenkins.md +++ /dev/null @@ -1 +0,0 @@ -See: https://openedx.atlassian.net/wiki/display/TE/Jenkins+Guide diff --git a/docs/en_us/internal/jenkins/results.md b/docs/en_us/internal/jenkins/results.md deleted file mode 100644 index 839a42c830..0000000000 --- a/docs/en_us/internal/jenkins/results.md +++ /dev/null @@ -1 +0,0 @@ -See: https://openedx.atlassian.net/wiki/display/TE/Jenkins+Guide diff --git a/docs/en_us/internal/jenkins/troubleshooting.md b/docs/en_us/internal/jenkins/troubleshooting.md deleted file mode 100644 index 839a42c830..0000000000 --- a/docs/en_us/internal/jenkins/troubleshooting.md +++ /dev/null @@ -1 +0,0 @@ -See: https://openedx.atlassian.net/wiki/display/TE/Jenkins+Guide diff --git a/docs/en_us/internal/mongo.md b/docs/en_us/internal/mongo.md deleted file mode 100644 index 9a84b0f7e8..0000000000 --- a/docs/en_us/internal/mongo.md +++ /dev/null @@ -1,145 +0,0 @@ -# Notes on using mongodb backed LMS and CMS - -These are some random notes for developers, on how things are stored in mongodb, and how to debug mongodb data. - -## Databases - -Two mongodb databases are used: - -- xmodule: stores module definitions and metadata (modulestore) -- xcontent: stores filesystem content, like PDF files - -modulestore documents are stored with an _id which has fields like this: - - {"_id": {"tag":"i4x","org":"HarvardX","course":"CS50x","category":"chapter","name":"Week_1","revision":null}} - -## Document fields - -### Problems - -Here is an example showing the fields available in problem documents: - - { - "_id" : { - "tag" : "i4x", - "org" : "MITx", - "course" : "6.00x", - "category" : "problem", - "name" : "ps03:ps03-Hangman_part_2_The_Game", - "revision" : null - }, - "definition" : { - "data" : " ..." - }, - "metadata" : { - "display_name" : "Hangman Part 2: The Game", - "attempts" : "30", - "title" : "Hangman, Part 2", - "data_dir" : "6.00x", - "type" : "lecture" - } - } - -## Sample interaction with mongodb - -1. "mongo" -2. "use xmodule" -3. "show collections" should give "modulestore" and "system.indexes" -4. 'db.modulestore.find( {"_id.org": "MITx"} )' will produce a list of all MITx course documents -5. 'db.modulestore.find( {"_id.org": "MITx", "_id.category": "problem"} )' will produce a list of all problems in MITx courses - -Example query for finding all files with "image" in the filename: - -- use xcontent -- db.fs.files.find({'filename': /image/ } ) -- db.fs.files.find({'filename': /image/ } ).count() - -## Debugging the mongodb contents - -A convenient tool is http://phpmoadmin.com/ (needs php) - -Under ubuntu, do: - - - apt-get install php5-fpm php-pear - - pecl install mongo - - edit /etc/php5/fpm/php.ini to add "extension=mongo.so" - - /etc/init.d/php5-fpm restart - -and also setup nginx to run php through fastcgi. - -## Backing up mongodb - -- mogodump (dumps all dbs) -- mongodump --collection modulestore --db xmodule (dumps just xmodule/modulestore) -- mongodump -d xmodule -q '{"_id.org": "MITx"}' (dumps just MITx documents in xmodule) -- mongodump -q '{"_id.org": "MITx"}' (dumps all MITx documents) - -## Deleting course content - -Use "remove" instead of "find": - -- db.modulestore.remove( {"_id.course": "8.01greytak"}) - -## Finding useful information from the mongodb modulestore - -- Organizations - - > db.modulestore.distinct( "_id.org") - [ "HarvardX", "MITx", "edX", "edx" ] - -- Courses - - > db.modulestore.distinct( "_id.course") - [ - "CS50x", - "PH207x", - "3.091x", - "6.002x", - "6.00x", - "8.01esg", - "8.01rq_MW", - "8.02teal", - "8.02x", - "edx4edx", - "toy", - "templates" - ] - -- Find a problem which has the word "quantum" in its definition - - db.modulestore.findOne( {"definition.data":/quantum/})n - -- Find Location for all problems with the word "quantum" in its definition - - db.modulestore.find( {"definition.data":/quantum/}, {'_id':1}) - -- Number of problems in each course - - db.runCommand({ - mapreduce: "modulestore", - query: { '_id.category': 'problem' }, - map: function(){ emit(this._id.course, {count:1}); }, - reduce: function(key, values){ - var result = {count:0}; - values.forEach(function(value) { - result.count += value.count; - }); - return result; - }, - out: 'pbyc', - verbose: true - }); - - produces: - - > db.pbyc.find() - { "_id" : "3.091x", "value" : { "count" : 184 } } - { "_id" : "6.002x", "value" : { "count" : 176 } } - { "_id" : "6.00x", "value" : { "count" : 147 } } - { "_id" : "8.01esg", "value" : { "count" : 184 } } - { "_id" : "8.01rq_MW", "value" : { "count" : 73 } } - { "_id" : "8.02teal", "value" : { "count" : 5 } } - { "_id" : "8.02x", "value" : { "count" : 99 } } - { "_id" : "PH207x", "value" : { "count" : 25 } } - { "_id" : "edx4edx", "value" : { "count" : 50 } } - { "_id" : "templates", "value" : { "count" : 11 } } diff --git a/docs/en_us/internal/mongo_indexes.md b/docs/en_us/internal/mongo_indexes.md deleted file mode 100644 index df8ce78ce5..0000000000 --- a/docs/en_us/internal/mongo_indexes.md +++ /dev/null @@ -1,60 +0,0 @@ -These are the indexes each mongo db should have in order to perform well. -Each section states the collection name and then the indexes. To create an index, -you'll typically either use the mongohq type web interface or a standard terminal console. -If a terminal, this assumes you've logged in and gotten to the mongo prompt -``` -mongo mydatabasename -``` - -If using the terminal, to add an index to a collection, you'll need to prefix ```ensureIndex``` with -``` -db.collection_name -``` -as in ```db.location_map.ensureIndex({'course_id': 1}{background: true})``` - -fs.files: -========= - -Index needed thru 'category' by `_get_all_content_for_course` and others. That query also takes a sort -which can be `uploadDate`, `display_name`, - -Replace existing index which leaves out `run` with this one: -``` -ensureIndex({'_id.org': 1, '_id.course': 1, '_id.name': 1}, {'sparse': true}) -ensureIndex({'content_son.org': 1, 'content_son.course': 1, 'content_son.name': 1}, {'sparse': true}) -ensureIndex({'_id.org': 1, '_id.course': 1, 'uploadDate': 1}, {'sparse': true}) -ensureIndex({'_id.org': 1, '_id.course': 1, 'display_name': 1}, {'sparse': true}) -ensureIndex({'content_son.org': 1, 'content_son.course': 1, 'uploadDate': 1}, {'sparse': true}) -ensureIndex({'content_son.org': 1, 'content_son.course': 1, 'display_name': 1}, {'sparse': true}) -``` - -modulestore: -============ - -Mongo automatically indexes the ```_id``` field but as a whole. Thus, for queries against modulestore such -as ```modulestore.find({'_id': {'tag': 'i4x', 'org': 'myu', 'course': 'mycourse', 'category': 'problem', 'name': '221abc', 'revision': null}})``` -where every field in the id is given in the same order as the field is stored in the record in the db -and no field is omitted. - -Because we often query for some subset of the id, we define this index: - -``` -ensureIndex({'_id.org': 1, '_id.course': 1, '_id.category': 1, '_id.name': 1}) -``` - -Because we often scan for all category='course' regardless of the value of the other fields: -``` -ensureIndex({'_id.category': 1}) -``` - -Because lms calls get_parent_locations frequently (for path generation): -``` -ensureIndex({'definition.children': 1}, {'sparse': true}) -``` - -modulestore.active_versions -=========================== - -``` -ensureIndex({'org': 1, 'course': 1, 'run': 1}, {'unique': true}) -``` diff --git a/docs/en_us/internal/overview.md b/docs/en_us/internal/overview.md deleted file mode 100644 index fad76ba30b..0000000000 --- a/docs/en_us/internal/overview.md +++ /dev/null @@ -1,142 +0,0 @@ -# Documentation for edX code (edx-platform repo) - -This document explains the general structure of the edX platform, and defines some of the acronyms and terms you'll see flying around in the code. - -## Assumptions: - -You should be familiar with the following. If you're not, go read some docs... - - - [python](http://docs.python.org) - - [django](http://docs.djangoproject.com) - - javascript - - html, xml -- xpath, xslt - - css - - [git](http://git-scm.com/documentation) - - [mako templates](http://www.makotemplates.org/docs) -- we use these instead of django templates, because they support embedding real python. - -## Other relevant terms - - - CAPA -- lon-capa.org -- content management system that has defined a standard for online learning and assessment materials. Many of our materials follow this standard. - - TODO: add more details / link to relevant docs. lon-capa.org is not immediately intuitive. - - lcp = loncapa problem - - -## Parts of the system - - - LMS -- Learning Management System. The student-facing parts of the system. Handles student accounts, displaying videos, tutorials, exercies, problems, etc. - - - CMS -- Course Management System. The instructor-facing parts of the system. Allows instructors to see and modify their course, add lectures, problems, reorder things, etc. - - - Forums -- this is a ruby on rails service that runs on Heroku. Contributed by berkeley folks. The LMS has a wrapper lib that talks to it. - - - Data. In the data/ dir. There is currently a single `course.xml` file that describes an entire course. Speaking of which... - - - Courses. A course is broken up into Chapters ("week 1", "week 2", etc). A chapter is broken up into Sections ("Lecture 1", "Simple Circuits Exercises", "HW1", etc). A section can contain modules: Problems, Html, Videos, Verticals, or Sequences. - - Problems: specified in problem files. May have python scripts embedded to both generate random parameters and check answers. Also allows specifying things like tolerance or precision in answers - - Html: any html - often description, or links to outside resources - - Videos: links to youtube or elsewhere - - Verticals: a nesting tag: collect several videos, problems, html modules and display them vertically. - - Sequences: a sequence of modules, displayed with a horizontal navigation bar, displaying one component at a time. - - see `data/course.xml` for more examples - - -## High Level Entities in the code - -### Common libraries - -- xmodule: generic learning modules. *x* can be sequence, video, template, html, - vertical, capa, etc. These are the things that one puts inside sections - in the course structure. - - - XModuleDescriptor: This defines the problem and all data and UI needed to edit - that problem. It is unaware of any student data, but can be used to retrieve - an XModule, which is aware of that student state. - - - XModule: The XModule is a problem instance that is particular to a student. It knows - how to render itself to html to display the problem, how to score itself, - and how to handle ajax calls from the front end. - - - Both XModule and XModuleDescriptor take system context parameters. These are named - ModuleSystem and DescriptorSystem respectively. These help isolate the XModules - from any interactions with external resources that they require. - - For instance, the DescriptorSystem has a function to load an XModuleDescriptor - from a Location object, and the ModuleSystem knows how to render things, - track events, and complain about 404s - - - XModules and XModuleDescriptors are uniquely identified by a Location object, encoding the organization, course, category, name, and possibly revision of the module. - - - XModule initialization: XModules are instantiated by the `XModuleDescriptor.xmodule` method, and given a ModuleSystem, the descriptor which instantiated it, and their relevant model data. - - - XModuleDescriptor initialization: If an XModuleDescriptor is loaded from an XML-based course, the XML data is passed into its `from_xml` method, which is responsible for instantiating a descriptor with the correct attributes. If it's in Mongo, the descriptor is instantiated directly. The module's attributes will be present in the `model_data` dict. - - - `course.xml` format. We use python setuptools to connect supported tags with the descriptors that handle them. See `common/lib/xmodule/setup.py`. There are checking and validation tools in `common/validate`. - - - the xml import+export functionality is in `xml_module.py:XmlDescriptor`, which is a mixin class that's used by the actual descriptor classes. - - - There is a distinction between descriptor _definitions_ that stay the same for any use of that descriptor (e.g. here is what a particular problem is), and _metadata_ describing how that descriptor is used (e.g. whether to allow checking of answers, due date, etc). When reading in `from_xml`, the code pulls out the metadata attributes into a separate structure, and puts it back on export. - - - in `common/lib/xmodule` - -- capa modules -- defines `LoncapaProblem` and many related things. - - in `common/lib/capa` - -### LMS - -The LMS is a django site, with root in `lms/`. It runs in many different environments--the settings files are in `lms/envs`. - -- We use the Django Auth system, including the is_staff and is_superuser flags. User profiles and related code lives in `lms/djangoapps/student/`. There is support for groups of students (e.g. 'want emails about future courses', 'have unenrolled', etc) in `lms/djangoapps/student/models.py`. - -- `StudentModule` -- keeps track of where a particular student is in a module (problem, video, html)--what's their grade, have they started, are they done, etc. [This is only partly implemented so far.] - - `lms/djangoapps/courseware/models.py` - -- Core rendering path: - - `lms/urls.py` points to `courseware.views.views.index`, which gets module info from the course xml file, pulls list of `StudentModule` objects for this user (to avoid multiple db hits). - - - Calls `render_accordion` to render the "accordion"--the display of the course structure. - - - To render the current module, calls `module_render.py:render_x_module()`, which gets the `StudentModule` instance, and passes the `StudentModule` state and other system context to the module constructor the get an instance of the appropriate module class for this user. - - - calls the module's `.get_html()` method. If the module has nested submodules, render_x_module() will be called again for each. - - - ajax calls go to `module_render.py:handle_xblock_callback()`, which passes it to one of the `XBlock`s handler functions - -- See `lms/urls.py` for the wirings of urls to views. - -- Tracking: there is support for basic tracking of client-side events in `lms/djangoapps/track`. - -### CMS - -The CMS is a django site, with root in `cms`. It can run in a number of different -environments, defined in `cms/envs`. - -- Core rendering path: Still TBD - -### Static file processing - -- CSS -- we use a superset of CSS called SASS. It supports nice things like includes and variables, and compiles to CSS. The compiler is called `sass`. - -- javascript -- we use coffeescript, which compiles to js, and is much nicer to work with. Look for `*.coffee` files. We use _jasmine_ for testing js. - -- _mako_ -- we use this for templates, and have wrapper called edxmako that makes mako look like the django templating calls. - -We use a fork of django-pipeline to make sure that the js and css always reflect the latest `*.coffee` and `*.sass` files (We're hoping to get our changes merged in the official version soon). This works differently in development and production. Test uses the production settings. - -In production, the django `collectstatic` command recompiles everything and puts all the generated static files in a static/ dir. A starting point in the code is `django-pipeline/pipeline/packager.py:pack`. - -In development, we don't use collectstatic, instead accessing the files in place. The auto-compilation is run via `common/djangoapps/pipeline_mako/templates/static_content.html`. Details: templates include `<%namespace name='static' file='static_content.html'/>`, then something like `<%static:css group='application'/>` to call the functions in `common/djangoapps/pipeline_mako/__init__.py`, which call the `django-pipeline` compilers. - -## Testing - -See `testing.rst`. - -## TODO: - -- describe our production environment - -- describe the front-end architecture, tools, etc. Starting point: `lms/static` - ---- -Note: this file uses markdown. To convert to html, run: - - markdown2 overview.md > overview.html diff --git a/docs/en_us/internal/persistence.rst b/docs/en_us/internal/persistence.rst deleted file mode 100644 index 54551b292b..0000000000 --- a/docs/en_us/internal/persistence.rst +++ /dev/null @@ -1,658 +0,0 @@ - - - -This document describes the split mongostore representation which -separates course structure from content where each course run can have -its own structure. It does not describe the original mongostore -representation which combined structure and content and used the key -to distinguish draft from published elements. - -This document does not describe mongo nor its operations. See -`http://www.mongodb.org/`_ for information on Mongo. - - - -Product Goals and Discussion ----------------------------- - -(Mark Chang) - -This work was instigated by the studio team's need to correctly do -metadata inheritance. As we moved from an on-startup load of the -courseware, the system was able to inflate and perform an inheritance -calculation step such that the intended properties of children could -be set through inheritance. While not strictly a requirement from the -studio authoring approach, where inheritance really rears its head is -on import of existing courseware that was designed assuming -inheritance. - -A short term patch was applied that allowed inheritance to act -correctly, but it was felt that it was insufficient and this would be -an opportunity to make a more clean datastore representation. After -much difficulty with how draft objects would work, Calen Pennington -worked through a split data store model ala FAT filesystem (Mark's -metaphor, not Cale's) to split the structure from the content. The -goal would be a sea of content documents that would not know about the -structure they were utilized within. Cale began the work and handed it -off to Don Mitchell. - -In the interim, great discussion was had at the Architect's Council -that firmed up the design and strategy for implementation, adding -great richness and completeness to the new data structure. - -The immediate -needs are two, and only two. - - -#. functioning metadata inheritance -#. good groundwork for versioning - - -While the discussions of the atomic unit of courseware available for -sharing, how these are shared, and how they refer back to the parent -definition are all valuable, they will not be built in the near term. I -understand and expect there to be many refactorings, improvements, and -migrations in the future. - -I fully anticipate much more detail to be uncovered even in this first -thin implementation. When that happens, we will need as much advice -from those watching this page to make sure we move in the right -direction. We also must have the right design artifacts to document -where we stand relative to the overall design that has loftier goals. - - -Representation --------------- - -The xmodule collections: - - -+ `modulestore.active_versions`: this collection maps the org, course, - and run to the current draft and published versions of the course. -+ `modulestore.structures`: this collection has one entry per course - run and one for the template. -+ `modulestore.definitions`: this collection has one entry per - "module" or "block" version. - -modulestore.active_versions: 2 simple maps for dereferencing the -correct course from the structures collection. Every course run will -have a draft version. Not every course run will have a published -version. No course run will have more than one of each of these. - -:: - - { '_id' : uniqueid, - 'versions' : { : versionGuid, ..} - 'creator' : user_id, - 'created' : date (native mongo rep) - } - -:: - - - -+ `id` is a unique id for finding this course run. It's a - location-reference string, like 'edu.mit.eng.eecs.6002x.industry.spring2013'. -+ `versions`: These are references to `modulestore.structures`. A - location-reference like - `edu.mit.eng.eecs.6002x.industry.spring2013;draft` refers to the value - associated with `draft` for this document. - - + `versionName` is `draft`, `published`, or another user-defined - string. - + `versionGuid` is a system generated globally unique id (hash). It - points to the entry in `modulestore.structures` ` ` - - - -`draftVersion`: the design will try to generate a new draft version -for each change to the course object: that is, for each move, -deletion, node creation, or metadata change. Cloning a course -(creating a new run of a course or such) will create a new entry in -this table with just a `draftVersion` and will cause a copy of the -corresponding entry in `modulestore.structures`. The entry in -`structures` will point to its version parent in the source course. - - - - -modulestore.structures : the entries in this collection follow this -definition: - -:: - - { '_id' : course_guid, - 'blocks' : - { block_guid : // the guid is an arbitrary id to represent this node in the course tree - { 'children' : [ block_guid* ], - 'metadata' : { property map }, - 'definition' : definition_guid, - 'category' : 'section' | 'sequence' | ... } - - -:: - - ...// more guids - - -:: - - }, - 'root' : block_guid, - 'original' : course_guid, // the first version of this course from which all others were derived - 'previous' : course_guid | null, // the previous revision of this course (null if this is the original) - 'version_entry' : uniqueid, // from the active_versions collection - 'creator' : user_id - } - - - -+ `blocks`: each block is a node in the course such as the course, a - section, a subsection, a unit, or a component. The block ids remain - the same over edits (they're not versioned). -+ `root`: the true top of the course. Not all nodes without parents - are truly roots. Some are orphans. -+ `course_guid, block_guid, definition_guid` are not those specific - strings but instead some system generated globally unique id. - - + The one which gets passed around and pointed to by urls is the - `block_guid`; so, it will be the one the system ensures is readable. - Unlike the other guids, this one stays the same over revisions and can - even be the same between course runs (although the course run - contextualizes it to distinguish its instantiated version). - -+ `definition` points to the specific revision of the given element in - `modulestore.definitions` which this version of the course includes. -+ `children` lists the block_guids which are the children of this node - in the course tree. It's an error if the guid in the `children` list - does not occur in the `blocks` dictionary. -+ `metadata` is the node's explicitly defined metadata some of which - may be inherited by its children - - -For debugging purposes, there may be value in adding a courseId field -(org, course, run) for use via db browsers. - -modulestore.definitions : the data associated with each version of -each node in the structures. Many courses may point to the same -definition or may point to different versions derived from the same -original definition. - -:: - - { '_id' : guid, - 'data' : .., - 'default_settings' : {'display_name':..,..}, // a starting point for new uses of this definition - 'category' : xblocktype, // the xmodule/xblock type such as course, problem, html, video, about - 'original' : guid, // the first kept version of this definition from which all others were derived - 'previous' : guid | null, // the previous revision of this definition (null if this is the original) - 'creator' : user_id // the id of whomever pressed the draft or publish button - } - - - -+ `_id`: a guid to uniquely identify the definition. -+ `data` is the payload used by the xmodule and following the - xmodule's data representation. -+ `category` is the xmodule type and used to figure out which xmodule - to instantiate. - - -There may be some debugging value to adding a courseId field, but it -may also be misleading if the element is used in more than one course. - - -Templates -~~~~~~~~~ - -(I'm refactoring templates quite a bit from their representation prior -to this design) - -All field defaults will be defined through the xblock field.default -mechanism. Templates, otoh, are for representing optional boilerplate -usually for examples such as a multiple-choice problem or a video -component with the fields all filled in. Templates are stored in yaml -files which provide a template name, sorting and filtering information -(e.g., requires advanced editor v allows simple editor), and then -field: value pairs for setting xblocks' fields upon template -selection. - -Most of the pre-existing templates including all of the 'empty' ones -will go away. The ones which will stay are the ones truly just giving -examples or starting points for variants. This change will require -that the template choice code provide a default 'blank' choice to the -user which just instantiates the model w/ its defaults versus a choice -of the boilerplates. The client can therefore populate its own model -of the xblock and then send a create-item request to the server when -the user says he/she's ready to save it. - - -Import/export -~~~~~~~~~~~~~ - -Export should allow the user to select the version of the course to -export which can be any of the draft or published versions. At a -minimum, the user should choose between draft or published. - -Import should import the course as a draft course regardless of -whether it was exported as a published or draft one, I believe. If -there's already a draft for the same course, in the best of all -worlds, it would have the guid to see if the guid exists in the -structures collection, and, if so, just make that the current -draftVersion (don't do any actual data changes). If there's no guid or -the guid doesn't exist in the structures collection, then we'll need -to work out the logic for how to decide what definitions to create v -update v point to. - - -Course ID -~~~~~~~~~ - -Currently, we use a triple to identify a run of a course. The triple -is organization, course name, and run identity (e.g., 2013Q1). The -system does not care what the id consists of only that it uniquely -identify an edition of the course. The system uses this id to organize -the course composition and find the course elements. It distinguishes -between a current being-edited version (aka, draft) and publicly -viewable version (published). Not every course has a published -version, but every course will have a draft version. The application -specifies whether it wants the draft or published version. This system -allows the application to easily switch between the 2; however, it -will have a configuration in which it's impossible to access the draft -so that we can add access optimizations and extraction filtering later -if needed. - - -Location -~~~~~~~~ - -The purpose of `Location` is to identify content. That is, to be able -to locate content by providing sufficient addressing. The `Location` -object is ubiquitous throughout the current code and thus will be -difficult to adapt and make more flexible. Right now, it's a very -simple `namedtuple` and a lot of code presumes this. This refactoring -generalizes and subclasses it to handle various addressing schemes and -remove direct manipulations. - -Our code needs to locate several types of things and should probably -use several different types of locators for these. These are the types -of things we need to address. Some of these can be the same as others, -but I wanted to lay them out fairly fine grained here before proposing -my distinctions: - - -#. Courses: an object representing a course as an offering but not any - of its content. Used for dashboards and other such navigators. These - may specify a version or merely reference the idea of the course's - existence. -#. Course structures: the names (and other metadata), `Locations`, and - children pointers but not definitions for all the blocks in a course - or a subtree of a course. Our applications often display contextual, - outline, or other such structural information which do not need to - include definitions but need to show display names, graded as, and - other status info. This document's design makes fetching these a - single document fetch; however, if it has to fetch the full course, it - will require far more work (getting all definitions too) than the apps - need. -#. Blocks (uses of definitions within a version of a course including - metadata, pointers to children, and type specific content) -#. Definitions: use independent definitions of content without - metadata (and currently w/o pointers to children). -#. Version trees Fetching the time history portrayal of a definition, - course, or block including branching. -#. Collections of courses, definitions, or blocks matching some - partial descriptors (e.g., all courses for org x, all definitions of - type foo, all blocks in course y of type x, all currently accessible - courses (published with startdate < today and enddate > today)). -#. Fetching of courses, blocks, or definitions via "human readable" - urls. -#. (partial descriptors) may suffice for this as human readable - does not guarantee uniqueness. - - -Some of these differ not so much in how to address them but in what -should be returned. The content should be up to the functions not the -addressing scheme. So, I think the addressable things are: - - -#. Course as in #1 above: usually a specific offering of a course. - Often used as a context for the other queries. -#. Blocks (aka usages) as in #3 above: a specific block contextualized - in a course -#. Definitions (#4): a specific definition -#. Collections of courses, blocks within a specific course, or - definitions matching a partial descriptor - - - -Course locator (course_loc) -``````````````````````````` - -There are 3 ways to locate a course: - - -#. By its unique id in the `active_versions` collection with an - implied or specified selection of draft or published version. -#. By its unique id in the `structures` collection. - - - -Block locator (block_loc) -````````````````````````` - -A block locator finds a specific node in a specific version of a -course. Thus, it needs a course locator plus a `usage_id`. - - -Definition locator (definition_loc) -``````````````````````````````````` - -Just a `guid`. - - -Partial descriptor collections locators (partial) -````````````````````````````````````````````````` - -In the most general case, and to simplify implementation, these can be -any payload passable to mongo for doing the lookup. The specification -of which collection to look into can be implied by which lookup -function your code calls (get_courses, get_blocks, get_definitions) or -we could add it as another property. For now, I will leave this as -merely a search string. Thus, to find all courses for org = mitx, -`{"org": "mitx"}`. To find all blocks in a course whose display name -contains "circuit example", call `get_blocks` with the course locator -plus `{"metadata.display_name" : /circuit example/i}` (the i makes it -case insensitive and is just an example). To find if a definition is -used in a course, call get_blocks with the course locator plus -`{definition : definition_guid}`. Note, this looks for a specific -version of the definition. If you wanted to see if it used any of a -set of versions, use `{definition : {"$in" : [definition_guid*]}}` - - -i4x locator -``````````` - -To support existing xml based courses and any urls, we need to -support i4x locators. These are tuples of `(org course category id -['draft'])`. The trouble with these is that they don't uniquely -identify a course run from which to dereference the element. There's -also no requirement that `id` have any uniqueness outside the scope of -the other elements. There's some debate as to whether these address -blocks or definitions. To mean, they seem to address blocks; however, -in the current system there is no distinction between blocks and -definitions; so, either could be argued. - -This version will define an `i4x_location` class for representing -these and using them for xml based courses if necessary. - -Current code munges strings to make them 'acceptable' by replacing -'illegal' chars with underscores. I'd like to suggest leaving strings -as is and using url escaping to make acceptable urls. As to making -human readable names from display strings, that should be the -responsibility of the naming module not the Location representation, -imo. - - -Use cases (expository) -~~~~~~~~~~~~~~~~~~~~~~ - -There's a section below walking through a specific use case. This one -just tries to review potential functionality. - - -Inheritance -``````````` - -Our system has the notion of policies which should control the -behavior of whole courses or subtrees within courses. Such policies -include graceperiods, discussion forum controls, dates, whether to -show answers, how to randomize, etc. It's important that the course -authors' intent propagates to all relevant course sections. The -desired behavior is that (some? all?) metadata attributes on modules -flow down to all children unless overridden. - -This design addresses inheritance by making course structure and -metadata separate from content thus enabling a single or small number -of db queries to get these and then compute the inheritance. - - -Separating editing from live production -``````````````````````````````````````` - -Course authors should be able to make changes in isolation from -production and then push out consistent chunks of changes for all -students to see as atomic and consistent. The current system allows -authors to change text and content without affecting production but -not metadata nor course structure. This design separates all changes -from production until pushed. - - -Sharing of content, part 1 -`````````````````````````` - -Authors want to share content between course runs and even between -different courses. The current system requires copying all such -content and losing the providence information which could be used to -take advantage of other peoples' changes. This design allows multiple -courses and multiple places within a course to point to the same -definitions and thus potentially, at some day, see other changes to -the content. - - -Sharing of content, part 2: course structure -```````````````````````````````````````````` - -Because courses structures are separate from their identities, courses -can share structure and track changes in the same way as definitions. -That is, a new course run can point to an existing course instance -with its version history and then branch it from there. - - -Sharing of content, part 3: modules -``````````````````````````````````` - -Suppose a course includes a soldering tutorial (or a required lab -safety lesson). Other courses want to use the same tutorial and -possibly allow the student to skip it if the student succeeded at it -in another course. As the tutorial updates, other courses may want to -track the updates or choose to move to the updates without having to -copy the modules from the module's authoritative parent course. - -This design enables sharing of composed modules but it does not track -the revisions of those modules separately from their courses. It does -not adequately address this but may be extendible enough to do so. -That is, we could represent these shared units as separate "courses" -and allow ids in block.children[] to point to courses as well as other -blocks in the same course. - -We should decide on the behaviors we want. Such as, some times the -student has to repeat the content or the student never has to repeat -it or? progress should be tracked by the owning course or as a stand -alone minicourse type element? Because it's a safety lesson, all -courses should track the current published head and not have their own -heads or they should choose when to promote the head? - -Are these shared elements rare and large grained enough to make the -indirection not expensive or will it result in devolving to the -current one entry per module design for deducing course structure? - - -Functional differences from existing modulestore: -------------------------------------------------- - - -+ Courses and definitions support trees of versions knowing from where - they were derived. For now, I will not implement the server functions - for retrieving and manipulating these version trees and will leave - those for a future effort. I will only implement functions which - extend the trees. -+ Changes to course structure don't immediately affect production: - note, we need to figure out the granularity of the user's publish - behavior for pushing out these actions. That is, do they publish a - whole subtree which may include new children in order to make these - effective, do they publish all structural (deletion, move) changes - under a subtree but not insertions as an action, do they publish each - action individually, or what? How do they know that any of these are - not yet published? Do we have phantom placeholders for deleted nodes - w/ "publish deletion" buttons? - - + Element deletion - + Element move - + metadata changes - -+ No location objects used as ids! This implementation will use guids - instead. There's a reasonable objection to guids as being too ugly, - long, and indecipherable. I will check mongy, pymongo, and python guid - generation mechanisms to find out if there's a way to make ones which - include a prepended string (such as course and run or an explicitly - stated prepend string) and minimize guid length (e.g., by using - sequential serial # from a global or local pool). - - - -Use case walkthrough: ---------------------- - -Simple course creation with no precursor course: Note, this shows that -publishing creates subsets and side copies not in line versions of -nodes. -user db create course for org, course id, run id -active_versions.draftVersion: add entry -definitions: add entry C w/ category = 'course', no data -structures: add entry w/ 1 child C, original = self, no previous, -author = user -add section S copy structures entry, new one points to old as original -and previous -active_versions.draftVersion points to new -definitions: add entry S w/ category = 'section' -structures entry: - -+ add S to children of the course block, - - - -+ add S to blocks w/ no children - -add subsection T copy structures entry, new one points to old as -original and previous -active_versions.draftVersion points to new -definitions: add entry T w/ category = 'sequential' -structures entry: - -+ add T to children of the S block entry, - - - -+ add T to blocks w/ no children - -add unit U copy structures entry, new one points to old as original -and previous -active_versions.draftVersion points to new -definitions: add entry U w/ category = 'vertical' -structures entry: - -+ add U to children of the T block entry, - - - -+ add U to blocks w/ no children - -publish U -create structures entry, new one points to self as original (no -pointer to draft course b/c it's not really a clone) -active_versions.publishedVersion points to new -block: add U, T, S, C pointers with each as respective child -(regardless of other children they may have in draft), and their -metadata -add units V, W, X under T copy structures entry of the draftVersion, -new one points to old as original and previous -active_versions.draftVersion points to new -definitions: add entries V, W, X w/ category = 'vertical' -structures entry: - -+ add V, W, X to children of the T block entry, - - - -+ add V, W, X to blocks w/ no children - -edit U copy structures entry, new one points to old as original and -previous -active_versions.draftVersion points to new -definitions: copy entry U to U_2 w/ updates, U_2 points to U as -original and previous -structures entry: - -+ replace U w/ U_2 in children of the T block entry, - - - -+ copy entry U in blocks to entry U_2 and remove U - -add subsection Z under S copy structures entry, new one points to old -as original and previous -active_versions.draftVersion points to new -definitions: add entry Z w/ category = 'sequential' -structures entry: - -+ add Z to children of the S block entry, - - - -+ add Z to blocks w/ no children - -edit S's name (metadata) copy structures entry, new one points to old -as original and previous -active_versions.draftVersion points to new -structures entry: update S's metadata w/ new name publish U, V copy -publishedCourse structures entry, new one points to old published as -original and previous -active_versions.publishedVersion points to new -block: update T to point to new U & V and not old U -Note: does not update S's name publish C copy publishedCourse -structures entry, new one points to old published as original and -previous -active_versions.publishedVersion points to new -blocks: note that C child S == published(S) but metadata !=, update -metadata -note that S has unpublished children: publish them (recurse on this) -note that Z is unpublished: add pointer to blocks and children of S -note that W, X unpublished: add to blocks, add to children of T edit C -metadata (e.g., graceperiod) copy draft structures entry, new one -points to old as original and previous -active_versions.draftVersion points to new -structures entry: update C's metadata add Y under Z ... publish C's -metadata change copy publishedCourse structures entry, new one points -to old published as original and previous -active_versions.publishedVersion points to new -blocks: update C's metadata -Note: no copying of Y or any other changes to published move X under Z -copy draft structures entry, new one points to old as original and -previous -active_versions.draftVersion points to new -structures entry: remove X from T's children and add to Z's -Note: making it persistently clear to the user that X still exists -under T in the published version will be crucial delete W copy draft -structures entry, new one points to old as original and previous -active_versions.draftVersion points to new -structures entry: remove W from T's children and remove W from blocks -Note: no actual deletion of W, just no longer reachable w/in the draft -course, but still in published; so, need to keep user aware of that. -publish Z Note: the interesting thing here is that X cannot occur -under both Z and T, but the user's not publishing T, here's where -having a consistent definition of original may help. If the original -of a new element == original of an existing, then it's an update? -copy publishedCourse entry... -definitions: add Y, copy/update Z, X if either have any data changes -(they don't) -blocks: remove X from T's children and add to Z's, add Y to Z, add Y -publish deletion of W copy publishedCourse entry... -structures entry: remove W from T's children and remove W from blocks -Conflict detection: - -Need a scenario where 2 authors make edits to different parts of -course, to parts while parents being moved, while parents being -deleted, to same parts, ... - -.. _http://www.mongodb.org/: http://www.mongodb.org/ - diff --git a/docs/en_us/internal/remote_gradebook.md b/docs/en_us/internal/remote_gradebook.md deleted file mode 100644 index 39dd946f27..0000000000 --- a/docs/en_us/internal/remote_gradebook.md +++ /dev/null @@ -1,47 +0,0 @@ -Grades can be pushed to a remote gradebook, and course enrollment membership can be pulled from a remote gradebook. This file documents how to setup such a remote gradebook, and what the API should be for writing new remote gradebook "xservers". - -1. Definitions - -An "xserver" is a web-based server that is part of the edX ecosystem. There are a number of "xserver" programs, including one which does python code grading, an xqueue server, and graders for other coding languages. - -"Stellar" is the MIT on-campus gradebook system. - -2. Setup - -The remote gradebook xserver should be specified in the lms.envs configuration using - - FEATURES[REMOTE_GRADEBOOK_URL] - -Each course, in addition, should define the name of the gradebook being used. A class "section" may also be specified. This goes in the policy.json file, eg: - - "remote_gradebook": { - "name" : "STELLAR:/project/edxdemosite", - "section" : "r01" - }, - -3. The API for the remote gradebook xserver is an almost RESTful service model, which only employs POSTs, to the xserver url, with form data for the fields: - - - submit: get-assignments, get-membership, post-grades, or get-sections - - gradebook: name of gradebook - - user: username of staff person initiating the request (for logging) - - section: (optional) name of section - -The return body content should be a JSON string, of the format {'msg': message, 'data': data}. The message is displayed in the instructor dashboard. - -The data is a list of dicts (associative arrays). Each dict should be key:value. - -## For submit=post-grades: - -A file is also posted, with the field name "datafile". This file is CSV format, with two columns, one being "External email" and the other being the name of the assignment (that column contains the grades for the assignment). - -## For submit=get-assignments - -data keys = "AssignmentName" - -## For submit=get-membership - -data keys = "email", "name", "section" - -## For submit=get-sections - -data keys = "SectionName" diff --git a/docs/en_us/internal/testing.md b/docs/en_us/internal/testing.md deleted file mode 100644 index 72436049fe..0000000000 --- a/docs/en_us/internal/testing.md +++ /dev/null @@ -1 +0,0 @@ -This document has moved to [testing.rst](./testing.rst). diff --git a/docs/en_us/platform_api/Makefile b/docs/en_us/platform_api/Makefile deleted file mode 100644 index 1c3d99965a..0000000000 --- a/docs/en_us/platform_api/Makefile +++ /dev/null @@ -1,164 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS ?= -W -SPHINXBUILD ?= sphinx-build -PAPER ?= -BUILDDIR ?= build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -Q_FLAG = - -ifeq ($(quiet), true) -Q_FLAG = -Q -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = $(Q_FLAG) -d $(BUILDDIR)/doctrees -c source $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/edX.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/edX.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/edX" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/edX" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/en_us/platform_api/__init__.py b/docs/en_us/platform_api/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en_us/platform_api/requirements.txt b/docs/en_us/platform_api/requirements.txt deleted file mode 100644 index c021860b9d..0000000000 --- a/docs/en_us/platform_api/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -path.py -Django >=1.8,<1.9 -django-simple-history==1.6.3 -pytz -git+https://github.com/edx/XBlock.git#egg=XBlock -git+https://github.com/edx/django-rest-framework-oauth.git@f0b503fda8c254a38f97fef802ded4f5fe367f7a#egg=djangorestframework_oauth-master -lxml -Babel -lazy -sphinxcontrib-napoleon==0.2.6 -sphinx_rtd_theme -stevedore==0.14.1 -djangorestframework==3.2.3 -PyYAML>=3.10 -mock -django-model-utils==2.3.1 diff --git a/docs/en_us/platform_api/source/__init__.py b/docs/en_us/platform_api/source/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/en_us/platform_api/source/_static/homepage-bg.jpg b/docs/en_us/platform_api/source/_static/homepage-bg.jpg deleted file mode 100644 index 0193dbbf58a1053cd61fcfc5234d9581ff885af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158490 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
(qt&@k)n3?rFO`nvE4{ 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ⅅ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 diff --git a/docs/en_us/platform_api/source/_templates/layout.html b/docs/en_us/platform_api/source/_templates/layout.html deleted file mode 100644 index 66ff998af1..0000000000 --- a/docs/en_us/platform_api/source/_templates/layout.html +++ /dev/null @@ -1,5 +0,0 @@ -{% extends "!layout.html" %} - -{% block header %} -Edx logo -{% endblock %} \ No newline at end of file diff --git a/docs/en_us/platform_api/source/authentication.rst b/docs/en_us/platform_api/source/authentication.rst deleted file mode 100644 index 3b971ae635..0000000000 --- a/docs/en_us/platform_api/source/authentication.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _edX API Authentication: - -############################# -EdX API Authentication -############################# - -************* -OAuth 2.0 -************* - -The edX Platform APIs use OAuth 2.0 for authentication. OAuth 2.0 is an open -standard used by many systems that require secure user authentication. See the -`OAuth 2.0 Standard`_ for more information. - -*************************************** -Registering with Your Open edX Instance -*************************************** - -To use the edX Platform API with courses on your instance of Open edX, you must -register your application with the Open edX server. See the OAuth 2.0 -specification for details. - -.. include:: links.rst diff --git a/docs/en_us/platform_api/source/change_log.rst b/docs/en_us/platform_api/source/change_log.rst deleted file mode 100644 index b3fed62749..0000000000 --- a/docs/en_us/platform_api/source/change_log.rst +++ /dev/null @@ -1,29 +0,0 @@ -############ -Change Log -############ - -***************** -2015 -***************** - -.. list-table:: - :widths: 10 70 - :header-rows: 1 - - * - Date - - Change - * - 10 June 2015 - - Added documentation for the profile images API. - * - 11 May 2015 - - Updated the :ref:`User API ` to - Version 1.0. - * - - - Added the :ref:`User Preferences API`. - * - 23 April 2015 - - Updated the example responses in the profile images API documentation. - * - 2 April 2015 - - Added documentation for the course structure API, :ref:`edX - Platform Enrollment API` and edX Platform User API Version 0 sections. - * - 29 January 2015 - - Added documentation about changing a user's status in a course to the - profile images API documentation. diff --git a/docs/en_us/platform_api/source/conf.py b/docs/en_us/platform_api/source/conf.py deleted file mode 100644 index 1f0a9f16f8..0000000000 --- a/docs/en_us/platform_api/source/conf.py +++ /dev/null @@ -1,247 +0,0 @@ -# -*- coding: utf-8 -*- -# pylint: disable=invalid-name -# pylint: disable=redefined-builtin -# pylint: disable=protected-access -# pylint: disable=unused-argument - -import os -from path import Path as path -import sys -import mock - -MOCK_MODULES = [ - 'lxml', - 'requests', - 'xblock', - 'xblock.fields', - 'xblock.fragment', - 'webob', - 'webob.multidict', - 'xblock.core', - 'xblock.runtime', - 'sortedcontainers', - 'contracts', - 'xblock.plugin', - 'opaque_keys.edx.asides', - 'dogstats_wrapper', - 'fs', - 'fs.errors', - 'edxmako', - 'edxmako.shortcuts', - 'crum', - 'opaque_keys.edx.locator', - 'ipware', - 'ipware.ip', - 'pygeoip', - 'ipaddr', - 'django_countries', - 'django_countries.fields', - 'opaque_keys', - 'opaque_keys.edx', - 'opaque_keys.edx.keys', - 'opaque_keys.edx.locations', - 'courseware', - 'courseware.access', - 'courseware.model_data', - 'courseware.module_render', - 'courseware.views.views', - 'util.request', - 'eventtracking', - 'xmodule', - 'xmodule.exceptions', - 'xmodule.modulestore', - 'xmodule.modulestore.exceptions', - 'xmodule.modulestore.django', - 'xmodule.fields', - 'courseware.models', - 'milestones', - 'milestones.api', - 'milestones.models', - 'milestones.exceptions', - 'ratelimitbackend', - 'analytics', - 'courseware.courses', - 'django.contrib.staticfiles', - 'django.contrib.staticfiles.storage', - 'xmodule.contentstore', - 'xmodule.contentstore.content', - 'xblock.exceptions', - 'xmodule.seq_module', - 'xmodule.vertical_module', - 'xmodule.x_module', - 'nltk', - 'ratelimitbackend', - 'ratelimitbackend.exceptions', - 'social', - 'social.apps', - 'social.apps.django_app', - 'social.backends', - 'mako', - 'mako.exceptions', - 'boto', - 'boto.exception', - 'PIL', - 'reportlab', - 'reportlab.lib', - 'pdfgen', - 'pdfgen.canvas', - 'reportlab.pdfgen', - 'reportlab.pdfgen.canvas', - 'reportlab.lib.pagesizes', - 'reportlab.lib.units', - 'reportlab.lib.styles', - 'reportlab.platypus', - 'reportlab.platypus.tables', - 'boto.s3', - 'boto.s3.connection', - 'boto.s3.key', - 'Crypto', - 'Crypto.Cipher', - 'Crypto.PublicKey', - 'openid', - 'openid.store', - 'openid.store.interface', - 'openedx.core.djangoapps.external_auth.views', - 'mail_utils', - 'ratelimitbackend.backends', - 'social.apps.django_app.default', - 'social.exceptions', - 'social.pipeline', - 'xmodule.error_module', - 'accounts.api', - 'modulestore.mongo.base', - 'xmodule.modulestore.mongo', - 'xmodule.modulestore.mongo.base', - 'edxval', - 'edxval.api', - 'certificates', - 'certificates.models', - 'certificates.models.GeneratedCertificate', - 'shoppingcart', - 'shopppingcart.models', - 'shopppingcart.api', - 'api', - 'student', - 'student.views', - 'student.forms', - 'student.models', - 'celery', - 'celery.task', - 'student.roles', - 'openedx.core.djangoapps.embargo.models', - 'xmodule.vertical_block', - 'xmodule.course_module', - 'user_api.accounts.api', - 'user_api.accounts.serializers', - 'edx_rest_api_client', - 'edx_rest_api_client.client', - 'edx_rest_api_client.exceptions', - 'student.auth', - 'ccx_keys', - 'ccx_keys.locator', - 'user_api.preferences.api', - 'rest_framework_oauth.authentication', - 'certificates.api', - 'courseware.date_summary', - 'rest_framework_jwt', - 'rest_framework_jwt.authentication', - 'microsite_configuration', - 'xmodule.assetstore', - 'xmodule.assetstore.assetmgr', - 'xmodule.assetstore.assetmgr.AssetManager', - 'xmodule.contentstore.django', - 'piexif', - 'provider', - 'provider.oauth2', - 'oauth2_provider', - 'celery.signals', - 'edx_rest_framework_extensions', - 'edx_rest_framework_extensions.authentication', - 'django_extensions', - 'django_extensions.db', - 'django_extensions.db.models', - 'jsonfield', - 'jsonfield.fields', -] - -for mod_name in MOCK_MODULES: - sys.modules[mod_name] = mock.Mock() - -if "DJANGO_SETTINGS_MODULE" not in os.environ: - docs_path = os.getcwd() - mezzanine_path_parts = (docs_path, "..") - sys.path.insert(0, docs_path) - sys.path.insert(0, os.path.realpath(os.path.join(*mezzanine_path_parts))) - os.environ["DJANGO_SETTINGS_MODULE"] = "docs_settings" - # Django 1.7's setup is required before touching translated strings. - import django - try: - django.setup() - except AttributeError: # < 1.7 - pass - -on_rtd = os.environ.get('READTHEDOCS', None) == 'True' - -sys.path.append('../../../../') -os.environ['DJANGO_SETTINGS_MODULE'] = 'lms.envs.dev' -#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.envs.dev") - -from docs.shared.conf import * - - -# Add any paths that contain templates here, relative to this directory. -#templates_path.append('source/_templates') - - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path.append('source/_static') - -if not on_rtd: # only import and set the theme if we're building docs locally - import sphinx_rtd_theme - html_theme = 'sphinx_rtd_theme' - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -root = path('../../../..').abspath() -sys.path.insert(0, root) -sys.path.append(root / "common/lib/xmodule") -sys.path.append(root / "common/djangoapps") -sys.path.append(root / "lms/djangoapps") -sys.path.append(root / "lms/envs") -sys.path.append(root / "openedx/core/djangoapps") -sys.path.append(root / "openedx/features") - -sys.path.insert( - 0, - os.path.abspath( - os.path.normpath( - os.path.dirname(__file__) + '/../../../' - ) - ) -) -sys.path.append('.') - -# django configuration - careful here -if on_rtd: - os.environ['DJANGO_SETTINGS_MODULE'] = 'lms' -else: - os.environ['DJANGO_SETTINGS_MODULE'] = 'lms' - - -# -- General configuration ----------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [ - 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', - 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', 'sphinxcontrib.napoleon'] - -project = 'Open edX Platform APIs' - -exclude_patterns = ['build', 'links.rst'] diff --git a/docs/en_us/platform_api/source/course_structure/index.rst b/docs/en_us/platform_api/source/course_structure/index.rst deleted file mode 100644 index e1ee80af75..0000000000 --- a/docs/en_us/platform_api/source/course_structure/index.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. _EdX Platform Course Structure API Version 0: - -############################################# -Course Structure API Version 0 (Deprecated) -############################################# - -The course structure API version 0 is deprecated. EdX platform developers -should not implement new client functions that use the course structure API -version 0. - -You can get information about the courses offered by an edX platform -installation by using the ``/api/courses/v1/courses/`` REST endpoint. - -You can get information about the parameters and return values of -``/api/courses/v1/courses`` from the Django REST framework web page for that -endpoint. For example, `https://courses.edx.org/api/courses/v1/courses/`_ provides information about the courses offered by edx.org. - -.. note:: - - The documentation available at `docs.edx.org`_ does not include information - about the ``/api/courses/v1/courses/`` REST endpoint. Developer - documentation for the ``/api/courses/v1/courses/`` is planned in upcoming - documentation releases. - -.. include:: ../links.rst diff --git a/docs/en_us/platform_api/source/courses/blocks.rst b/docs/en_us/platform_api/source/courses/blocks.rst deleted file mode 100644 index 6ee8fe5d52..0000000000 --- a/docs/en_us/platform_api/source/courses/blocks.rst +++ /dev/null @@ -1,290 +0,0 @@ -.. _Courses API Blocks Resource: - -######################################## -Courses API Blocks Resource -######################################## - -With the Courses API **Blocks** resource, you can complete the -following tasks. - - -.. contents:: - :local: - :depth: 1 - -.. _Get a list of the course blocks in a course: - -**************************************** -Get a List of Course Blocks in a Course -**************************************** - -The endpoint to get a list of course blocks in a course is -``/api/courses/v1/blocks/`` with required ``course_id`` parameter. - -===================== -Use Case -===================== - -Get a list of course blocks in a specified course. Response results depend on -the viewing user's permissions level within a course, as well as group -membership and individual allowances (such as due date extensions), if any. - -===================== -Request Format -===================== - -GET /api/courses/v1/blocks/?course_id= - -Example: - -GET /api/courses/v1/blocks/?course_id=edX%2FDemoX%2FDemo_Course -&all_blocks=true&requested_fields=graded,format,student_view_multi_device - - -.. _Blocks Query Parameters: - -===================== -Query Parameters -===================== - -* all_blocks: (boolean) Provide a value of ``true`` to return all - blocks, including those that are visible only to specific learners (for - example, based on group or cohort membership, or randomized content from - content libraries). Returns all blocks only if the requesting user has course - staff permissions. If ``all_blocks`` is not specified, you must specify the - username for the user whose course blocks are requested. - -* block_counts: (list) Specify the types of blocks for which to return a - count. Example: ``block_counts=video,problem``. - -* block_types_filter: (list) Specify the types of blocks to be included in - results. Values are the names of any XBlock type in the system, for example: - ``sequential``, ``vertical``, ``html``, ``problem``, ``video`` or - ``discussion``. Example: ``block_types_filter=problem,html``. - -* course_id: (string, required) The URL-encoded ID of the course whose block - data you are requesting. Example: ``course_id=edX%2FDemoX%2FDemo_Course``. - -* depth: (integer or ``all``) Specify how far in the course blocks hierarchy - to traverse down. A value of ``all`` specifies the entire hierarchy. The - default value is ``0``. Example: ``depth=all``. - -* requested_fields: (list) Specify the fields to return for each block, in - addition to ``id``, ``type``, and ``display_name``, which are always - returned. For the list of possible fields, see the fields listed under - ``blocks`` in the :ref:`Blocks Response Values` section. Example: - ``requested_fields=graded,format,student_view_multi_device``. - -* return_type: (string) Specify the data type in which the block data is - returned. Supported values are ``dict`` and ``list``. The default value is - ``dict``. - -* student_view_data: (list) Specify the types of blocks for which to return - the ``student_view_data`` response value, which consists of a JSON - representation of the block's data. Example: ``student_view_data=video``. - -* username: (string) Required, unless ``all_blocks`` is specified. Specify the - username for the user whose course blocks are requested. Only users with - course staff permissions can specify other users' usernames. If a username - is specified, results include blocks that are visible to that user, - including those based on group or cohort membership or randomized content - assigned to that user. Example: ``username=anjali``. - - -.. _Blocks Response Values: - -===================== -Response Values -===================== - -The following fields are returned with a successful response. - -* root: The ID of the root node of the requested course block structure. - -* blocks: A dictionary or list, based on the value of the ``return_type`` - query parameter. Maps block usage IDs to a collection of information about - each block, as described in the following fields. - - * id: (string) The usage ID of the block. - - * type: (string) The type of block. Values are the names of any XBlock type - in the system, including custom blocks. Examples are: ``course``, - ``chapter``, ``sequential``, ``vertical``, ``html``, ``problem``, - ``video``, and ``discussion``. - - * display_name: (string) The display name of the block. - - * children: (list) If the block has child blocks, an ordered list of IDs of - the child blocks. Returned only if ``children`` is included in the - ``requested_fields`` query parameter. - - * block_counts: (dict) For each block type specified in the ``block_counts`` - query parameter, the aggregate number of blocks of that type within the - root block and all of its descendants. For example, if you specify - ``block_counts=video,problem`` as a query parameter, in the - ``block_counts`` response value the number of video blocks and problem - blocks in the specified block and in its children, is returned. - - * graded: (boolean) Whether or not the block or any of its descendants is - graded. Returned only if ``graded`` is included in the ``requested_fields`` - query parameter. - - * format: (string) The assignment type of the block. Possible values can be - ``Homework``, ``Lab``, ``Midterm Exam``, and ``Final Exam``. Returned only if - ``format`` is included in the ``requested_fields`` query parameter. - - * student_view_data: (dict) The JSON data for this block, if the specified - block type implements the ``student_view_data`` method. The JSON data can - be used to natively render the XBlock. Returned only if the - ``student_view_data`` query parameter contains this block's type. See also - ``student_view_multi_device`` and ``student_view_url``. - - * student_view_multi_device: (boolean) This value indicates whether or not - the HTML of the student view that is rendered at the ``student_view_url`` - supports responsive web layouts, touch-based inputs, and interactive state - management for a variety of device sizes and types, including mobile and - touch devices. Returned only if ``student_view_multi_device`` is included - in the ``requested_fields`` query parameter. - - * student_view_url: (string) The URL to retrieve the HTML rendering of the - block's student view. The HTML can include CSS and Javascript code. This - field can be used in combination with the ``student_view_multi_device`` - field to determine whether a block can be viewed on a device. This URL can - be used as a fallback if the ``student_view_data`` for this block type is - not supported by the client or by the block. - - * lms_web_url: (string) The URL to the navigational container of the XBlock - on the web LMS. This URL can be used as a fallback if the - ``student_view_data`` and ``student_view_url`` fields are not supported. - - * lti_url: (string) The block URL for an LTI consumer. Returned only if the - ``ENABLE_LTI_PROVIDER`` Django setting is set to ``True``. - - -============================================================================ -Example Response Showing a List of Course Blocks in a Specified Course -============================================================================ - -The following example response is returned from this request: - -GET /api/courses/v1/blocks/?course_id=edX/DemoX/Demo_Course&all_blocks=true -&block_counts=video,html,problem&requested_fields=graded,format,student_view_data, -student_view_url,student_view_multi_device&student_view_data=video,html,problem - -Only the top level block in the course is returned, because the ``depth`` -parameter was not specified. - -.. code-block:: json - - { - "root": "i4x://edX/DemoX/course/Demo_Course", - "blocks": { - "i4x://edX/DemoX/course/Demo_Course": { - "display_name": "edX Demonstration Course", - "graded": false, - "student_view_url": "https://courses.edx.org/xblock/i4x://edX/DemoX/ - course/Demo_Course", - "student_view_multi_device": false, - "lms_web_url": "https://courses.edx.org/courses/edX/DemoX/Demo_Course/ - jump_to/i4x://edX/DemoX/ course/Demo_Course", - "type": "course", - "id": "i4x://edX/DemoX/course/Demo_Course", - "block_counts": { - "problem": 23, - "html": 32, - "video": 5 - } - } - } - } - - -.. _Get a list of the course blocks in a block tree: - -********************************************* -Get a List of Course Blocks in a Block Tree -********************************************* - -The endpoint to get a list of course blocks in a specified block tree is -``/api/courses/v1/blocks/{usage_id}/``. - -===================== -Use Case -===================== - -Get a list of course blocks in a specified block tree. Response results depend -on the specified user's permissions level within a course, as well as group -membership and individual allowances (such as due date extensions), if any. - -===================== -Request Format -===================== - -GET /api/courses/v1/blocks/{usage_id}/ - -Example: - -GET /api/courses/v1/blocks/i4x%3A%2F%2FedX%2FDemoX%2Fvertical -%2F2152d4a4aadc4cb0af5256394a3d1fc7?all_blocks=true - - -===================== -Query Parameters -===================== - -:ref:`Query parameters` for this endpoint are the -same as those for :ref:`Get a list of the course blocks in a course`. - - -===================== -Response Values -===================== - -:ref:`Response values` for this endpoint are the same -as those for :ref:`Get a list of the course blocks in a course`. - - -================================================================ -Example Response Showing a List of Course Blocks in a Block Tree -================================================================ - -The following example response is returned from this request: - -GET /api/courses/v1/blocks/i4x%3A%2F%2FedX%2FDemoX%2Fvertical -%2F2152d4a4aadc4cb0af5256394a3d1fc7?all_blocks=true - - -.. code-block:: json - - { - "root": "i4x://edX/DemoX/vertical/2152d4a4aadc4cb0af5256394a3d1fc7", - "blocks": { - "i4x://edX/DemoX/discussion/e5eac7e1a5a24f5fa7ed77bb6d136591": { - "display_name": "", - "lms_web_url": "https://courses.edx.org/courses/edX/DemoX/Demo_Course/ - jump_to/i4x://edX/DemoX/discussion/e5eac7e1a5a24f5fa7ed77bb6d136591", - "type": "discussion", - "id": "i4x://edX/DemoX/discussion/e5eac7e1a5a24f5fa7ed77bb6d136591", - "student_view_url": "https://courses.edx.org/xblock/i4x://edX/DemoX/ - discussion/e5eac7e1a5a24f5fa7ed77bb6d136591" - }, - "i4x://edX/DemoX/vertical/2152d4a4aadc4cb0af5256394a3d1fc7": { - "display_name": "Pointing on a Picture", - "lms_web_url": "https://courses.edx.org/courses/edX/DemoX/Demo_Course/ - jump_to/i4x://edX/DemoX/vertical/2152d4a4aadc4cb0af5256394a3d1fc7", - "type": "vertical", - "id": "i4x://edX/DemoX/vertical/2152d4a4aadc4cb0af5256394a3d1fc7", - "student_view_url": "https://courses.edx.org/xblock/i4x://edX/DemoX/ - vertical/2152d4a4aadc4cb0af5256394a3d1fc7" - }, - "i4x://edX/DemoX/problem/c554538a57664fac80783b99d9d6da7c": { - "display_name": "Pointing on a Picture", - "lms_web_url": "https://courses.edx.org/courses/edX/DemoX/Demo_Course/ - jump_to/i4x://edX/DemoX/problem/c554538a57664fac80783b99d9d6da7c", - "type": "problem", - "id": "i4x://edX/DemoX/problem/c554538a57664fac80783b99d9d6da7c", - "student_view_url": "https://courses.edx.org/xblock/i4x://edX/DemoX/ - problem/c554538a57664fac80783b99d9d6da7c" - } - } - } diff --git a/docs/en_us/platform_api/source/courses/courses.rst b/docs/en_us/platform_api/source/courses/courses.rst deleted file mode 100644 index 413ba5c043..0000000000 --- a/docs/en_us/platform_api/source/courses/courses.rst +++ /dev/null @@ -1,226 +0,0 @@ -.. _Courses API Courses Resource: - -######################################## -Courses API Courses Resource -######################################## - -With the Courses API **Courses** resource, you can complete the -following tasks. - -.. contents:: - :local: - :depth: 1 - - -.. _Get a list of courses: - -********************** -Get a List of Courses -********************** - -The endpoint to get a list of courses is ``/api/courses/v1/courses/``. - -===================== -Use Case -===================== - -Get a list of the courses that are visible to a specific user. If a username -is not supplied, an anonymous user is assumed. Users with course staff -permissions can specify other users' usernames. - -===================== -Request Format -===================== - -GET /api/courses/v1/courses/ - -Example: - -GET /api/courses/v1/courses/?username=anjali - - -.. _Courses Query Parameters: - -===================== -Query Parameters -===================== - -* username (optional) - The username of the user for whom the course data is - being accessed. If the request is made for an anonymous user, username is - not required. Only users with course staff permissions can specify other - users' usernames. - -* org (optional) - A code for an organization; case-insensitive. Example: - "HarvardX". If ``org`` is specified, the list of courses includes only - courses that belong to the specified organization. - -* mobile (optional) - If specified, the list of courses includes only courses - that are designated as ``mobile_available``. - - -.. _Courses Response Values: - -===================== -Response Values -===================== - -The following fields are returned with a successful response. -All date/time fields are in ISO 8601 notation. - -* effort: A textual description of the weekly hours of effort expected in the - course. - -* end: The date and time that the course ends. - -* enrollment_end: The date and time that enrollment ends. - -* enrollment_start: The date and time that enrollment begins. - -* id: A unique identifier of the course; a serialized representation of the - opaque key identifying the course. - -* media: An object that contains named media items, including the following - objects. - - * course_image: An image to show for the course. - - * uri: The location of the image. - - * course_video: A video about the course. - - * uri: The location of the video. - -* name: The name of the course. - -* number: The catalog number of the course. - -* org: The name of the organization that owns the course. - -* overview: An HTML textual description of the course. - -* short_description: A textual description of the course. - -* start: The date and time that the course begins. - -* start_display: The start date of the course, formatted for reading. - -* start_type: Indicates how ``start_display`` was set. Possible values are: - - * "string": Manually set by the course author. - * "timestamp": Generated from the ``start`` timestamp. - * "empty": No start date is specified. - -* pacing: The type of pacing for this course. Possible values are - ``instructor`` and ``self``. - -* course_id: The course key. This field might be returned but is deprecated. - You should use ``id`` instead. - - -============================================================== -Example Response Showing The List of Courses Visible to a User -============================================================== - -.. code-block:: json - - { - - "media": { - "course_image": { - "uri": "/c4x/edX/example/asset/just_a_test.jpg", - "name": "Course Image" - } - }, - "description": "An example course.", - "end": "2015-09-19T18:00:00Z", - "enrollment_end": "2015-07-15T00:00:00Z", - "enrollment_start": "2015-06-15T00:00:00Z", - "id": "edX/example/2012_Fall", - "name": "Example Course", - "number": "example", - "org": "edX", - "start": "2015-07-17T12:00:00Z", - "start_display": "July 17, 2015", - "start_type": "timestamp" - } - - -.. _Get the details for a course: - -************************* -Get Details for a Course -************************* - -The endpoint to get the details for a course is -``/api/courses/v1/courses/{course_key}/``. - -===================== -Use Case -===================== - -Get the details for a course that you specify using a course key. - -===================== -Request Format -===================== - -GET /api/courses/v1/courses/{course_key} - -Example: -GET /api/courses/v1/courses/edX%2FDemoX%2FDemo_Course - -===================== -Query Parameters -===================== - -* username (optional) - The username of the user for whom the course data is - being accessed. If the request is made for an anonymous user, username is - not required. Only users with course staff permissions can specify other - users' usernames. - -===================== -Response Values -===================== - -:ref:`Response values` for this endpoint are the same -as those for :ref:`Get a list of courses`. - - -========================================================= -Example Response Showing Details of a Specified Course -========================================================= - - -The following example response is returned from this request: - -GET /api/courses/v1/courses/edX%2FDemoX%2FDemo_Course - - -.. code-block:: json - - { - - "effort": null, - "end": "2015-08-08T00:00:00Z", - "enrollment_start": "2015-01-01T00:00:00Z", - "enrollment_end": "2015-05-01T00:00:00Z", - "id": "edX/DemoX/Demo_Course", - "media": { - "course_image": { - "uri": "/c4x/edX/DemoX/asset/images_course_image.jpg" - }, - "course_video": { - "uri": null - }, - }, - "name": "edX Demonstration Course", - "number": "DemoX", - "org": "edX", - "short_description": null, - "start": "2015-02-05T05:00:00Z", - "start_display": "Feb. 5, 2015", - "start_type": "timestamp", - "pacing": "instructor", - "course_id": "edX/DemoX/Demo_Course", - "overview": "

Include your long course description here.

" - } diff --git a/docs/en_us/platform_api/source/courses/index.rst b/docs/en_us/platform_api/source/courses/index.rst deleted file mode 100644 index fe7d75b43b..0000000000 --- a/docs/en_us/platform_api/source/courses/index.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. _edX Platform Courses API: - -##################################### -Courses API Version 1.0 -##################################### - -.. toctree:: - :maxdepth: 2 - - overview - courses - blocks - - diff --git a/docs/en_us/platform_api/source/courses/overview.rst b/docs/en_us/platform_api/source/courses/overview.rst deleted file mode 100644 index 36433cb027..0000000000 --- a/docs/en_us/platform_api/source/courses/overview.rst +++ /dev/null @@ -1,65 +0,0 @@ -.. _Courses API Overview: - -############################# -Courses API Overview -############################# - -Use the Courses API to obtain information about edX courses. - -.. contents:: - :local: - :depth: 1 - -***************************************** -Courses API Version and Status -***************************************** - -The Courses API is currently at version 1.0. - -************************************ -Courses API Resources and Endpoints -************************************ - -The Courses API includes the :ref:`Courses` and -:ref:`Blocks` resources, and supports the following -tasks, methods, and endpoints. - -================= -Courses Resource -================= - -.. list-table:: - :widths: 20 10 70 - :header-rows: 1 - - * - Task - - Method - - Endpoint - * - :ref:`Get a list of courses` - - GET - - /api/courses/v1/courses/ - * - :ref:`Get the details for a course` - - GET - - /api/courses/v1/courses/{course_key}/ - - - -================= -Blocks Resource -================= - -.. list-table:: - :widths: 20 10 70 - :header-rows: 1 - - * - Task - - Method - - Endpoint - - * - :ref:`Get a list of the course blocks in a course` - - GET - - /api/courses/v1/blocks/ with required ``course_id`` parameter - - * - :ref:`Get a list of the course blocks in a block tree` - - GET - - /api/courses/v1/blocks/{usage_id} diff --git a/docs/en_us/platform_api/source/docs_settings.py b/docs/en_us/platform_api/source/docs_settings.py deleted file mode 100644 index 5eb9a12e89..0000000000 --- a/docs/en_us/platform_api/source/docs_settings.py +++ /dev/null @@ -1,12 +0,0 @@ -""" -This is the local_settings file for platform API doc. -""" - -# Generate a SECRET_KEY for this build -from random import choice -characters = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' -SECRET_KEY = ''.join([choice(characters) for i in range(50)]) - -# for use in openedx/core/djangoapps/profile_images/images.py -PROFILE_IMAGE_MAX_BYTES = 1000 -PROFILE_IMAGE_MIN_BYTES = 1000 diff --git a/docs/en_us/platform_api/source/enrollment/enrollment.rst b/docs/en_us/platform_api/source/enrollment/enrollment.rst deleted file mode 100644 index f4dc8bfba3..0000000000 --- a/docs/en_us/platform_api/source/enrollment/enrollment.rst +++ /dev/null @@ -1,170 +0,0 @@ -################################### -Enrollment API Enrollment Resource -################################### - -With the Enrollment API **Enrollment** resource, you can complete the -following tasks. - -.. contents:: - :local: - :depth: 1 - - -.. _Get the Users Enrollment Status in a Course: - -******************************************** -Get the User's Enrollment Status in a Course -******************************************** - -.. autoclass:: enrollment.views.EnrollmentView - -**Example response showing the user's enrollment status in a course** - -.. code-block:: none - - HTTP 200 OK - Content-Type: application/json - Vary: Accept - Allow: GET, HEAD, OPTIONS - - { - "created": "2014-11-19T04:06:55Z", - "mode": "honor", - "is_active": true, - "course_details": { - "course_id": "edX/DemoX/Demo_Course", - "course_name": "edX Demonstration Course", - "enrollment_end": null, - "course_modes": [ - { - "slug": "honor", - "name": "Honor Code Certificate", - "min_price": 0, - "suggested_prices": [], - "currency": "usd", - "expiration_datetime": null, - "description": null - } - ], - "enrollment_start": null, - "invite_only": false - }, - "user": "staff" - } - -.. _Get Enrollment Details for a Course: - -************************************************** -Get the User's Enrollment Information for a Course -************************************************** - -.. autoclass:: enrollment.views.EnrollmentCourseDetailView - -**Example response showing a user's course enrollment information** - -.. code-block:: none - - HTTP 200 OK - Content-Type: application/json - Vary: Accept - Allow: GET, HEAD, OPTIONS - - { - "course_id": "edX/DemoX/Demo_Course", - "course_name": "edX Demonstration Course", - "enrollment_end": null, - "course_modes": [ - { - "slug": "honor", - "name": "Honor Code Certificate", - "min_price": 0, - "suggested_prices": [], - "currency": "usd", - "expiration_datetime": null, - "description": null - } - ], - "enrollment_start": null, - "invite_only": false - } - - -.. _View and add to a Users Course Enrollments: - -********************************************************** -View a User's Enrollments or Enroll a User in a Course -********************************************************** - -.. autoclass:: enrollment.views.EnrollmentListView - - -**Example response showing a user who is enrolled in two courses** - -.. code-block:: none - - HTTP 200 OK - Content-Type: application/json - Vary: Accept - Allow: GET, POST, HEAD, OPTIONS - - [ - { - "created": "2014-09-19T18:08:37Z", - "mode": "honor", - "is_active": true, - "course_details": { - "course_id": "edX/DemoX/Demo_Course", - "course_name": "edX Demonstration Course", - "enrollment_end": null, - "course_modes": [ - { - "slug": "honor", - "name": "Honor Code Certificate", - "min_price": 0, - "suggested_prices": [], - "currency": "usd", - "expiration_datetime": null, - "description": null - } - ], - "enrollment_start": null, - "invite_only": false - }, - "user": "honor" - }, - { - "created": "2014-09-19T18:09:35Z", - "mode": "honor", - "is_active": true, - "course_details": { - "course_id": "ArbisoftX/BulkyEmail101/2014-15", - "course_name": "Course Name Here", - "enrollment_end": null, - "course_modes": [ - { - "slug": "honor", - "name": "Honor Code Certificate", - "min_price": 0, - "suggested_prices": [], - "currency": "usd", - "expiration_datetime": null, - "description": null - } - ], - "enrollment_start": "2014-05-01T04:00:00Z", - "invite_only": false - }, - "user": "honor" - } - ] - - -**Example response showing that a user has been enrolled in a new course** - -.. code-block:: json - - { - "course_details": { - "course_id": "edX/DemoX/Demo_Course" - } - } diff --git a/docs/en_us/platform_api/source/enrollment/index.rst b/docs/en_us/platform_api/source/enrollment/index.rst deleted file mode 100644 index 80785d9067..0000000000 --- a/docs/en_us/platform_api/source/enrollment/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. _edX Platform Enrollment API: - -######################################## -Enrollment API Version 1.0 -######################################## - -.. toctree:: - :maxdepth: 2 - - overview - enrollment diff --git a/docs/en_us/platform_api/source/enrollment/overview.rst b/docs/en_us/platform_api/source/enrollment/overview.rst deleted file mode 100644 index a3c3a6ff2a..0000000000 --- a/docs/en_us/platform_api/source/enrollment/overview.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. _edX Enrollment API Overview: - -################################################ -Enrollment API Overview -################################################ - -Use the Enrollment API to view user and course enrollment -information and to enroll a user in a course. - -.. contents:: - :local: - :depth: 1 - -**************************************** -Enrollment API Version and Status -**************************************** - -The Enrollment API is currently at version 1.0. We plan to make -significant enhancements to this API. - -******************************************** -Enrollment API Endpoints -******************************************** - -The Enrollment API supports the following tasks, methods, and endpoints. - -.. list-table:: - :widths: 20 10 70 - :header-rows: 1 - - * - Task - - Method - - Endpoint - * - :ref:`Get the user's enrollment status in a course ` - - GET - - /api/enrollment/v1/enrollment/{user_id},{course_id} - * - :ref:`Get the user's enrollment information for a course ` - - GET - - /api/enrollment/v1/course/{course_id} - * - :ref:`View a user's enrollments ` - - GET - - /api/enrollment/v1/enrollment - * - :ref:`Enroll a user in a course ` - - POST - - /api/enrollment/v1/enrollment{"course_details":{"course_id":"{course_id}"}} - diff --git a/docs/en_us/platform_api/source/index.rst b/docs/en_us/platform_api/source/index.rst deleted file mode 100644 index 0f74557ba8..0000000000 --- a/docs/en_us/platform_api/source/index.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. _Open edX Platform APIs: - -####################### -Open edX Platform APIs -####################### - -.. toctree:: - :titlesonly: - - read_me - preface - change_log - -.. toctree:: - :maxdepth: 2 - - overview - authentication - -**************** -Supported APIs -**************** - -.. toctree:: - :maxdepth: 2 - - courses/index - enrollment/index - user/index - -****************** -Deprecated APIs -****************** - -.. toctree:: - :maxdepth: 2 - - course_structure/index - mobile/index - profile_images/index diff --git a/docs/en_us/platform_api/source/links.rst b/docs/en_us/platform_api/source/links.rst deleted file mode 100644 index 0f9ceb6e7f..0000000000 --- a/docs/en_us/platform_api/source/links.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _OAuth 2.0 Standard: https://tools.ietf.org/html/draft-ietf-oauth-v2-31 - -.. _docs.edx.org: http://docs.edx.org/ - -.. _https://courses.edx.org/api/courses/v1/courses/: https://courses.edx.org/api/courses/v1/courses/ - - diff --git a/docs/en_us/platform_api/source/mobile/index.rst b/docs/en_us/platform_api/source/mobile/index.rst deleted file mode 100644 index ad43b49893..0000000000 --- a/docs/en_us/platform_api/source/mobile/index.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. _edX Platform Mobile API Version 0.5: - -##################################### -Mobile API Version 0.5 (Deprecated) -##################################### - -The mobile API version 0.5 is deprecated. EdX platform developers should not -implement new client functions that use the mobile API version 0.5. - -You can get information about the courses offered by an edX platform -installation by using the ``/api/courses/v1/courses/`` REST endpoint. - -You can get information about the parameters and return values of -``/api/courses/v1/courses`` from the Django REST framework web page for that -endpoint. For example, `https://courses.edx.org/api/courses/v1/courses/`_ -provides information about the courses offered by edx.org. - -.. note:: - - The documentation available at `docs.edx.org`_ does not include information - about the ``/api/courses/v1/courses/`` REST endpoint. Developer - documentation for the ``/api/courses/v1/courses/`` is planned in upcoming - documentation releases. - -You can get and update information about learners by using the edX platform -user API. For more information about getting and updating learner information -in the user API, see :ref:`Get and Update the User's Account Information`. - -.. include:: ../links.rst diff --git a/docs/en_us/platform_api/source/overview.rst b/docs/en_us/platform_api/source/overview.rst deleted file mode 100644 index 99842c0cfb..0000000000 --- a/docs/en_us/platform_api/source/overview.rst +++ /dev/null @@ -1,21 +0,0 @@ -################################################ -Overview of the edX Platform APIs -################################################ - -The edX Platform APIs are a rapidly growing and evolving set of capabilities -that enable you to build web, desktop, and mobile applications that work with -your Open edX instance. - -The edX Platform APIs use REST design principles and support the JSON data- -interchange format. The APIs also use edX OAuth 2.0 for :ref:`authentication -`. - -********************************************** -Supported edX Platform API Modules -********************************************** - -The following edX Platform APIs are currently supported. - -* :ref:`edX Platform Courses API` -* :ref:`edX Platform Enrollment API` -* :ref:`edX Platform User API` diff --git a/docs/en_us/platform_api/source/preface.rst b/docs/en_us/platform_api/source/preface.rst deleted file mode 100644 index 53895c8473..0000000000 --- a/docs/en_us/platform_api/source/preface.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../shared/preface.rst \ No newline at end of file diff --git a/docs/en_us/platform_api/source/profile_images/index.rst b/docs/en_us/platform_api/source/profile_images/index.rst deleted file mode 100644 index 2c5b7f3481..0000000000 --- a/docs/en_us/platform_api/source/profile_images/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _Profile Images API Version 1.0: - -########################################### -Profile Images API Version 1.0 (Deprecated) -########################################### - -The profile images API version 1.0 is deprecated. EdX platform developers -should not implement new client functions that use the profile images API -version 1.0. - -You can get and update learners' profile images by using the edX platform user -API. The ``profile_image`` object is included in the JSON information for a -learner. For more information about getting and updating profile images in the -user API, see :ref:`Get and Update the User's Account Information`. - -.. include:: ../links.rst diff --git a/docs/en_us/platform_api/source/read_me.rst b/docs/en_us/platform_api/source/read_me.rst deleted file mode 100644 index d737cd74a4..0000000000 --- a/docs/en_us/platform_api/source/read_me.rst +++ /dev/null @@ -1,17 +0,0 @@ -######## -Read Me -######## - -The edX Platform API documentation is created using RST_ -files and Sphinx_. You, the user community, can help update and revise this -documentation project on GitHub: - - https://github.com/edx/edx-platform/tree/master/docs/en_us/platform_api/source - -To suggest a revision, fork the project, make changes in your fork, and submit -a pull request back to the original project: this is known as the `GitHub Flow`_. - -.. _Sphinx: http://sphinx-doc.org/ -.. _LaTeX: http://www.latex-project.org/ -.. _`GitHub Flow`: https://github.com/blog/1557-github-flow-in-the-browser -.. _RST: http://docutils.sourceforge.net/rst.html diff --git a/docs/en_us/platform_api/source/user/accounts.rst b/docs/en_us/platform_api/source/user/accounts.rst deleted file mode 100644 index 7056cbc179..0000000000 --- a/docs/en_us/platform_api/source/user/accounts.rst +++ /dev/null @@ -1,44 +0,0 @@ -.. _User Accounts API: - -################################################## -User API User Accounts Resource -################################################## - -With the User API **User Accounts** resource, you can complete the following -tasks. - -.. contents:: - :local: - :depth: 1 - -.. _Get and Update the User's Account Information: - -********************************************** -Get and Update a User's Account Information -********************************************** - -.. autoclass:: user_api.accounts.views.AccountViewSet - -**Example response showing a user's account information** - -.. code-block:: none - - HTTP 200 OK - Content-Type: application/json - Vary: Accept - Allow: GET, HEAD, OPTIONS, PATCH - - { - "username": "John", - "name": "John Doe", - "language": "", - "gender": "m", - "year_of_birth": 1987, - "level_of_education": "m", - "goals": "Professional Development", - "country": US, - "mailing_address": "123 Main Street, Anytown, MA 02144", - "email": "johndoe@company.com", - "date_joined": "2015-03-18T13:42:40Z", - "account_privacy": "all_users" - } diff --git a/docs/en_us/platform_api/source/user/index.rst b/docs/en_us/platform_api/source/user/index.rst deleted file mode 100644 index 2f075cf975..0000000000 --- a/docs/en_us/platform_api/source/user/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. _edX Platform User API: - -################################# -User API Version 1.0 -################################# - -.. toctree:: - :maxdepth: 2 - - overview - accounts - preferences diff --git a/docs/en_us/platform_api/source/user/overview.rst b/docs/en_us/platform_api/source/user/overview.rst deleted file mode 100644 index ad2ac80aaf..0000000000 --- a/docs/en_us/platform_api/source/user/overview.rst +++ /dev/null @@ -1,75 +0,0 @@ -################################################ -User API Overview -################################################ - -Use the User API to view and update account and preference information. - -.. contents:: - :local: - :depth: 1 - -************************************* -User API Version and Status -************************************* - -The User API is currently at version 1.0. We plan on making -significant enhancements to this API. - -********************************************** -User API Resources and Endpoints -********************************************** - -The User API supports the following resources, tasks, methods, and endpoints. - -============================= -User Accounts API Resource -============================= - -.. list-table:: - :widths: 20 10 70 - :header-rows: 1 - - * - Task - - Method - - Endpoint - * - :ref:`Get a user's account information ` - - GET - - /api/user/v1/accounts/{username}/[?view=shared] - * - :ref:`Update your account information ` - - PATCH - - /api/user/v1/accounts/{username}/{“key”:”value”} - - -============================= -User Preferences API Resource -============================= - -.. list-table:: - :widths: 20 10 70 - :header-rows: 1 - - * - Task - - Method - - Endpoint - * - :ref:`Get a user's preferences information - ` - - GET - - /api/user/v1/preferences/{username}/ - * - :ref:`Update a user's preferences information - ` - - PATCH - - /api/user/v1/preferences/{username}/ - * - :ref:`Get a specific preference - ` - - GET - - /api/user/v1/preferences/{username}/{preference_key} - * - :ref:`Update a specific preference - ` - - PUT - - /api/user/v1/preferences/{username}/{preference_key} - * - :ref:`Delete a specific preference - ` - - DELETE - - /api/user/v1/preferences/{username}/{preference_key} diff --git a/docs/en_us/platform_api/source/user/preferences.rst b/docs/en_us/platform_api/source/user/preferences.rst deleted file mode 100644 index ca1b4c0497..0000000000 --- a/docs/en_us/platform_api/source/user/preferences.rst +++ /dev/null @@ -1,54 +0,0 @@ -.. _User Preferences API: - -################################################## -User API User Preferences Resource -################################################## - -With the User API **User Preferences** resource, you can complete the -following tasks. - -.. contents:: - :local: - :depth: 1 - -.. _Get and Update the User's Preferences Information: - -************************************************** -Get and Update the User's Preferences Information -************************************************** - -.. autoclass:: user_api.preferences.views.PreferencesView - -**Example response showing the user's preference information** - -.. code-block:: none - - HTTP 200 OK - Content-Type: application/json - Vary: Accept - Allow: GET, HEAD, OPTIONS, PATCH - - { - "pref-lang": "en", - "account_privacy": "private" - } - -.. _Get Update or Delete a Specific Preference: - -************************************************** -Get, Update, or Delete a Specific Preference -************************************************** - -.. autoclass:: user_api.preferences.views.PreferencesDetailView - -**Example response to a request for the user's account_privacy setting** - -.. code-block:: none - - HTTP 200 OK - Content-Type: application/json - Vary: Accept - Allow: GET, HEAD, OPTIONS, PATCH - - "private" - diff --git a/docs/en_us/shared/browsers.rst b/docs/en_us/shared/browsers.rst deleted file mode 100644 index e8cef9ba53..0000000000 --- a/docs/en_us/shared/browsers.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. _Browsers: - -#################### -edX Browser Support -#################### - -.. Doc team! Be sure that when you make any changes to this file that you also make them to the mirrored files in these other locations. -.. edx-analytics-dashboard/docs/en_us/dashboard/source/front_matter -.. edx-platform/docs/en_us/shared -.. Alison 19 Aug 14 - - -The edX platform runs on the following browsers. - -* `Chrome`_ -* `Safari`_ -* `Firefox`_ -* `Microsoft Edge`_ and `Microsoft Internet Explorer`_ 11 - -The edX platform is routinely tested and verified on the current version and -the previous version of each of these browsers. We generally encourage the use -of, and fully support only, the latest version. - -.. note:: If you use the Safari browser, be aware that it does not support the - search feature for the guides on `docs.edx.org`_. This is a known limitation. - - -.. _docs.edx.org: http://docs.edx.org -.. Browsers -.. _Chrome: https://www.google.com/chrome -.. _Safari: https://www.apple.com/safari -.. _Firefox: https://mozilla.org/firefox -.. _Microsoft Edge: https://www.microsoft.com/microsoft-edge -.. _Microsoft Internet Explorer: http://windows.microsoft.com/internet-explorer/download-ie diff --git a/docs/en_us/shared/images/Announcement_subscriptions.png b/docs/en_us/shared/images/Announcement_subscriptions.png deleted file mode 100644 index d5ac2b333ef0ea0d32a803f032e0af97517b01ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15424 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 and :ref:`the edX Partner Portal`. - -The `edX Partner Support`_ site for edX partners hosts discussions that are -monitored by edX staff. - -.. _Resources for Researchers: - -************************** -Resources for Researchers -************************** - -Data for the courses on edx.org and edX Edge is available to the "data czars" -at our partner institutions, and then used by database experts, statisticians, -educational investigators, and others for educational research. - -============== -Documentation -============== - -The `edX Research Guide`_ is available on the docs.edx.org web page. - -This guide opens in your web browser, with a **Search docs** field and links to -that guide's contents on the left side of each page. To open or save a PDF -version, select **v: latest** at the lower right of the page, and then select -**PDF**. - -.. note:: If you use the Safari browser, be aware that it does not support the - search feature for the HTML versions of the edX guides. This is a known - limitation. - -====== -Email -====== - -To receive and share information by email, researchers can join the -`openedx-analytics`_ Google group to ask questions and participate in -discussions with peers at other edX partner organizations and edX staffers. - -====== -Wikis -====== - -The edX Analytics team maintains the `Open edX Analytics`_ wiki, which includes -links to periodic release notes and other resources for researchers. - -The `edx-tools`_ wiki lists publicly shared tools for working with the edX -platform, including scripts for data analysis and reporting. - -.. _Resources for Developers: - -************************** -Resources for Developers -************************** - -Software engineers, system administrators, and translators work on extending -and localizing the code for the edX platform. - -============= -Documentation -============= - -Documentation for developers is available on the `docs.edx.org`_ web page. - -* The `edX Platform Developer's Guide`_ includes guidelines for - contributing to Open edX, options for extending the Open edX platform, using - the edX public sandboxes, instrumenting analytics, and testing. - -* `Installing, Configuring, and Running the Open edX Platform`_ provides procedures - for getting an edX developer stack (devstack) and production stack - (fullstack) operational. - -* `Open edX XBlock Tutorial`_ guides developers through the process of - creating an XBlock, and explains the concepts and anatomy of XBlocks. - -* `Open edX XBlock API Guide`_ provides reference information about the XBlock - API. - -* `edX Open Learning XML Guide`_ provides guidelines for building edX courses - with Open Learning XML (OLX). Note that this guide is currently an alpha - version. - -* `edX Data Analytics API`_ provides reference information for using the data - analytics API to build applications to view and analyze learner activity in - your course. - -* `edX Platform APIs`_ provide reference information for building applications - to view course information and videos and work with user and enrollment - data. - -.. note:: If you use the Safari browser, be aware that it does not support the - search feature for the HTML versions of the edX guides. This is a known - limitation. - -====== -GitHub -====== - -These are the main edX repositories on GitHub. - -* The `edx/edx-platform`_ repo contains the code for the edX platform. - -* The `edx/edx-analytics-dashboard`_ repo contains the code for edX Insights. - -* The `edx/configuration`_ repo contains scripts to set up and operate the edX - platform. - -Additional repositories are used for other projects. Our contributor agreement, -contributor guidelines and coding conventions, and other resources are -available in these repositories. - -====================== -Community Discussions -====================== - -The `Community Discussions`_ page in the Open edX Portal lists different -ways that you can ask, and answer, questions. - -.. _Community Discussions: https://open.edx.org/resources/community-discussions - -==================== -Wikis and Web Sites -==================== - -The `Open edX Portal`_ is the entry point for new contributors. - -The edX Engineering team maintains an `open Confluence wiki`_, which -provides insights into the plans, projects, and questions that the edX Open -Source team is working on with the community. - -The `edx-tools`_ wiki lists publicly shared tools for working with the edX -platform, including scripts and helper utilities. - -.. _Resources for Open edX: - -************************** -Resources for Open edX -************************** - -Hosting providers, platform extenders, core contributors, and course staff all -use Open edX. EdX provides release-specific documentation, as well as the -latest version of all guides, for Open edX users. The following documentation -is available. - -* `Open edX Release Notes`_ provides information on the contents of Open edX - releases. - -* `Building and Running an Open edX Course`_ is a comprehensive guide with - concepts and procedures to help you build a course in Studio, and then - use the Learning Management System (LMS) to run a course. - - When you are working in Studio, you can access relevant sections of this - guide by selecting **Help** on any page. - -* `Open edX Learner's Guide`_ helps students use the Open edX LMS to take - courses. This guide is available on the docs.edx.org web page. Because - learners are currently only guided to this resource through the course, - we encourage course teams to provide learners with links to this guide as - needed in course updates or discussions. - -* `Installing, Configuring, and Running the Open edX Platform`_ provides - information about installing and using devstack and fullstack. - -* The `edX Platform Developer's Guide`_ includes guidelines for - contributing to Open edX, options for extending the Open edX platform, using - the edX public sandboxes, instrumenting analytics, and testing. - -* `Open edX XBlock Tutorial`_ guides developers through the process of - creating an XBlock, and explains the concepts and anatomy of XBlocks. - -* `Open edX XBlock API Guide`_ provides reference information on the XBlock - API. - -* `EdX Open Learning XML Guide`_ provides guidelines for building edX courses - with Open Learning XML (OLX). Note that this guide is currently an alpha - version. - -* `EdX Data Analytics API`_ provides reference information for using the data - analytics API to build applications to view and analyze learner activity in - your course. - -* `EdX Platform APIs`_ provide reference information for building applications - to view course information and videos and work with user and enrollment - data. - -.. note:: If you use the Safari browser, be aware that it does not support the - search feature for the HTML versions of the edX guides. This is a known - limitation. - -.. _Resources for Students: - -************************** -Resources for Learners -************************** - -============== -Documentation -============== - -The `EdX Learner's Guide`_ and the `Open edX Learner's Guide`_ are available -on the docs.edx.org web page. Because learners are currently only guided to -this resource through the course, we encourage course teams to provide -learners with links to these guides as needed in course updates or discussions. - -============== -In a Course -============== - -All edX courses have a discussion forum where you can ask questions and -interact with other students and with the course team: select **Discussion**. -Many courses also offer a wiki for additional resources and materials: select -**Wiki**. - -Other resources might also be available, such as a course-specific Facebook -page or Twitter feed. Be sure to check the **Home** page for your course as -well as the **Discussion** and **Wiki** pages. - -From time to time, the course team might send email messages to all students. -While you can opt out of these messages, doing so means that you can miss -important or time-sensitive information. To change your preferences for course -email, select **edX** or **edX edge** at the top of any page. On your dashboard -of current courses, locate the course and then select **Email Settings**. - -========== -From edX -========== - -To help you get started with the edX learning experience, edX offers a course -(of course!). You can find the edX Demo_ course on the edX web site. EdX also -maintains a list of `frequently asked questions`_ and answers. - -If you still have questions or suggestions, you can get help from the edX -support team: select **Contact** at the bottom of any edX web page or send an -email message to info@edx.org. - -For opportunities to meet others who are interested in edX courses, check the -edX Global Community meetup_ group. - -.. _Building and Running an edX Course: http://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/ -.. _Building and Running an Open edX Course: http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/latest/ -.. _Building and Running an Open edX Course - latest: http://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/latest/ -.. _docs@edx.org: docs@edx.org -.. _edx101: https://www.edx.org/course/overview-creating-edx-course-edx-edx101#.VIIJbWTF_yM -.. _StudioX: https://www.edx.org/course/creating-course-edx-studio-edx-studiox#.VRLYIJPF8kR -.. _VideoX: https://www.edx.org/course/creating-video-edx-platform-edx-videox -.. _Demo: http://www.edx.org/course/edx/edx-edxdemo101-edx-demo-1038 -.. _edX Partner Support: https://partners.edx.org/edx_zendesk -.. _edx-code: http://groups.google.com/forum/#!forum/edx-code -.. _edx/configuration: http://github.com/edx/configuration/wiki -.. _edX Data Analytics API: http://edx.readthedocs.io/projects/edx-data-analytics-api/en/latest/index.html -.. _docs.edx.org: http://docs.edx.org -.. _edx/edx-analytics-dashboard: https://github.com/edx/edx-analytics-dashboard -.. _edx/edx-platform: https://github.com/edx/edx-platform -.. _EdX Learner's Guide: http://edx-guide-for-students.readthedocs.org/en/latest/ -.. _edX Open Learning XML Guide: http://edx-open-learning-xml.readthedocs.io/en/latest/index.html -.. _edX Partner Portal: https://partners.edx.org -.. _edX Platform APIs: http://edx.readthedocs.io/projects/edx-platform-api/en/latest/ -.. _edX Platform Developer's Guide: http://edx.readthedocs.io/projects/edx-developer-guide/en/latest/ -.. _edX Research Guide: http://edx.readthedocs.io/projects/devdata/en/latest/ -.. _edX Release Notes: http://edx.readthedocs.io/projects/edx-release-notes/en/latest/ -.. _edX Status: http://status.edx.org/ -.. _edx-tools: https://github.com/edx/edx-tools/wiki -.. _frequently asked questions: http://www.edx.org/student-faq -.. _Installing, Configuring, and Running the Open edX Platform: http://edx.readthedocs.org/projects/edx-installing-configuring-and-running/en/latest/ -.. _meetup: http://www.meetup.com/edX-Global-Community/ -.. _openedx-analytics: http://groups.google.com/forum/#!forum/openedx-analytics -.. _Open edX Analytics: http://edx-wiki.atlassian.net/wiki/display/OA/Open+edX+Analytics+Home -.. _Open edX Learner's Guide: http://edx.readthedocs.org/projects/open-edx-learner-guide/en/latest/ -.. _openedx-ops: http://groups.google.com/forum/#!forum/openedx-ops -.. _Open edX Portal: https://open.edx.org -.. _open.edx.org/user/register: https://open.edx.org/user/register -.. _Open edX Release Notes: http://edx.readthedocs.io/projects/open-edx-release-notes/en/latest/ -.. _openedx-studio: http://groups.google.com/forum/#!forum/openedx-studio -.. _openedx-translation: http://groups.google.com/forum/#!forum/openedx-translation -.. _open Confluence wiki: http://openedx.atlassian.net/wiki/ -.. _partners.edx.org: https://partners.edx.org -.. _Twitter: http://twitter.com/edXstatus -.. _Using edX Insights: http://edx-insights.readthedocs.io/en/latest/ -.. _Open EdX XBlock API Guide: http://edx.readthedocs.io/projects/xblock/en/latest/ -.. _Open edX XBlock Tutorial: http://edx.readthedocs.io/projects/xblock-tutorial/en/latest/index.html diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000000..e1da84416e --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,39 @@ +########################## +edx-platform Documentation +########################## + +Developer documentation for `edx-platform` can be found in the following +locations. + +* The `edx-platform docs directory`_ contains some local developer + documentation. + +* The `Developer Documentation Index`_ in Confluence provides additional links + to developer documentation for this and other projects. The rest of the `Open + edX Development space`_ in Confluence provides additional documentation. + +* User documentation and a more general Developer's Guide can be read on `Open + edX ReadTheDocs`_. The source for these guides can be found in the + `edx-documentation`_ repository. + +.. _edx-platform docs directory: https://github.com/edx/edx-platform/tree/master/docs +.. _Developer Documentation Index: https://openedx.atlassian.net/wiki/display/OpenDev/Developer+Documentation +.. _Open edX Development space: https://openedx.atlassian.net/wiki/display/OpenDev/Open+edX+Development +.. _Open edX ReadTheDocs: http://docs.edx.org/ + +.. toctree:: + :maxdepth: 2 + + +Change History +************** + +* May, 2017: The local docs directory was cleared out to start fresh. + +* January 13, 2015: The "edX Developer's Guide" was moved to + `edx-documentation`_. + +* November 3, 2014: The documentation for several sub-projects were moved into + `edx-documentation`_. + +.. _edx-documentation: https://github.com/edx/edx-documentation diff --git a/docs/shared/__init__.py b/docs/shared/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/shared/conf.py b/docs/shared/conf.py deleted file mode 100644 index 9778b50c39..0000000000 --- a/docs/shared/conf.py +++ /dev/null @@ -1,345 +0,0 @@ -# -*- coding: utf-8 -*- -# -# getting_started documentation build configuration file, created by -# sphinx-quickstart on Tue Apr 16 11:19:12 2013. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - - -# ----------------------------------------------------------------------------- -# Common config -# -# This file is imported by the different project conf.py files (in -# course_authors/, data/, and developers/). It includes configuration options -# common to all three. -# -# ----------------------------------------------------------------------------- - -import os -import datetime - -BASEDIR = os.path.dirname(os.path.abspath(__file__)) - - -def add_base(paths): - """ - Returns a list of paths relative to BASEDIR. - - paths: a list of paths - """ - - return [os.path.join(BASEDIR, x) for x in paths] - - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig'] - -# Add any paths that contain templates here, relative to this directory. -templates_path = add_base(['_templates']) - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = 'edX' -copyright = '{year}, edX Inc. and licensed under a Creative Commons Attribution-ShareAlike 4.0 International License unless otherwise specified'.format(year=datetime.datetime.now().year) - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '0.1' -# The full version, including alpha/beta/rc tags. -release = '0.1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'default' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path = add_base(['_static']) - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'edxdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - #'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - #'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - #'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ( - 'index', - 'getting_started.tex', - u'edX Studio Documentation', - u'EdX Doc Team', - 'manual', - ), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'getting_started', u'getting_started Documentation', - [u'EdX Doc Team'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - 'index', - 'getting_started', - u'getting_started Documentation', - u'EdX Doc Team', - 'getting_started', - 'One line description of project.', - 'Miscellaneous', - ), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -# -- Options for Epub output --------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = u'getting_started' -epub_author = u'EdX Doc Team' -epub_publisher = u'EdX Doc Team' -epub_copyright = u'2013, EdX Doc Team' - -# The language of the text. It defaults to the language option -# or en if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# A sequence of (type, uri, title) tuples for the guide element of content.opf. -#epub_guide = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files shat should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -#epub_exclude_files = [] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -# Fix unsupported image types using the PIL. -#epub_fix_images = False - -# Scale large images. -#epub_max_image_width = 0 - -# If 'no', URL addresses will not be shown. -#epub_show_urls = 'inline' - -# If false, no index is generated. -#epub_use_index = True - - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'http://docs.python.org/': None} diff --git a/docs/shared/requirements.txt b/docs/shared/requirements.txt deleted file mode 100644 index ed8b53bbc9..0000000000 --- a/docs/shared/requirements.txt +++ /dev/null @@ -1,74 +0,0 @@ -# Read the docs requirements file -# ---------------------------------------- -# Installing modules with C dependencies on RTD can be tricky, and pip doesn't -# have an 'ignore-errors' option, so all requirements fail. Here we keep the -# maximal list of modules that still works. -# -beautifulsoup4==4.1.3 -beautifulsoup==3.2.1 -boto==2.6.0 -celery==3.0.19 -distribute>=0.6.28, <0.7 -django-celery==3.0.17 -django-countries==4.0 -django-filter==0.11.0 -django-mako==0.1.5pre -django-mptt==0.5.5 -django-openid-auth==0.4 -django-sekizai==0.8.2 -django-ses==0.7.0 -django-storages==1.1.5 -django-method-override==0.1.0 -djangorestframework==2.3.5 -django==1.4.5 -feedparser==5.1.3 -# Master pyfs has a bug working with VPC auth. This is a fix. We should switch -# back to master when and if this fix is merged back. -# fs==0.4.0 -git+https://github.com/pmitros/pyfs.git@96e1922348bfe6d99201b9512a9ed946c87b7e0b -GitPython==0.3.2.RC1 -glob2==0.3 -lxml==3.4.4 -mako==0.7.3 -Markdown==2.2.1 -mock==1.0.1 -networkx==1.7 -nltk==2.0.5 -oauthlib==0.6.3 -paramiko==1.9.0 -path.py==7.2 -Pillow==2.6.1 -pip>=1.3 -polib==1.0.3 -pycrypto>=2.6 -pygments==1.5 -pymongo==2.4.1 -python-memcached==1.48 -python-openid==2.2.5 -pytz==2016.7 -PyYAML==3.10 -requests==2.3.0 -Shapely==1.2.16 -sorl-thumbnail==12.3 -sympy==0.7.1 -xmltodict==0.4.1 - -# Metrics gathering and monitoring -dogapi==1.2.1 -dogstatsd-python==0.2.1 -newrelic==1.13.1.31 - -# Used for Internationalization and localization -Babel==1.3 -transifex-client==0.9.1 - - --e common/lib/calc --e common/lib/capa --e common/lib/chem --e common/lib/sandbox-packages --e common/lib/symmath --e common/lib/xmodule --e . - --e git+https://github.com/edx/XBlock.git@b697bebd45deebd0f868613fab6722a0460ca0c1#egg=XBlock diff --git a/docs/en_us/internal/test_pyramid.png b/docs/test_pyramid.png similarity index 100% rename from docs/en_us/internal/test_pyramid.png rename to docs/test_pyramid.png diff --git a/docs/en_us/internal/testing.rst b/docs/testing.rst similarity index 100% rename from docs/en_us/internal/testing.rst rename to docs/testing.rst