├── bases ├── .keep └── rsptx │ ├── interactives │ ├── core.py │ ├── scripts │ │ ├── __init__.py │ │ └── makePtx.sh │ ├── runestone │ │ ├── fitb │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ ├── js │ │ │ │ ├── fitb-i18n.sr-Cyrl.js │ │ │ │ ├── fitb-i18n.pt-br.js │ │ │ │ └── fitb-i18n.en.js │ │ │ └── toctree.rst │ │ ├── poll │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── reveal │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ ├── css │ │ │ │ └── reveal.css │ │ │ └── toctree.rst │ │ ├── activecode │ │ │ ├── test │ │ │ │ ├── __init__.py │ │ │ │ └── _sources │ │ │ │ │ ├── _static │ │ │ │ │ ├── test.db │ │ │ │ │ └── LutherBellPic.jpg │ │ │ │ │ └── progresspage.rst │ │ │ ├── __init__.py │ │ │ ├── css │ │ │ │ └── close.png │ │ │ ├── js │ │ │ │ └── skulpt.min.js.gz │ │ │ └── toctree.rst │ │ ├── common │ │ │ ├── test │ │ │ │ ├── __init__.py │ │ │ │ └── test_error │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── _sources │ │ │ │ │ └── index.rst │ │ │ ├── project_template │ │ │ │ ├── _static │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── clock.png │ │ │ │ └── _templates │ │ │ │ │ └── plugin_layouts │ │ │ │ │ └── sphinx_bootstrap │ │ │ │ │ ├── sourcelink.html │ │ │ │ │ ├── static │ │ │ │ │ └── img │ │ │ │ │ │ ├── RAIcon.png │ │ │ │ │ │ ├── Twitter.png │ │ │ │ │ │ ├── Facebook.png │ │ │ │ │ │ ├── logo_small.png │ │ │ │ │ │ ├── Twitter_icon.png │ │ │ │ │ │ └── Facebook_icon.png │ │ │ │ │ └── localtoc.html │ │ │ ├── css │ │ │ │ ├── presenter_mode.less │ │ │ │ ├── active.png │ │ │ │ └── completed.png │ │ │ ├── images │ │ │ │ └── play_overlay_icon.png │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── dragndrop │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ ├── css │ │ │ │ └── dragndrop.less │ │ │ ├── toctree.rst │ │ │ └── js │ │ │ │ ├── dragndrop-i18n.pt-br.js │ │ │ │ ├── dragndrop-i18n.sr-Cyrl.js │ │ │ │ └── dragndrop-i18n.en.js │ │ ├── groupsub │ │ │ ├── css │ │ │ │ └── groupsub.css │ │ │ └── __init__.py │ │ ├── matrixeq │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── mchoice │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── .gitignore │ │ │ ├── __init__.py │ │ │ ├── toctree.rst │ │ │ └── js │ │ │ │ ├── mchoice-i18n.sr-Cyrl.js │ │ │ │ ├── mchoice-i18n.en.js │ │ │ │ └── mchoice-i18n.pt-br.js │ │ ├── parsons │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ ├── js │ │ │ │ └── placeholderLine.js │ │ │ ├── toctree.rst │ │ │ ├── README.rst │ │ │ └── css │ │ │ │ └── parsons.less │ │ ├── question │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── shortanswer │ │ │ ├── test │ │ │ │ ├── __init__.py │ │ │ │ └── _sources │ │ │ │ │ └── Figures │ │ │ │ │ └── LutherBellPic.jpg │ │ │ ├── __init__.py │ │ │ ├── toctree.rst │ │ │ └── css │ │ │ │ └── shortanswer.css │ │ ├── showeval │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── tabbedStuff │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── clickableArea │ │ │ ├── test │ │ │ │ └── __init__.py │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── matching │ │ │ ├── .gitignore │ │ │ └── css │ │ │ │ └── matching.less │ │ ├── meta │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── video │ │ │ ├── __init__.py │ │ │ ├── toctree.rst │ │ │ ├── test │ │ │ │ └── _sources │ │ │ │ │ └── index.rst │ │ │ └── css │ │ │ │ └── video.css │ │ ├── blockly │ │ │ ├── __init__.py │ │ │ ├── js │ │ │ │ └── media │ │ │ │ │ ├── 1x1.gif │ │ │ │ │ ├── click.mp3 │ │ │ │ │ ├── click.ogg │ │ │ │ │ ├── click.wav │ │ │ │ │ ├── delete.mp3 │ │ │ │ │ ├── delete.ogg │ │ │ │ │ ├── delete.wav │ │ │ │ │ ├── quote0.png │ │ │ │ │ ├── quote1.png │ │ │ │ │ ├── tree.png │ │ │ │ │ ├── handopen.cur │ │ │ │ │ ├── trashlid.png │ │ │ │ │ ├── handclosed.cur │ │ │ │ │ └── trashbody.png │ │ │ ├── README.rst │ │ │ └── toctree.rst │ │ ├── disqus │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── hparsons │ │ │ ├── __init__.py │ │ │ ├── test │ │ │ │ └── _sources │ │ │ │ │ └── _static │ │ │ │ │ ├── test.db │ │ │ │ │ └── hptest.db │ │ │ └── toctree.rst │ │ ├── khanex │ │ │ ├── __init__.py │ │ │ └── test │ │ │ │ └── _sources │ │ │ │ └── Khanex │ │ │ │ └── toctree.rst │ │ ├── quizly │ │ │ ├── __init__.py │ │ │ ├── test │ │ │ │ └── _sources │ │ │ │ │ └── Quizly │ │ │ │ │ └── toctree.rst │ │ │ └── toctree.rst │ │ ├── utility │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── codelens │ │ │ ├── __init__.py │ │ │ ├── css │ │ │ │ └── x.png │ │ │ ├── toctree.rst │ │ │ └── README.rst │ │ ├── server │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── timed │ │ │ ├── __init__.py │ │ │ ├── css │ │ │ │ └── timed.less │ │ │ └── toctree.rst │ │ ├── wavedrom │ │ │ ├── __init__.py │ │ │ └── test │ │ │ │ ├── test_wavedrom.py │ │ │ │ └── _sources │ │ │ │ └── index.rst │ │ ├── webgldemo │ │ │ ├── __init__.py │ │ │ ├── toctree.rst │ │ │ └── css │ │ │ │ └── webgldemo.css │ │ ├── chapterdb │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── selectquestion │ │ │ ├── __init__.py │ │ │ ├── toctree.rst │ │ │ └── css │ │ │ │ └── selectquestion.css │ │ ├── spreadsheet │ │ │ ├── __init__.py │ │ │ ├── css │ │ │ │ └── spreadsheet.css │ │ │ └── toctree.rst │ │ ├── animation │ │ │ ├── __init__.py │ │ │ ├── README.rst │ │ │ └── toctree.rst │ │ ├── datafile │ │ │ ├── test │ │ │ │ └── _sources │ │ │ │ │ └── LutherBellPic.jpg │ │ │ └── toctree.rst │ │ ├── cellbotics │ │ │ └── test │ │ │ │ ├── __init__.py │ │ │ │ └── _sources │ │ │ │ └── index.rst │ │ ├── accessibility │ │ │ ├── __init__.py │ │ │ └── toctree.rst │ │ ├── lp │ │ │ ├── css │ │ │ │ └── html4css1.css │ │ │ ├── toctree.rst │ │ │ └── __init__.py │ │ ├── assignment │ │ │ └── toctree.rst │ │ └── webwork │ │ │ └── toctree.rst │ ├── __init__.py │ ├── pytest.ini │ └── .flake8 │ ├── web2py_server │ ├── core.py │ ├── applications │ │ ├── __init__.py │ │ ├── admin │ │ │ ├── __init__.py │ │ │ ├── private │ │ │ │ └── hosts.deny │ │ │ ├── modules │ │ │ │ └── __init__.py │ │ │ ├── views │ │ │ │ ├── default │ │ │ │ │ ├── files_menu.html │ │ │ │ │ ├── uninstall.html │ │ │ │ │ └── git_push.html │ │ │ │ ├── default.mobile │ │ │ │ │ ├── change_password.html │ │ │ │ │ ├── delete_plugin.html │ │ │ │ │ ├── uninstall.html │ │ │ │ │ └── about.html │ │ │ │ └── mercurial │ │ │ │ │ └── revision.html │ │ │ ├── static │ │ │ │ ├── images │ │ │ │ │ ├── chat.png │ │ │ │ │ ├── help.png │ │ │ │ │ ├── menu.png │ │ │ │ │ ├── folder.png │ │ │ │ │ ├── search.png │ │ │ │ │ ├── start.png │ │ │ │ │ ├── embossed.png │ │ │ │ │ ├── folder_sm.png │ │ │ │ │ ├── header_bg.png │ │ │ │ │ ├── questions.png │ │ │ │ │ ├── save_icon.png │ │ │ │ │ ├── spinner.gif │ │ │ │ │ ├── test_icon.png │ │ │ │ │ ├── delete_icon.png │ │ │ │ │ ├── dim_bullet.gif │ │ │ │ │ ├── red_bullet.gif │ │ │ │ │ ├── files_toggle.png │ │ │ │ │ ├── folder_locked.png │ │ │ │ │ ├── header_shadow.png │ │ │ │ │ ├── section_bullet.png │ │ │ │ │ ├── sidebar_bullet.gif │ │ │ │ │ ├── small_button.png │ │ │ │ │ ├── ticket_section.png │ │ │ │ │ ├── menu_responsive.png │ │ │ │ │ ├── sidebar_background.jpg │ │ │ │ │ ├── glyphicons-halflings.png │ │ │ │ │ ├── small_special_button.png │ │ │ │ │ └── glyphicons-halflings-white.png │ │ │ │ ├── codemirror │ │ │ │ │ ├── theme │ │ │ │ │ │ └── ambiance-mobile.css │ │ │ │ │ └── addon │ │ │ │ │ │ ├── display │ │ │ │ │ │ └── fullscreen.css │ │ │ │ │ │ └── search │ │ │ │ │ │ └── matchesonscrollbar.css │ │ │ │ ├── plugin_multiselect │ │ │ │ │ ├── switch.png │ │ │ │ │ └── start.js │ │ │ │ └── plugin_jqmobile │ │ │ │ │ └── images │ │ │ │ │ ├── iphone.jpg │ │ │ │ │ ├── ajax-loader.png │ │ │ │ │ ├── icons-18-black.png │ │ │ │ │ ├── icons-18-white.png │ │ │ │ │ ├── icons-36-black.png │ │ │ │ │ └── icons-36-white.png │ │ │ ├── languages │ │ │ │ ├── plural-en.py │ │ │ │ ├── plural-ru.py │ │ │ │ └── plural-uk.py │ │ │ ├── controllers │ │ │ │ └── plugin_jqmobile.py │ │ │ ├── settings.cfg │ │ │ ├── sessions │ │ │ │ └── 10e │ │ │ │ │ └── 1c6 │ │ │ │ │ └── 127.0.0.1-cb884fdc-c31c-4179-9434-43db4b7df05e │ │ │ ├── ABOUT │ │ │ └── models │ │ │ │ └── plugin_multiselect.py │ │ └── runestone │ │ │ ├── .gitmodules │ │ │ ├── __init__.py │ │ │ ├── errors │ │ │ └── .keep │ │ │ ├── .prettierignore │ │ │ ├── build │ │ │ └── preview │ │ │ │ ├── _static │ │ │ │ ├── .gitignore │ │ │ │ ├── last.png │ │ │ │ ├── next.png │ │ │ │ ├── prev.png │ │ │ │ ├── clock.png │ │ │ │ ├── close.png │ │ │ │ ├── first.png │ │ │ │ ├── pause.png │ │ │ │ ├── activecodethumb.png │ │ │ │ └── audio │ │ │ │ │ ├── Example04_Tour01_Line01.mp3 │ │ │ │ │ ├── Example04_Tour01_Line01.wav │ │ │ │ │ ├── Example04_Tour01_Line02.mp3 │ │ │ │ │ ├── Example04_Tour01_Line02.wav │ │ │ │ │ ├── Example04_Tour01_Line03.mp3 │ │ │ │ │ └── Example04_Tour01_Line03.wav │ │ │ │ ├── _sources │ │ │ │ ├── .gitignore │ │ │ │ └── index.rst │ │ │ │ ├── .gitignore │ │ │ │ ├── __pycache__ │ │ │ │ └── pavement.cpython-39.pyc │ │ │ │ └── _templates │ │ │ │ └── plugin_layouts │ │ │ │ └── sphinx_bootstrap │ │ │ │ ├── sourcelink.html │ │ │ │ ├── localtoc.html │ │ │ │ ├── static │ │ │ │ ├── img │ │ │ │ │ ├── Facebook.png │ │ │ │ │ ├── Twitter.png │ │ │ │ │ ├── logo_small.png │ │ │ │ │ ├── Facebook_icon.png │ │ │ │ │ └── Twitter_icon.png │ │ │ │ └── bootstrap-3.0.0 │ │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ └── glyphicons-halflings-regular.woff │ │ │ │ └── globaltoc.html │ │ │ ├── tests │ │ │ ├── test_course_1 │ │ │ │ ├── _static │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── clock.png │ │ │ │ │ ├── close.png │ │ │ │ │ ├── first.png │ │ │ │ │ ├── last.png │ │ │ │ │ ├── next.png │ │ │ │ │ ├── pause.png │ │ │ │ │ ├── prev.png │ │ │ │ │ ├── activecodethumb.png │ │ │ │ │ ├── img │ │ │ │ │ │ └── logo_small.png │ │ │ │ │ └── audio │ │ │ │ │ │ ├── Example04_Tour01_Line01.mp3 │ │ │ │ │ │ ├── Example04_Tour01_Line01.wav │ │ │ │ │ │ ├── Example04_Tour01_Line02.mp3 │ │ │ │ │ │ ├── Example04_Tour01_Line02.wav │ │ │ │ │ │ ├── Example04_Tour01_Line03.mp3 │ │ │ │ │ │ └── Example04_Tour01_Line03.wav │ │ │ │ ├── .gitignore │ │ │ │ └── _sources │ │ │ │ │ ├── test_chapter_1 │ │ │ │ │ ├── subchapter_a.rst │ │ │ │ │ ├── toctree.rst │ │ │ │ │ └── dynamicquestions.rst │ │ │ │ │ ├── lp_demo-test.py │ │ │ │ │ └── lp_demo.py │ │ │ ├── __init__.py │ │ │ └── .coveragerc │ │ │ ├── .jshintrc │ │ │ ├── .coveralls.yml │ │ │ ├── modules │ │ │ ├── .gitignore │ │ │ └── __init__.py │ │ │ ├── views │ │ │ ├── books │ │ │ │ └── published.html │ │ │ ├── generic.json │ │ │ ├── default │ │ │ │ ├── error.html │ │ │ │ └── bio.html │ │ │ ├── generic.xml │ │ │ ├── admin │ │ │ │ ├── sections_create.html │ │ │ │ ├── progress.html │ │ │ │ └── studentactivity.html │ │ │ ├── __init__.py │ │ │ ├── generic.pdf │ │ │ └── generic.rss │ │ │ ├── .git-blame-ignore-revs │ │ │ ├── requirements-rtd.txt │ │ │ ├── static │ │ │ ├── ads.txt │ │ │ ├── favicon.ico │ │ │ ├── _static │ │ │ │ ├── down.png │ │ │ │ ├── file.png │ │ │ │ ├── plus.png │ │ │ │ ├── up.png │ │ │ │ ├── clock.png │ │ │ │ ├── minus.png │ │ │ │ ├── comment.png │ │ │ │ ├── contents.png │ │ │ │ ├── ajax-loader.gif │ │ │ │ ├── navigation.png │ │ │ │ ├── up-pressed.png │ │ │ │ ├── comment-bright.png │ │ │ │ ├── comment-close.png │ │ │ │ └── down-pressed.png │ │ │ ├── images │ │ │ │ ├── anon.jpg │ │ │ │ ├── RAIcon.png │ │ │ │ ├── shadow.png │ │ │ │ ├── completed.png │ │ │ │ ├── logo_small.png │ │ │ │ ├── poweredby.png │ │ │ │ ├── seperator.png │ │ │ │ ├── spinner10.gif │ │ │ │ ├── Twitter_icon.png │ │ │ │ ├── Facebook_icon.png │ │ │ │ ├── RAIcon_cropped.png │ │ │ │ ├── arrows-ffffff.png │ │ │ │ ├── shadow-section.png │ │ │ │ ├── RunestoneBanner0.png │ │ │ │ ├── RunestoneBanner1.png │ │ │ │ ├── RunestoneBanner2.png │ │ │ │ ├── RunestoneVenmoQR.png │ │ │ │ ├── css3buttons_icons.png │ │ │ │ ├── glyphicons-halflings.png │ │ │ │ ├── css3buttons_backgrounds.png │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ ├── GettingStartedWithRunestone.png │ │ │ │ └── glyphicons-halflings-white.png │ │ │ ├── _images │ │ │ │ ├── nsf-logo.png │ │ │ │ ├── ptx-logo.png │ │ │ │ ├── rsi_logo.jpg │ │ │ │ ├── searchicon.png │ │ │ │ ├── searchicon2.jpg │ │ │ │ ├── UT_Square_logo.png │ │ │ │ ├── logo-trademark.png │ │ │ │ ├── U-M-logo-preview.jpg │ │ │ │ ├── SIGCSE-logo-large.jpg │ │ │ │ ├── Texas__oneColor_orange.png │ │ │ │ ├── SPP_Logo_Horizontal_Final2020.png │ │ │ │ └── luther_college_vertical_blue.png │ │ │ ├── rectangle_badge.png │ │ │ ├── dashboard │ │ │ │ └── icons │ │ │ │ │ ├── cohorts.png │ │ │ │ │ ├── settings.png │ │ │ │ │ ├── gradebook.png │ │ │ │ │ └── gradebook copy.png │ │ │ ├── js │ │ │ │ ├── jstree_themes │ │ │ │ │ └── proton │ │ │ │ │ │ ├── 30px.png │ │ │ │ │ │ ├── 32px.png │ │ │ │ │ │ ├── throbber.gif │ │ │ │ │ │ └── fonts │ │ │ │ │ │ └── titillium │ │ │ │ │ │ ├── titilliumweb-bold-webfont.eot │ │ │ │ │ │ ├── titilliumweb-bold-webfont.ttf │ │ │ │ │ │ ├── titilliumweb-bold-webfont.woff │ │ │ │ │ │ ├── titilliumweb-regular-webfont.eot │ │ │ │ │ │ ├── titilliumweb-regular-webfont.ttf │ │ │ │ │ │ ├── titilliumweb-regular-webfont.woff │ │ │ │ │ │ ├── titilliumweb-extralight-webfont.eot │ │ │ │ │ │ ├── titilliumweb-extralight-webfont.ttf │ │ │ │ │ │ └── titilliumweb-extralight-webfont.woff │ │ │ │ ├── jquery-fix.js │ │ │ │ ├── selfgrade.js │ │ │ │ └── documentation_options.js │ │ │ ├── css │ │ │ │ └── html4css1.css │ │ │ └── robots.txt │ │ │ ├── models │ │ │ ├── toctree.rst │ │ │ └── menu.py │ │ │ ├── scripts │ │ │ ├── toctree.rst │ │ │ └── sumuse │ │ │ ├── .prettierrc.js │ │ │ ├── controllers │ │ │ ├── toctree.rst │ │ │ └── oauth.py │ │ │ ├── .gitattributes │ │ │ └── .dockerignore │ ├── site-packages │ │ └── __init__.py │ ├── MANIFEST.in │ ├── gluon │ │ ├── contrib │ │ │ └── markmin │ │ │ │ ├── __init__.py │ │ │ │ └── markmin.pdf │ │ ├── packages │ │ │ ├── dal │ │ │ │ ├── pydal │ │ │ │ │ ├── tools │ │ │ │ │ │ └── __init__.py │ │ │ │ │ ├── contrib │ │ │ │ │ │ └── __init__.py │ │ │ │ │ ├── helpers │ │ │ │ │ │ └── __init__.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── representers │ │ │ │ │ │ └── mysql.py │ │ │ │ │ ├── _globals.py │ │ │ │ │ ├── exceptions.py │ │ │ │ │ └── parsers │ │ │ │ │ │ └── google.py │ │ │ │ ├── docs │ │ │ │ │ └── requirements.txt │ │ │ │ ├── setup.cfg │ │ │ │ ├── tests │ │ │ │ │ ├── _compat.py │ │ │ │ │ └── __init__.py │ │ │ │ ├── MANIFEST.in │ │ │ │ ├── .codecov.yml │ │ │ │ └── AUTHORS │ │ │ └── yatl │ │ │ │ ├── tests │ │ │ │ └── __init__.py │ │ │ │ ├── yatl │ │ │ │ └── __init__.py │ │ │ │ └── tox.ini │ │ ├── _compat.py │ │ ├── sanitizer.py │ │ ├── template.py │ │ ├── validators.py │ │ └── tests │ │ │ └── test_rocket.py │ ├── VERSION │ ├── __init__.py │ ├── parameters_8000.py │ ├── extras │ │ ├── icons │ │ │ ├── web2py.gif │ │ │ ├── web2py.ico │ │ │ ├── web2py.icns │ │ │ └── splashlogo.gif │ │ └── build_web2py │ │ │ └── README.md │ └── handlers │ │ └── README │ ├── author_server_api │ ├── core.py │ └── __init__.py │ ├── book_server_api │ ├── core.py │ ├── routers │ │ └── __init__.py │ ├── runestone_dev.db │ └── __init__.py │ ├── admin_server_api │ ├── routers │ │ └── __init__.py │ ├── __init__.py │ └── README.md │ ├── assignment_server_api │ ├── routers │ │ └── __init__.py │ ├── assignment_builder │ │ ├── .eslintignore │ │ ├── public │ │ │ ├── runestone │ │ │ ├── robots.txt │ │ │ ├── favicon.ico │ │ │ ├── logo192.png │ │ │ └── logo512.png │ │ ├── src │ │ │ ├── store │ │ │ │ └── index.ts │ │ │ ├── router │ │ │ │ └── index.ts │ │ │ ├── types │ │ │ │ ├── treeNode.ts │ │ │ │ ├── common.ts │ │ │ │ ├── readings.ts │ │ │ │ ├── dataset.ts │ │ │ │ └── api.ts │ │ │ ├── components │ │ │ │ └── routes │ │ │ │ │ └── AssignmentBuilder │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── components │ │ │ │ │ ├── exercises │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── CopyExercise │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── CreateExercise │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ ├── PollExercise │ │ │ │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── MatchingExercise │ │ │ │ │ │ │ │ │ │ ├── hooks │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── DragAndDropExercise │ │ │ │ │ │ │ │ │ │ ├── hooks │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ShortAnswerExercise │ │ │ │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── FillInTheBlankExercise │ │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── MultiChoiceExercise │ │ │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ActiveCodeExercise │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── SelectQuestionExercise │ │ │ │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── types │ │ │ │ │ │ │ │ │ └── PollTypes.ts │ │ │ │ │ │ │ │ └── constants.ts │ │ │ │ │ │ │ └── TipTap │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── hooks │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── AssignmentExercisesList │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── reading │ │ │ │ │ │ └── AssignmentReadings.tsx │ │ │ │ │ └── index.tsx │ │ │ ├── styles │ │ │ │ ├── _variables.scss │ │ │ │ ├── layout.scss │ │ │ │ ├── _footer.scss │ │ │ │ ├── _mixins.scss │ │ │ │ └── _content.scss │ │ │ ├── setupTests.jsx │ │ │ ├── utils │ │ │ │ ├── json.ts │ │ │ │ ├── object.ts │ │ │ │ └── date.ts │ │ │ ├── global.d.ts │ │ │ ├── index.css │ │ │ └── reportWebVitals.ts │ │ ├── vitest.setup.ts │ │ ├── .env.development │ │ ├── .env.production │ │ ├── .jshintignore │ │ ├── .prettierrc │ │ └── .gitignore │ └── __init__.py │ ├── rsmanage │ └── __init__.py │ └── dash_server_api │ └── __init__.py ├── components ├── .keep └── rsptx │ ├── db │ ├── core.py │ └── __init__.py │ ├── auth │ ├── core.py │ └── __init__.py │ ├── forms │ ├── core.py │ └── __init__.py │ ├── logging │ ├── core.py │ └── __init__.py │ ├── data_extract │ ├── core.py │ └── __init__.py │ ├── templates │ ├── core.py │ ├── staticAssets │ │ ├── RAIcon.png │ │ ├── js │ │ │ ├── jquery-fix.js │ │ │ ├── selfgrade.js │ │ │ └── documentation_options.js │ │ ├── course.css │ │ └── assignment │ │ │ └── selfgrade.js │ ├── __init__.py │ ├── footer.html │ └── assignment │ │ └── selfgrade.js │ ├── validation │ ├── core.py │ └── __init__.py │ ├── visualization │ ├── core.py │ └── __init__.py │ ├── lp_sim_builder │ ├── core.py │ └── __init__.py │ ├── lti1p3 │ ├── pylti1p3 │ │ ├── contrib │ │ │ ├── __init__.py │ │ │ └── fastapi │ │ │ │ ├── launch_data_storage │ │ │ │ ├── __init__.py │ │ │ │ └── cache.py │ │ │ │ ├── session.py │ │ │ │ └── __init__.py │ │ ├── launch_data_storage │ │ │ └── __init__.py │ │ ├── __init__.py │ │ ├── tool_config │ │ │ └── __init__.py │ │ ├── actions.py │ │ ├── deployment.py │ │ ├── request.py │ │ ├── exception.py │ │ └── utils.py │ └── __init__.py │ ├── cl_utils │ └── __init__.py │ ├── practice │ └── __init__.py │ ├── build_tools │ └── __init__.py │ ├── exceptions │ └── __init__.py │ ├── response_helpers │ └── __init__.py │ ├── analytics │ └── __init__.py │ ├── configuration │ └── __init__.py │ ├── grading_helpers │ └── __init__.py │ ├── data_types │ └── __init__.py │ └── endpoint_validators │ └── __init__.py ├── development ├── .keep └── core.py ├── projects ├── .keep ├── dash_server │ └── .gitignore ├── jobe │ ├── container.test.yml │ ├── files │ │ ├── hamcrest-all-1.3.jar │ │ └── junit-4.13-beta-3.jar │ └── container-test.sh ├── interactives │ └── images │ │ └── runeCompo-index.png ├── assignment_server │ └── build.sh ├── author_server │ └── gitconfig ├── w2p_login_assign_grade │ └── entrypoint.sh └── latex_image │ └── README ├── test ├── bases │ └── rsptx │ │ ├── rsmanage │ │ ├── __init__.py │ │ └── test_core.py │ │ ├── interactives │ │ ├── __init__.py │ │ └── test_core.py │ │ ├── web2py_server │ │ ├── __init__.py │ │ └── test_core.py │ │ ├── author_server_api │ │ ├── __init__.py │ │ └── test_core.py │ │ ├── book_server_api │ │ ├── __init__.py │ │ └── test_core.py │ │ ├── dash_server_api │ │ ├── __init__.py │ │ └── test_core.py │ │ ├── assignment_server_api │ │ ├── __init__.py │ │ └── test_core.py │ │ └── admin_server_api │ │ └── __init__.py └── components │ └── rsptx │ ├── auth │ ├── __init__.py │ └── test_core.py │ ├── db │ ├── __init__.py │ └── test_core.py │ ├── analytics │ ├── __init__.py │ └── test_core.py │ ├── cl_utils │ ├── __init__.py │ └── test_core.py │ ├── forms │ ├── __init__.py │ └── test_core.py │ ├── logging │ ├── __init__.py │ └── test_core.py │ ├── practice │ ├── __init__.py │ └── test_core.py │ ├── templates │ ├── __init__.py │ └── test_core.py │ ├── build_tools │ ├── __init__.py │ └── test_core.py │ ├── configuration │ ├── __init__.py │ └── test_core.py │ ├── data_extract │ ├── __init__.py │ └── test_core.py │ ├── exceptions │ ├── __init__.py │ └── test_core.py │ ├── lp_sim_builder │ ├── __init__.py │ └── test_core.py │ ├── validation │ ├── __init__.py │ └── test_core.py │ ├── visualization │ ├── __init__.py │ └── test_core.py │ ├── endpoint_validators │ ├── __init__.py │ └── test_core.py │ ├── grading_helpers │ ├── __init__.py │ └── test_core.py │ └── response_helpers │ ├── __init__.py │ └── test_core.py ├── docs ├── source │ ├── readme.rst │ ├── db.core.rst │ ├── db.crud.rst │ ├── db.models.rst │ ├── logging.core.rst │ ├── validation.core.rst │ ├── db.async_session.rst │ ├── configuration.core.rst │ ├── logging.applogger.rst │ ├── validation.schemas.rst │ ├── book_server_api.core.rst │ ├── book_server_api.main.rst │ ├── response_helpers.core.rst │ ├── book_server_api.localconfig.rst │ ├── book_server_api.routers.auth.rst │ ├── book_server_api.routers.books.rst │ ├── book_server_api.routers.coach.rst │ ├── book_server_api.routers.discuss.rst │ ├── book_server_api.routers.rslogging.rst │ ├── book_server_api.routers.assessment.rst │ ├── configuration.rst │ ├── db.rst │ ├── logging.rst │ ├── validation.rst │ ├── response_helpers.rst │ ├── templates.rst │ └── cl_utils.rst └── graffle │ └── Phased Approach to Polylith.graffle ├── migrations └── README ├── poetry.toml ├── workspace.toml └── .github ├── CODEOWNERS └── ISSUE_TEMPLATE └── config.yml /bases/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /development/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /development/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/db/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/auth/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/forms/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/logging/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/author_server_api/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/book_server_api/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/data_extract/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/templates/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/validation/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/visualization/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/bases/rsptx/rsmanage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/auth/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/db/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/lp_sim_builder/core.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/dash_server/.gitignore: -------------------------------------------------------------------------------- 1 | cache 2 | -------------------------------------------------------------------------------- /test/bases/rsptx/interactives/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/bases/rsptx/web2py_server/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/analytics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/cl_utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/forms/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/logging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/practice/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/admin_server_api/routers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/book_server_api/routers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/scripts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/bases/rsptx/author_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/bases/rsptx/book_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/bases/rsptx/dash_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/build_tools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/configuration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/data_extract/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/lp_sim_builder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/validation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/visualization/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/routers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/source/readme.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../README.rst -------------------------------------------------------------------------------- /test/bases/rsptx/assignment_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/endpoint_validators/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/grading_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/components/rsptx/response_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/fitb/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/poll/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/reveal/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/site-packages/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /migrations/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/test/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/groupsub/css/groupsub.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/matrixeq/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/parsons/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/question/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/shortanswer/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/showeval/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/tabbedStuff/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/private/hosts.deny: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/errors/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/clickableArea/test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include VERSION LICENSE 2 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/launch_data_storage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /poetry.toml: -------------------------------------------------------------------------------- 1 | [virtualenvs] 2 | path = ".venv" 3 | in-project = true -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/test/test_error/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/matching/.gitignore: -------------------------------------------------------------------------------- 1 | test/_static 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/modules/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.prettierignore: -------------------------------------------------------------------------------- 1 | views -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/contrib/markmin/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/tools/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "2.0.0" 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_static/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/fitb/__init__.py: -------------------------------------------------------------------------------- 1 | from .fitb import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/meta/__init__.py: -------------------------------------------------------------------------------- 1 | from .meta import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/poll/__init__.py: -------------------------------------------------------------------------------- 1 | from .poll import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/video/__init__.py: -------------------------------------------------------------------------------- 1 | from .video import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/_compat.py: -------------------------------------------------------------------------------- 1 | from pydal._compat import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/contrib/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/helpers/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/__init__.py: -------------------------------------------------------------------------------- 1 | from .blockly import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/test/test_error/_sources/index.rst: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/disqus/__init__.py: -------------------------------------------------------------------------------- 1 | from .disqus import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/groupsub/__init__.py: -------------------------------------------------------------------------------- 1 | from .groupsub import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/hparsons/__init__.py: -------------------------------------------------------------------------------- 1 | from .hparsons import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/khanex/__init__.py: -------------------------------------------------------------------------------- 1 | from .khanex import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/matrixeq/__init__.py: -------------------------------------------------------------------------------- 1 | from .matrixeq import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/parsons/__init__.py: -------------------------------------------------------------------------------- 1 | from .parsons import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/question/__init__.py: -------------------------------------------------------------------------------- 1 | from .question import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/quizly/__init__.py: -------------------------------------------------------------------------------- 1 | from .quizly import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/reveal/__init__.py: -------------------------------------------------------------------------------- 1 | from .reveal import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/showeval/__init__.py: -------------------------------------------------------------------------------- 1 | from .showeval import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/utility/__init__.py: -------------------------------------------------------------------------------- 1 | from .utility import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/contrib/fastapi/launch_data_storage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/codelens/__init__.py: -------------------------------------------------------------------------------- 1 | from .visualizer import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/__init__.py: -------------------------------------------------------------------------------- 1 | from .dragndrop import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/server/__init__.py: -------------------------------------------------------------------------------- 1 | from .componentdb import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/timed/__init__.py: -------------------------------------------------------------------------------- 1 | from .timedassessment import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/wavedrom/__init__.py: -------------------------------------------------------------------------------- 1 | from .wavedrom import setup 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/webgldemo/__init__.py: -------------------------------------------------------------------------------- 1 | from .webgldemo import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/sanitizer.py: -------------------------------------------------------------------------------- 1 | from yatl.sanitizer import sanitize 2 | -------------------------------------------------------------------------------- /test/bases/rsptx/admin_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | # Test package for admin_server_api 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/chapterdb/__init__.py: -------------------------------------------------------------------------------- 1 | from .dbchapterinfo import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/clickableArea/__init__.py: -------------------------------------------------------------------------------- 1 | from .clickable import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/selectquestion/__init__.py: -------------------------------------------------------------------------------- 1 | from .selectone import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/shortanswer/__init__.py: -------------------------------------------------------------------------------- 1 | from .shortanswer import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/spreadsheet/__init__.py: -------------------------------------------------------------------------------- 1 | from .spreadsheet import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/tabbedStuff/__init__.py: -------------------------------------------------------------------------------- 1 | from .tabbedStuff import * 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/VERSION: -------------------------------------------------------------------------------- 1 | Version 2.23.1-stable+timestamp.2023.01.31.08.01.46 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esversion": 8 3 | } 4 | -------------------------------------------------------------------------------- /components/rsptx/auth/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.auth import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/rsmanage/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.rsmanage import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinxcontrib-napoleon>=0.2.4 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/template.py: -------------------------------------------------------------------------------- 1 | from yatl.template import render, parse_template 2 | -------------------------------------------------------------------------------- /components/rsptx/cl_utils/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.cl_utils import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /components/rsptx/practice/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.practice import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/public/runestone: -------------------------------------------------------------------------------- 1 | ../../../interactives/runestone/dist -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/store/index.ts: -------------------------------------------------------------------------------- 1 | export { store } from "./store"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/vitest.setup.ts: -------------------------------------------------------------------------------- 1 | import "@testing-library/jest-dom"; 2 | -------------------------------------------------------------------------------- /components/rsptx/build_tools/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.build_tools import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /components/rsptx/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.exceptions import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/admin_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.admin_server_api import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.web2py_server import core 2 | 3 | __all__ = ["core"] 4 | 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: luElJYbYOu3bnb0nka7qFTq0xbyGxrP9a 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/modules/.gitignore: -------------------------------------------------------------------------------- 1 | # Except this file 2 | !.gitignore 3 | 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/books/published.html: -------------------------------------------------------------------------------- 1 | {{ extend 'books/index.html' }} 2 | -------------------------------------------------------------------------------- /bases/rsptx/dash_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.dash_server_api import core 2 | 3 | __all__ = ["core"] 4 | 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | ed4b5bca88882e20398ae92777d470bee7571363 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_sources/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | # except 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /components/rsptx/response_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.response_helpers import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.assignment_server_api import core 2 | 3 | __all__ = ["core"] 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/.env.development: -------------------------------------------------------------------------------- 1 | VITE_LOAD_PREFIX=/runestone 2 | VITE_BASE_URL=/ 3 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | build_info 3 | sphinx_settings.json 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/requirements-rtd.txt: -------------------------------------------------------------------------------- 1 | CodeChat 2 | myst_parser 3 | sphinx_rtd_theme 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/ads.txt: -------------------------------------------------------------------------------- 1 | google.com, pub-8347101402675282, DIRECT, f08c47fec0942fa0 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/.gitignore: -------------------------------------------------------------------------------- 1 | published/ 2 | build/ 3 | build_info 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/yatl/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from .test_template import * 2 | from .test_helpers import * -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/router/index.ts: -------------------------------------------------------------------------------- 1 | export { routerService } from "./RouterService"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/reveal/css/reveal.css: -------------------------------------------------------------------------------- 1 | .iguide { 2 | background-color: #ddffdd; 3 | padding: 1em; 4 | } -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/animation/__init__.py: -------------------------------------------------------------------------------- 1 | # ********* 2 | # |docname| 3 | # ********* 4 | from .animation import * 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default/files_menu.html: -------------------------------------------------------------------------------- 1 | {{for files in result_files:}} 2 | {{=files}} 3 | {{pass}} -------------------------------------------------------------------------------- /test/components/rsptx/db/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.db import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/__init__.py: -------------------------------------------------------------------------------- 1 | # ********* 2 | # |docname| 3 | # ********* 4 | from .activecode import * 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/setup.cfg: -------------------------------------------------------------------------------- 1 | [aliases] 2 | release = egg_info -RDb '' 3 | 4 | [wheel] 5 | universal = 1 6 | -------------------------------------------------------------------------------- /components/rsptx/analytics/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.analytics.core import log_this_function 2 | 3 | __all__ = ["log_this_function"] 4 | -------------------------------------------------------------------------------- /test/components/rsptx/auth/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.auth import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/forms/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.forms import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/generic.json: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import json}}{{=XML(json(response._vars))}} 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/parameters_8000.py: -------------------------------------------------------------------------------- 1 | password="pbkdf2(1000,20,sha512)$99100eca6bbda7d9$3e99a74d606c414f03bad69847f5e7f1bb7bc34f" 2 | -------------------------------------------------------------------------------- /projects/jobe/container.test.yml: -------------------------------------------------------------------------------- 1 | # This file gets triggerd by Docker Hub 2 | sut: 3 | build: . 4 | command: bash /container-test.sh 5 | -------------------------------------------------------------------------------- /projects/jobe/files/hamcrest-all-1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/projects/jobe/files/hamcrest-all-1.3.jar -------------------------------------------------------------------------------- /projects/jobe/files/junit-4.13-beta-3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/projects/jobe/files/junit-4.13-beta-3.jar -------------------------------------------------------------------------------- /test/bases/rsptx/rsmanage/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.rsmanage import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/logging/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.logging import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/book_server_api/runestone_dev.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/book_server_api/runestone_dev.db -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/css/presenter_mode.less: -------------------------------------------------------------------------------- 1 | .runestone-sphinx { 2 | @import (less) url("./presenter_mode.css"); 3 | } 4 | -------------------------------------------------------------------------------- /test/bases/rsptx/interactives/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.interactives import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/analytics/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.analytics import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/cl_utils/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.cl_utils import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/exceptions/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.exceptions import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/practice/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.practice import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/templates/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.templates import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/validation/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.validation import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/types/treeNode.ts: -------------------------------------------------------------------------------- 1 | export type SelectedKey = { checked: boolean; partialChecked: boolean }; 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/.gitignore: -------------------------------------------------------------------------------- 1 | *.woff2 2 | *.woff 3 | *.ttf 4 | *.eot 5 | *.svg 6 | 7 | node_modules/ 8 | bower_components/ 9 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/__init__.py: -------------------------------------------------------------------------------- 1 | from .multiplechoice import * 2 | from .assessbase import * 3 | from .assess import * 4 | 5 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/timed/css/timed.less: -------------------------------------------------------------------------------- 1 | .ptx-runestone-container,.runestone-sphinx { 2 | @import (less) url("./timed.css"); 3 | } 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/default/error.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

Error: the document does not exist

-------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/generic.xml: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import xml}}{{=XML(xml(response._vars,quote=False))}} 2 | -------------------------------------------------------------------------------- /test/bases/rsptx/book_server_api/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.book_server_api import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/bases/rsptx/dash_server_api/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.dash_server_api import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/bases/rsptx/web2py_server/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.web2py_server import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/build_tools/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.build_tools import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/data_extract/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.data_extract import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/extras/icons/web2py.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/extras/icons/web2py.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/extras/icons/web2py.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/extras/icons/web2py.ico -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/yatl/yatl/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '20211217.1' 2 | 3 | from . template import * 4 | from . helpers import * 5 | -------------------------------------------------------------------------------- /components/rsptx/validation/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.validation import core 2 | from rsptx.validation import schemas 3 | 4 | __all__ = ["core", "schemas"] 5 | -------------------------------------------------------------------------------- /docs/graffle/Phased Approach to Polylith.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/docs/graffle/Phased Approach to Polylith.graffle -------------------------------------------------------------------------------- /projects/interactives/images/runeCompo-index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/projects/interactives/images/runeCompo-index.png -------------------------------------------------------------------------------- /test/bases/rsptx/author_server_api/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.author_server_api import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/configuration/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.configuration import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/grading_helpers/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.grading_helpers import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/lp_sim_builder/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.lp_sim_builder import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/visualization/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.visualization import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/index.ts: -------------------------------------------------------------------------------- 1 | export { AssignmentBuilder } from "./AssignmentBuilder"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/types/common.ts: -------------------------------------------------------------------------------- 1 | export type Optional = T | undefined; 2 | 3 | export type Nullable = T | null; 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/extras/icons/web2py.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/extras/icons/web2py.icns -------------------------------------------------------------------------------- /components/rsptx/templates/staticAssets/RAIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/components/rsptx/templates/staticAssets/RAIcon.png -------------------------------------------------------------------------------- /docs/source/db.core.rst: -------------------------------------------------------------------------------- 1 | db.core module 2 | ============== 3 | 4 | .. automodule:: db.core 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/db.crud.rst: -------------------------------------------------------------------------------- 1 | db.crud module 2 | ============== 3 | 4 | .. automodule:: db.crud 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /test/components/rsptx/response_helpers/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.response_helpers import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/codelens/css/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/codelens/css/x.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/extras/icons/splashlogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/extras/icons/splashlogo.gif -------------------------------------------------------------------------------- /docs/source/db.models.rst: -------------------------------------------------------------------------------- 1 | db.models module 2 | ================ 3 | 4 | .. automodule:: db.models 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /test/bases/rsptx/assignment_server_api/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.assignment_server_api import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /test/components/rsptx/endpoint_validators/test_core.py: -------------------------------------------------------------------------------- 1 | from rsptx.endpoint_validators import core 2 | 3 | 4 | def test_sample(): 5 | assert core is not None 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/css/active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/css/active.png -------------------------------------------------------------------------------- /components/rsptx/configuration/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.configuration import core 2 | from rsptx.configuration.core import settings 3 | 4 | __all__ = ["core", "settings"] 5 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/contrib/fastapi/session.py: -------------------------------------------------------------------------------- 1 | from ...session import SessionService 2 | 3 | 4 | class FastAPISessionService(SessionService): 5 | pass 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/css/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/activecode/css/close.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/1x1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/1x1.gif -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/css/completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/css/completed.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/contrib/markmin/markmin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/gluon/contrib/markmin/markmin.pdf -------------------------------------------------------------------------------- /components/rsptx/visualization/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.visualization import core 2 | from rsptx.visualization import authorImpact 3 | 4 | __all__ = ["core", "authorImpact"] 5 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/click.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/click.mp3 -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/click.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/click.ogg -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/click.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/click.wav -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/delete.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/delete.mp3 -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/delete.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/delete.ogg -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/delete.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/delete.wav -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/quote0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/quote0.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/quote1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/quote1.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/tree.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_sources/test_chapter_1/subchapter_a.rst: -------------------------------------------------------------------------------- 1 | ============ 2 | Subchapter A 3 | ============ 4 | This is empty. 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/tests/_compat.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | if sys.version < "2.7": 4 | import unittest2 as unittest 5 | else: 6 | import unittest 7 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/handopen.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/handopen.cur -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/trashlid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/trashlid.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/validators.py: -------------------------------------------------------------------------------- 1 | from pydal.validators import * 2 | from pydal.validators import simple_hash, get_digest, Validator, ValidationError, translate, __all__ 3 | -------------------------------------------------------------------------------- /docs/source/logging.core.rst: -------------------------------------------------------------------------------- 1 | logging.core module 2 | =================== 3 | 4 | .. automodule:: rsptx.logging.core 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/js/skulpt.min.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/activecode/js/skulpt.min.js.gz -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/handclosed.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/handclosed.cur -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/js/media/trashbody.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/blockly/js/media/trashbody.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/chat.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/help.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/menu.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/favicon.ico -------------------------------------------------------------------------------- /components/rsptx/templates/__init__.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from rsptx.templates import core 3 | 4 | __all__ = ["core"] 5 | 6 | template_folder = Path(__file__).parent.absolute() 7 | -------------------------------------------------------------------------------- /docs/source/validation.core.rst: -------------------------------------------------------------------------------- 1 | validation.core module 2 | ====================== 3 | 4 | .. automodule:: validation.core 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/folder.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/search.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/start.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/admin/sections_create.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | All Sections 3 |

Create New Section

4 | {{=form}} -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/default/bio.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{block statusbar}} 4 | {{end}} 5 | 6 |

Tell Us About Yourself

7 | {{=form}} 8 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/tool_config/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | from .abstract import ToolConfAbstract 3 | from .dict import ToolConfDict 4 | from .json_file import ToolConfJsonFile 5 | -------------------------------------------------------------------------------- /docs/source/db.async_session.rst: -------------------------------------------------------------------------------- 1 | db.async\_session module 2 | ======================== 3 | 4 | .. automodule:: db.async_session 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/.env.production: -------------------------------------------------------------------------------- 1 | VITE_LOAD_PREFIX=/assignment/react/runestone 2 | BASE_URL=/assignment/instructor/builder 3 | 4 | VITE_BASE_URL=/assignment/instructor -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/assignment_server_api/assignment_builder/public/favicon.ico -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/assignment_server_api/assignment_builder/public/logo192.png -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/assignment_server_api/assignment_builder/public/logo512.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/images/play_overlay_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/images/play_overlay_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/embossed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/embossed.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/folder_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/folder_sm.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/header_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/header_bg.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/questions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/questions.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/save_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/save_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/spinner.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/test_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/test_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/down.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/file.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/plus.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/up.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/anon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/anon.jpg -------------------------------------------------------------------------------- /components/rsptx/lti1p3/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.lti1p3 import core 2 | from rsptx.lti1p3 import tool_conf_rs 3 | from rsptx.lti1p3 import caches 4 | 5 | __all__ = ["core", "tool_conf_rs", "caches"] 6 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/actions.py: -------------------------------------------------------------------------------- 1 | import typing_extensions as te 2 | 3 | 4 | class Action: 5 | OIDC_LOGIN: te.Final = "oidc_login" 6 | MESSAGE_LAUNCH: te.Final = "message_launch" 7 | -------------------------------------------------------------------------------- /projects/assignment_server/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Make sure the wheel for this project is up to date 4 | poetry build-project 5 | 6 | # Build the Docker image 7 | docker build -t assignment . -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CopyExercise/index.ts: -------------------------------------------------------------------------------- 1 | export { CopyExerciseModal } from "./CopyExerciseModal"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/hparsons/test/_sources/_static/test.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/hparsons/test/_sources/_static/test.db -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/delete_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/delete_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/dim_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/dim_bullet.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/red_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/red_bullet.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/models/toctree.rst: -------------------------------------------------------------------------------- 1 | ************* 2 | Web2py models 3 | ************* 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | :glob: 8 | 9 | *.py 10 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/scripts/toctree.rst: -------------------------------------------------------------------------------- 1 | ************ 2 | Misc scripts 3 | ************ 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | :glob: 8 | 9 | *.py 10 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/clock.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/minus.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/RAIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/RAIcon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/shadow.png -------------------------------------------------------------------------------- /docs/source/configuration.core.rst: -------------------------------------------------------------------------------- 1 | configuration.core module 2 | ========================= 3 | 4 | .. automodule:: configuration.core 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/logging.applogger.rst: -------------------------------------------------------------------------------- 1 | logging.applogger module 2 | ======================== 3 | 4 | .. automodule:: rsptx.logging.applogger 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/validation.schemas.rst: -------------------------------------------------------------------------------- 1 | validation.schemas module 2 | ========================= 3 | 4 | .. automodule:: validation.schemas 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/test/_sources/_static/test.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/activecode/test/_sources/_static/test.db -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_static/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_static/clock.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/datafile/test/_sources/LutherBellPic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/datafile/test/_sources/LutherBellPic.jpg -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/hparsons/test/_sources/_static/hptest.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/hparsons/test/_sources/_static/hptest.db -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/spreadsheet/css/spreadsheet.css: -------------------------------------------------------------------------------- 1 | div.runestone .jexcel_container { 2 | max-height: 550px; 3 | overflow: scroll; 4 | max-width: 800px; 5 | overflow: scroll; 6 | } -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/files_toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/files_toggle.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/folder_locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/folder_locked.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/header_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/header_shadow.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/section_bullet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/section_bullet.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/sidebar_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/sidebar_bullet.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/small_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/small_button.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/ticket_section.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/ticket_section.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/nsf-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/nsf-logo.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/ptx-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/ptx-logo.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/rsi_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/rsi_logo.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/comment.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/contents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/contents.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/completed.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/logo_small.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/poweredby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/poweredby.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/seperator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/seperator.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/spinner10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/spinner10.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/rectangle_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/rectangle_badge.png -------------------------------------------------------------------------------- /components/rsptx/logging/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.logging import core 2 | from rsptx.logging import applogger 3 | from rsptx.logging.applogger import rslogger 4 | 5 | __all__ = ["core", "applogger", "rslogger"] 6 | -------------------------------------------------------------------------------- /projects/author_server/gitconfig: -------------------------------------------------------------------------------- 1 | [safe] 2 | directory = * 3 | [pull] 4 | rebase = false 5 | [user] 6 | name = Runestone Author Server 7 | email = runestoneinteractive@gmail.com 8 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/types/readings.ts: -------------------------------------------------------------------------------- 1 | export type GetAvailableReadingsPayload = { 2 | from_source_only: boolean; 3 | pages_only: boolean; 4 | skipreading: boolean; 5 | }; 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/cellbotics/test/__init__.py: -------------------------------------------------------------------------------- 1 | # ********************************************** 2 | # |docname| - Define this directory as a package 3 | # ********************************************** -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/menu_responsive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/menu_responsive.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.prettierrc.js: -------------------------------------------------------------------------------- 1 | // prettier.config.js or .prettierrc.js 2 | module.exports = { 3 | trailingComma: "es5", 4 | tabWidth: 4, 5 | printWidth: 89, 6 | }; 7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/last.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/last.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/next.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/prev.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/searchicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/searchicon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/searchicon2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/searchicon2.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/ajax-loader.gif -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/navigation.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/up-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/up-pressed.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/Twitter_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/Twitter_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/handlers/README: -------------------------------------------------------------------------------- 1 | This folder contains example handlers. 2 | They must be copied to the web2py root folder in order to work properly. 3 | They should not be used in their current location. 4 | -------------------------------------------------------------------------------- /components/rsptx/grading_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.grading_helpers import core 2 | from .core import grade_submission, score_reading_page 3 | 4 | __all__ = ["core", "grade_submission", "score_reading_page"] 5 | -------------------------------------------------------------------------------- /docs/source/book_server_api.core.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.core module 2 | ============================= 3 | 4 | .. automodule:: book_server_api.core 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/book_server_api.main.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.main module 2 | ============================= 3 | 4 | .. automodule:: book_server_api.main 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/response_helpers.core.rst: -------------------------------------------------------------------------------- 1 | response\_helpers.core module 2 | ============================= 3 | 4 | .. automodule:: response_helpers.core 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/book_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.book_server_api import core 2 | from rsptx.book_server_api import main 3 | from rsptx.book_server_api import __main__ 4 | 5 | __all__ = ["core", "main", "__main__"] 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/accessibility/__init__.py: -------------------------------------------------------------------------------- 1 | # ************************************ 2 | # |docname| - the accessibility module 3 | # ************************************ 4 | from .accessibility import * 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/sidebar_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/sidebar_background.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_multiselect/switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_multiselect/switch.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/clock.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/close.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/first.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/pause.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/scripts/sumuse: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ps -u bnmnetp -o rss,pid,ppid,command 3 | echo "-----" 4 | ps -u bnmnetp -o rss,pid,ppid,command | awk '{sum += $1 }; END {print sum}' - 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/UT_Square_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/UT_Square_logo.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/logo-trademark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/logo-trademark.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/comment-bright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/comment-bright.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/comment-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/comment-close.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_static/down-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_static/down-pressed.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/Facebook_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/Facebook_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/RAIcon_cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/RAIcon_cropped.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/arrows-ffffff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/arrows-ffffff.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/shadow-section.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/shadow-section.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/admin/progress.html: -------------------------------------------------------------------------------- 1 |

HOME

2 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

-------------------------------------------------------------------------------- /bases/rsptx/author_server_api/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.author_server_api import core 2 | from rsptx.author_server_api import worker 3 | from rsptx.author_server_api import main 4 | 5 | __all__ = ["core", "main", "worker"] 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.interactives import core 2 | from rsptx.interactives.runestone import __main__ 3 | from rsptx.interactives import runestone 4 | 5 | __all__ = ["core", "__main__", "runestone"] 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/css/dragndrop.less: -------------------------------------------------------------------------------- 1 | .ptx-runestone-container,.runestone-sphinx { 2 | @import (less) url("./dragndrop.css"); 3 | } 4 | 5 | @import (less) url("../../common/css/variables.less"); -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/matching/css/matching.less: -------------------------------------------------------------------------------- 1 | .ptx-runestone-container, 2 | .runestone-sphinx { 3 | @import (less) url("./matching.css"); 4 | } 5 | 6 | @import (less) url("../../common/css/variables.less"); -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/glyphicons-halflings.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/small_special_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/small_special_button.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_multiselect/start.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function(){jQuery('[multiple]').multiSelect({selectableHeader:'Options',selectedHeader:'Selected'});}); 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/controllers/toctree.rst: -------------------------------------------------------------------------------- 1 | ****************** 2 | Web2py controllers 3 | ****************** 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | :glob: 8 | 9 | *.py 10 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/U-M-logo-preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/U-M-logo-preview.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/cohorts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/cohorts.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/settings.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneBanner0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneBanner0.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneBanner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneBanner1.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneBanner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneBanner2.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneVenmoQR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/RunestoneVenmoQR.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/css3buttons_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/css3buttons_icons.png -------------------------------------------------------------------------------- /components/rsptx/db/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.db import core 2 | from rsptx.db import models 3 | from rsptx.db import async_session 4 | from rsptx.db import crud 5 | 6 | __all__ = ["core", "crud", "models", "async_session"] 7 | -------------------------------------------------------------------------------- /components/rsptx/forms/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.forms import core 2 | from rsptx.forms.author import LibraryForm, DatashopForm, DatashopInstForm 3 | 4 | __all__ = ["core", "LibraryForm", "DatashopForm", "DatashopInstForm"] 5 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/test/_sources/_static/LutherBellPic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/activecode/test/_sources/_static/LutherBellPic.jpg -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/shortanswer/test/_sources/Figures/LutherBellPic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/shortanswer/test/_sources/Figures/LutherBellPic.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/codemirror/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/iphone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/iphone.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/SIGCSE-logo-large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/SIGCSE-logo-large.jpg -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/gradebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/gradebook.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/glyphicons-halflings.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/clock.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/close.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/first.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/last.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/last.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/next.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/pause.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/prev.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/images/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/images/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/30px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/30px.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/32px.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/test/_sources/progresspage.rst: -------------------------------------------------------------------------------- 1 | Progress Bar Testing 2 | ==================== 3 | 4 | .. activecode:: test_activecode_5 5 | 6 | print("Hello World") 7 | 8 | 9 | End of test1 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/__init__.py: -------------------------------------------------------------------------------- 1 | from .runestonedirective import ( 2 | setup, 3 | RunestoneDirective, 4 | RunestoneIdDirective, 5 | RunestoneNode, 6 | RunestoneIdNode, 7 | get_node_line, 8 | ) 9 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/languages/plural-en.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | { 4 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 5 | 'file': ['files'], 6 | } 7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/ajax-loader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/ajax-loader.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/activecodethumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/activecodethumb.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/modules/__init__.py: -------------------------------------------------------------------------------- 1 | # ************************** 2 | # |docname| - web2py modules 3 | # ************************** 4 | # .. toctree:: 5 | # :maxdepth: 2 6 | # :glob: 7 | # 8 | # *.py 9 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/Texas__oneColor_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/Texas__oneColor_orange.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/gradebook copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/dashboard/icons/gradebook copy.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/css3buttons_backgrounds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/css3buttons_backgrounds.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/throbber.gif -------------------------------------------------------------------------------- /bases/rsptx/admin_server_api/README.md: -------------------------------------------------------------------------------- 1 | ## Readme 2 | 3 | This server is intended to handle all routes related to course administration, user authorization, and lti setup and launches. 4 | 5 | Currently implemented: 6 | 7 | * LTI1.3 routes 8 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/PollExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { PollQuestionEditor } from "./PollQuestionEditor"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-18-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-18-black.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-18-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-18-white.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-36-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-36-black.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-36-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/static/plugin_jqmobile/images/icons-36-white.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/GettingStartedWithRunestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/GettingStartedWithRunestone.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/images/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/images/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /docs/source/book_server_api.localconfig.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.localconfig module 2 | ==================================== 3 | 4 | .. automodule:: book_server_api.localconfig 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/book_server_api.routers.auth.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.routers.auth module 2 | ===================================== 3 | 4 | .. automodule:: book_server_api.routers.auth 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/.jshintignore: -------------------------------------------------------------------------------- 1 | # Disables JSHint for the React part of the application, as it's better to use ESLint + Prettier. 2 | # After the full migration to React, JSHint can be completely removed. 3 | src 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/MatchingExercise/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useMatchingConnections } from "./useMatchingConnections"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/animation/README.rst: -------------------------------------------------------------------------------- 1 | Animation Directive 2 | =================== 3 | 4 | 5 | Sources: 6 | 7 | CSS: 8 | 9 | None yet 10 | 11 | JS: 12 | 13 | This is the master repository for all js code in this directive. -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/fitb/js/fitb-i18n.sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | "sr-Cyrl": { 3 | msg_no_answer: "Неодговорено.", 4 | msg_fitb_check_me: "Провери", 5 | msg_fitb_compare_me: "Упореди", 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/controllers/plugin_jqmobile.py: -------------------------------------------------------------------------------- 1 | response.files = response.files[:3] 2 | response.menu = [] 3 | 4 | 5 | def index(): 6 | return locals() 7 | 8 | 9 | def about(): 10 | return locals() 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/languages/plural-ru.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | { 4 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 5 | 'файл': ['файла','файлов'], 6 | } 7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/SPP_Logo_Horizontal_Final2020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/SPP_Logo_Horizontal_Final2020.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/_images/luther_college_vertical_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/_images/luther_college_vertical_blue.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/activecodethumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/activecodethumb.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/img/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/img/logo_small.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE 2 | include AUTHORS 3 | include CHANGES 4 | recursive-include tests * 5 | recursive-exclude tests .DS_Store 6 | recursive-include docs * 7 | recursive-exclude docs .DS_Store 8 | -------------------------------------------------------------------------------- /docs/source/book_server_api.routers.books.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.routers.books module 2 | ====================================== 3 | 4 | .. automodule:: book_server_api.routers.books 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/book_server_api.routers.coach.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.routers.coach module 2 | ====================================== 3 | 4 | .. automodule:: book_server_api.routers.coach 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/lp/css/html4css1.css: -------------------------------------------------------------------------------- 1 | /* 2 | **************************** 3 | |docname| - Dummy CSS for LP 4 | **************************** 5 | This file is blank for Runestone -- other CodeChat instances supply something useful here. 6 | */ -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/__pycache__/pavement.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/__pycache__/pavement.cpython-39.pyc -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/DragAndDropExercise/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useDragAndDropConnections } from "./useDragAndDropConnections"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/ShortAnswerExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { ShortAnswerInstructions } from "./ShortAnswerInstructions"; 2 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/TipTap/components/index.ts: -------------------------------------------------------------------------------- 1 | export { TableColumnMenu } from "./TableColumnMenu"; 2 | export { TableRowMenu } from "./TableRowMenu"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/fitb/js/fitb-i18n.pt-br.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | "pt-br": { 3 | msg_no_answer: "Nenhuma resposta dada.", 4 | msg_fitb_check_me: "Verificar", 5 | msg_fitb_compare_me: "Comparar" 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/extras/build_web2py/README.md: -------------------------------------------------------------------------------- 1 | # build-web2py 2 | 3 | The files in this folder must be run from the main web2py folder. 4 | They are for building windows and osx binary distribution using PyInstaller and not meant for the end user. 5 | -------------------------------------------------------------------------------- /docs/source/book_server_api.routers.discuss.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.routers.discuss module 2 | ======================================== 3 | 4 | .. automodule:: book_server_api.routers.discuss 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/TipTap/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export { useTableColumnMenu } from "./useTableColumnMenu"; 2 | export { useTableRowMenu } from "./useTableRowMenu"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/settings.cfg: -------------------------------------------------------------------------------- 1 | [editor] 2 | theme = twilight 3 | editor = sublime 4 | closetag = true 5 | tabwidth = 4 6 | highlightline = true 7 | linenumbers = true 8 | codefolding = false 9 | indentwithtabs = false 10 | 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line01.mp3 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line01.wav -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line02.mp3 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line02.wav -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line03.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line03.mp3 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_static/audio/Example04_Tour01_Line03.wav -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "20220814.1" 2 | 3 | from .base import DAL 4 | from .helpers.classes import SQLCustomType 5 | from .helpers.methods import geoLine, geoPoint, geoPolygon 6 | from .objects import Field 7 | -------------------------------------------------------------------------------- /components/rsptx/data_extract/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.data_extract import core 2 | from rsptx.data_extract import anonymizeCourseData 3 | from rsptx.data_extract.anonymizeCourseData import Anonymizer 4 | 5 | __all__ = ["core", "anonymizeCourseData", "Anonymizer"] 6 | -------------------------------------------------------------------------------- /docs/source/book_server_api.routers.rslogging.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.routers.rslogging module 2 | ========================================== 3 | 4 | .. automodule:: book_server_api.routers.rslogging 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # ******************* 2 | # |docname| - testing 3 | # ******************* 4 | # .. toctree:: 5 | # :maxdepth: 2 6 | # :glob: 7 | # 8 | # README 9 | # *.py 10 | # test_course_1/*.py 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/yatl/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | envlist = py27,pypy,pypy3,py33,py34,py35,py36,py37 3 | 4 | [testenv] 5 | deps = 6 | coverage: coverage 7 | commands = 8 | py27,pypy,pypy3,py33,py34,py35,py36,py37: {envpython} -m unittest -v -f tests -------------------------------------------------------------------------------- /components/rsptx/templates/staticAssets/js/jquery-fix.js: -------------------------------------------------------------------------------- 1 | // The Bootstrap-based Sphinx theme uses $jqTheme 2 | // Setting $ is needed to override the (old!) version of jQuery packaged with Sphinx 3 | var $jqTheme = jQuery.noConflict(); 4 | var $ = jQuery.noConflict(); 5 | -------------------------------------------------------------------------------- /docs/source/book_server_api.routers.assessment.rst: -------------------------------------------------------------------------------- 1 | book\_server\_api.routers.assessment module 2 | =========================================== 3 | 4 | .. automodule:: book_server_api.routers.assessment 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/sessions/10e/1c6/127.0.0.1-cb884fdc-c31c-4179-9434-43db4b7df05e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/admin/sessions/10e/1c6/127.0.0.1-cb884fdc-c31c-4179-9434-43db4b7df05e -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/css/html4css1.css: -------------------------------------------------------------------------------- 1 | /* 2 | **************************** 3 | |docname| - Dummy CSS for LP 4 | **************************** 5 | This file is blank for Runestone -- other CodeChat instances supply something useful here. 6 | */ -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_sources/test_chapter_1/toctree.rst: -------------------------------------------------------------------------------- 1 | ============== 2 | Test chapter 1 3 | ============== 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | 8 | subchapter_a 9 | subchapter_b 10 | dynamicquestions -------------------------------------------------------------------------------- /workspace.toml: -------------------------------------------------------------------------------- 1 | [tool.polylith] 2 | namespace = "rsptx" 3 | git_tag_pattern = "stable-*" 4 | 5 | [tool.polylith.structure] 6 | theme = "loose" 7 | 8 | [tool.polylith.resources] 9 | brick_docs_enabled = false 10 | 11 | [tool.polylith.test] 12 | enabled = true 13 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "singleQuote": false, 4 | "trailingComma": "none", 5 | "bracketSpacing": true, 6 | "bracketSameLine": false, 7 | "tabWidth": 2, 8 | "endOfLine": "auto" 9 | } 10 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/FillInTheBlankExercise/index.ts: -------------------------------------------------------------------------------- 1 | export { FillInTheBlankExercise } from "./FillInTheBlankExercise"; 2 | export * from "./types"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default.mobile/change_password.html: -------------------------------------------------------------------------------- 1 | {{extend 'default.mobile/layout.html'}} 2 | 3 | {{block sectionclass}}change_password{{end}} 4 | 5 |

Change Admin Password

6 | 7 |
8 | {{=form}} 9 |
10 | 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line01.mp3 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line01.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line01.wav -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line02.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line02.mp3 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line02.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line02.wav -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line03.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line03.mp3 -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line03.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_static/audio/Example04_Tour01_Line03.wav -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/.codecov.yml: -------------------------------------------------------------------------------- 1 | codecov: 2 | branch: master 3 | 4 | coverage: 5 | precision: 2 6 | round: down 7 | range: "70...100" 8 | 9 | status: 10 | changes: false 11 | 12 | comment: 13 | layout: "header, diff, changes" 14 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/accessibility/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | css/*.css 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/assignment/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Assignment - directives for creating an assignment 3 | ************************************************** 4 | .. toctree:: 5 | :maxdepth: 1 6 | 7 | __init__.py 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/ABOUT: -------------------------------------------------------------------------------- 1 | web2py is an open source full-stack framework for agile development 2 | of secure database-driven web-based applications, written and programmable in 3 | Python. 4 | 5 | Created by Massimo Di Pierro 6 | 7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jquery-fix.js: -------------------------------------------------------------------------------- 1 | // The Bootstrap-based Sphinx theme uses $jqTheme 2 | // Setting $ is needed to override the (old!) version of jQuery packaged with Sphinx 3 | var $jqTheme = jQuery.noConflict(); 4 | var $ = jQuery.noConflict(); 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/admin/studentactivity.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

Student Activity Summary

4 | {{=SQLTABLE(grid,headers={'useinfo.sid':'Student','COUNT(useinfo.id)':'Number','MAX(useinfo.timestamp)':'Last Activity'})}} 5 | 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/animation/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Animation 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | README 9 | *.py 10 | js/*.js 11 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/styles/_variables.scss: -------------------------------------------------------------------------------- 1 | /* General */ 2 | $borderRadius:12px; /* border radius of layout element e.g. card, sidebar */ 3 | $transitionDuration:.2s; /* transition duration of layout elements e.g. sidebar, overlay menus */ -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/cellbotics/test/_sources/index.rst: -------------------------------------------------------------------------------- 1 | Cellbotics ActiveCode Test 2 | ========================== 3 | .. ble-pair-button:: 4 | 5 | .. activecode:: test_cellbotics_1 6 | 7 | import cellbotics 8 | cellbotics.Accelerometer() 9 | print("Pass.") 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/fitb/js/fitb-i18n.en.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | en: { 3 | msg_no_answer: "No answer provided.", 4 | msg_fitb_check_me: "Check me", 5 | msg_fitb_compare_me: "Compare me", 6 | msg_fitb_randomize: "Randomize", 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/hparsons/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/controllers/oauth.py: -------------------------------------------------------------------------------- 1 | # This page provides an endpoint for getting an oauth redirect after an oauth verification process 2 | def index(): 3 | full_url = URL(args=request.args, vars=request.get_vars, host=True) 4 | return {"url": full_url} 5 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/FillInTheBlankExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { QuestionEditor } from "./QuestionEditor"; 2 | export { BlankManager } from "./BlankManager"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html: -------------------------------------------------------------------------------- 1 | {%- if show_source and has_source and sourcename %} 2 | {{ _('Source') }} 4 | {%- endif %} 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default/uninstall.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

{{=T('Are you sure you want to uninstall application "%s"?', app)}}

4 |
5 | {{=dialog}} 6 |
7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html: -------------------------------------------------------------------------------- 1 | {%- if show_source and has_source and sourcename %} 2 | {{ _('Source') }} 4 | {%- endif %} 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_sources/lp_demo-test.py: -------------------------------------------------------------------------------- 1 | # ============================================ 2 | # |docname| -- test code for :doc:`lp_demo.py` 3 | # ============================================ 4 | from lp_demo import one 5 | 6 | assert one() == 1 7 | -------------------------------------------------------------------------------- /components/rsptx/data_types/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.data_types import autograde 2 | from rsptx.data_types import which_to_grade 3 | from rsptx.data_types import question_type 4 | from rsptx.data_types import language 5 | 6 | __all__ = ["autograde", "which_to_grade", "question_type", "language"] 7 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/MatchingExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { SortableBlock } from "./SortableBlock"; 2 | export { MatchingInstructions } from "./MatchingInstructions"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/RAIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/RAIcon.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/parsons/js/placeholderLine.js: -------------------------------------------------------------------------------- 1 | import ParsonsLine from "./parsonsLine"; 2 | 3 | export default class PlaceholderLine extends ParsonsLine { 4 | constructor(problem) { 5 | super(problem, "placeholder", false); 6 | this.isPlaceholderLine = true; 7 | } 8 | } -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_sources/index.rst: -------------------------------------------------------------------------------- 1 | 2 | .. raw:: html 3 | 4 | 5 | 6 | .. fillintheblank:: question_1 7 | 8 | Mary had a π. 9 | 10 | - :x: Whatever. 11 | 12 | 13 | .. raw:: html 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-bold-webfont.eot -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-bold-webfont.ttf -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-bold-webfont.woff -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/DragAndDropExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { SortableBlock } from "./SortableBlock"; 2 | export { DragAndDropInstructions } from "./DragAndDropInstructions"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/khanex/test/_sources/Khanex/toctree.rst: -------------------------------------------------------------------------------- 1 | .. image:: ../../_static/MobileCSPLogo.png 2 | :width: 250 3 | :align: center 4 | 5 | 6 | Khanex 7 | :::::::: 8 | 9 | .. toctree:: 10 | :caption: Khanex Test 11 | :maxdepth: 3 12 | 13 | TestKhanex.rst 14 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/meta/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/poll/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/quizly/test/_sources/Quizly/toctree.rst: -------------------------------------------------------------------------------- 1 | .. image:: ../../_static/MobileCSPLogo.png 2 | :width: 250 3 | :align: center 4 | 5 | 6 | Quizly 7 | :::::::: 8 | 9 | .. toctree:: 10 | :caption: Quizly Test 11 | :maxdepth: 3 12 | 13 | TestQuizly.rst 14 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/video/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/static/codemirror/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-regular-webfont.eot -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-regular-webfont.ttf -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-regular-webfont.woff -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | omit = 3 | applications/runestone/controllers/appadmin.py 4 | applications/runestone/controllers/everyday.py 5 | applications/runestone/controllers/feed.py 6 | 7 | [html] 8 | directory = applications/runestone/tests/htmlcov 9 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/representers/mysql.py: -------------------------------------------------------------------------------- 1 | from ..adapters.mysql import MySQL 2 | from . import representers 3 | from .base import JSONRepresenter, SQLRepresenter 4 | 5 | 6 | @representers.register_for(MySQL) 7 | class MySQLRepresenter(SQLRepresenter, JSONRepresenter): 8 | pass 9 | -------------------------------------------------------------------------------- /components/rsptx/lp_sim_builder/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.lp_sim_builder import core 2 | from rsptx.lp_sim_builder import common_builder 3 | from rsptx.lp_sim_builder import scheduled_builder 4 | from rsptx.lp_sim_builder import feedback 5 | 6 | __all__ = ["common_builder", "core", "feedback", "scheduled_builder"] 7 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/chapterdb/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/codelens/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/interactives/runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/common/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/datafile/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/disqus/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/matrixeq/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/parsons/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/question/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/quizly/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/reveal/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/server/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/showeval/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/utility/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/webgldemo/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/webwork/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/languages/plural-uk.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | { 4 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 5 | 'останній': ['останні','останніх'], 6 | 'файл': ['файли','файлів'], 7 | 'твіт': ['твіти','твітів'], 8 | } 9 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/models/plugin_multiselect.py: -------------------------------------------------------------------------------- 1 | response.files.append( 2 | URL('static', 'plugin_multiselect/jquery.multi-select.js')) 3 | response.files.append(URL('static', 'plugin_multiselect/multi-select.css')) 4 | response.files.append(URL('static', 'plugin_multiselect/start.js')) 5 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.gitattributes: -------------------------------------------------------------------------------- 1 | # Ensure files that must always have LF line endings on checkout will by ensuring Docker build and bash scripts will work regardless of OS 2 | 3 | Dockerfile text eol=lf 4 | *.sh text eol=lf 5 | scripts/** text eol=lf 6 | docker/docker_tools.py eol=lf 7 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-extralight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-extralight-webfont.eot -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-extralight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-extralight-webfont.ttf -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-extralight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/static/js/jstree_themes/proton/fonts/titillium/titilliumweb-extralight-webfont.woff -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/clickableArea/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/js/mchoice-i18n.sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | "sr-Cyrl": { 3 | msg_mchoice_correct_answer: "Taчно!", 4 | msg_mchoice_incorrect_answer: "Нетачно.", 5 | msg_mchoice_check_me: "Провери", 6 | msg_mchoice_compare_me: "Упореди", 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/shortanswer/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/spreadsheet/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/tabbedStuff/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Accessibility 3 | ************************************************* 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | test/test_*.py 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/video/test/_sources/index.rst: -------------------------------------------------------------------------------- 1 | ================== 2 | Video Test Project 3 | ================== 4 | 5 | 6 | Lets try a YouTube Video 7 | 8 | 9 | .. youtube:: eDQ19ahXsSk 10 | :divid: goog_keyvalpairs 11 | :height: 315 12 | :width: 560 13 | :align: left 14 | 15 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/MultiChoiceExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { MultiChoiceQuestion } from "./MultiChoiceQuestion"; 2 | export { MultiChoiceOptionsWrapper } from "./MultiChoiceOptionsWrapper"; 3 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/setupTests.jsx: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import "@testing-library/jest-dom"; 6 | -------------------------------------------------------------------------------- /components/rsptx/endpoint_validators/__init__.py: -------------------------------------------------------------------------------- 1 | from rsptx.endpoint_validators import core 2 | from rsptx.endpoint_validators.core import ( 3 | instructor_role_required, 4 | with_course, 5 | author_role_required, 6 | ) 7 | 8 | __all__ = ["core", "instructor_role_required", "with_course", "author_role_required"] 9 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/types/PollTypes.ts: -------------------------------------------------------------------------------- 1 | import { Option } from "@/types/exercises"; 2 | 3 | export type PollType = "scale" | "options"; 4 | 5 | export interface PollOption extends Option { 6 | id: string; 7 | } 8 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/styles/layout.scss: -------------------------------------------------------------------------------- 1 | @use '_variables'; 2 | @use "_mixins"; 3 | @use "_main"; 4 | @use "_topbar"; 5 | @use "_menu"; 6 | @use "_config"; 7 | @use "_content"; 8 | @use "_footer"; 9 | @use "_responsive"; 10 | @use "_utils"; 11 | @use "_typography"; 12 | @use "_table"; 13 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Each line is a file pattern followed by one or more owners. 2 | 3 | # These owners will be the default owners for everything in 4 | # the repo. Unless a later match takes precedence, 5 | # @global-owner1 and @global-owner2 will be requested for 6 | # review when someone opens a pull request. 7 | * @bnmnetp 8 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/parsons/README.rst: -------------------------------------------------------------------------------- 1 | Parsons Directive 2 | ================= 3 | 4 | The master repository for the parsons problems code is https://github.com/vkaravir/js-parsons.git 5 | 6 | If you want to make customizations ONLY for runestone you should use the fork at https://github.com/bnmnetp/js-parsons.git 7 | 8 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /welcome/default/user 3 | Disallow: /runestone/ajax 4 | Disallow: /cgi-bin 5 | Disallow: /assignment 6 | Disallow: /author 7 | Disallow: /runestone/admin 8 | Disallow: /runestone/peer 9 | Disallow: /ns/books/published/*/_templates 10 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/tests/test_rocket.py: -------------------------------------------------------------------------------- 1 | # TODO : I think we should continue to use pathoc (http://pathod.net/docs/pathoc) for tests but integrate the call in 2 | # gluon/tests so they run automatically. No need to make our own tests. 3 | # ref: https://groups.google.com/d/msg/web2py-developers/Cjye8_hXZk8/AXbftS3sCgAJ 4 | -------------------------------------------------------------------------------- /components/rsptx/templates/footer.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /projects/jobe/container-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # exit if any command has a non-zero exit status 4 | set -e 5 | 6 | echo "Starting Apache in the background" 7 | /usr/sbin/apache2ctl -D BACKGROUND 8 | 9 | echo "Start testsubmit.py as user www-data" 10 | su -s /bin/bash -c "/usr/bin/python3 /var/www/html/jobe/testsubmit.py" www-data 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/__init__.py: -------------------------------------------------------------------------------- 1 | # ************ 2 | # Web2py views 3 | # ************ 4 | # .. toctree:: 5 | # :maxdepth: 2 6 | # :glob: 7 | # 8 | # *.html 9 | # admin/* 10 | # assignments/* 11 | # books/* 12 | # dashboard/* 13 | # default/* 14 | # designer/* 15 | # lti/* 16 | # oauth/* 17 | -------------------------------------------------------------------------------- /docs/source/configuration.rst: -------------------------------------------------------------------------------- 1 | configuration package 2 | ===================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | configuration.core 11 | 12 | Module contents 13 | --------------- 14 | 15 | .. automodule:: configuration 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/_globals.py: -------------------------------------------------------------------------------- 1 | import threading 2 | 3 | GLOBAL_LOCKER = threading.RLock() 4 | THREAD_LOCAL = threading.local() 5 | 6 | DEFAULT = lambda: None 7 | 8 | 9 | def IDENTITY(x): 10 | return x 11 | 12 | 13 | def OR(a, b): 14 | return a | b 15 | 16 | 17 | def AND(a, b): 18 | return a & b 19 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/contrib/fastapi/launch_data_storage/cache.py: -------------------------------------------------------------------------------- 1 | from ....launch_data_storage.cache import CacheDataStorage 2 | 3 | 4 | class FastAPICacheDataStorage(CacheDataStorage): 5 | _cache = None 6 | 7 | def __init__(self, cache, **kwargs): 8 | self._cache = cache 9 | super().__init__(cache, **kwargs) 10 | -------------------------------------------------------------------------------- /docs/source/db.rst: -------------------------------------------------------------------------------- 1 | db package 2 | ========== 3 | 4 | Submodules 5 | ---------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | db.async_session 11 | db.core 12 | db.crud 13 | db.models 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: db 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/logging.rst: -------------------------------------------------------------------------------- 1 | logging package 2 | =============== 3 | 4 | Submodules 5 | ---------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | logging.applogger 11 | logging.core 12 | 13 | Module contents 14 | --------------- 15 | 16 | .. automodule:: rsptx.logging 17 | :members: 18 | :undoc-members: 19 | :show-inheritance: 20 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/utils/json.ts: -------------------------------------------------------------------------------- 1 | export const safeJsonParse = (value: string | object): T | undefined => { 2 | if (typeof value === "object" && value !== null) { 3 | return value as T; 4 | } 5 | 6 | try { 7 | return JSON.parse(value) as T; 8 | } catch { 9 | return undefined; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/README.rst: -------------------------------------------------------------------------------- 1 | Blockly Directive 2 | ================= 3 | 4 | 5 | Sources: 6 | 7 | CSS: 8 | 9 | None 10 | 11 | JS: 12 | 13 | The blockly js files are copied from the latest release of blockly. If you want to customize them 14 | for your project you should fork the project and move the files here. 15 | 16 | -------------------------------------------------------------------------------- /components/rsptx/templates/staticAssets/course.css: -------------------------------------------------------------------------------- 1 | .course_page { 2 | width: 90%; 3 | margin-left: auto; 4 | margin-right: auto; 5 | } 6 | 7 | 8 | .assignment_chooser { 9 | max-height: 24rem; 10 | overflow-y: scroll; 11 | margin-bottom: 1rem; 12 | border: solid #ccc; 13 | padding: .5rem; 14 | border-radius: 5px; 15 | } -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/styles/_footer.scss: -------------------------------------------------------------------------------- 1 | @use "variables"; 2 | 3 | .layout-footer { 4 | transition: margin-left variables.$transitionDuration; 5 | display: flex; 6 | align-items: center; 7 | justify-content: center; 8 | padding-top: 1rem; 9 | border-top: 1px solid var(--surface-border); 10 | } 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_sources/test_chapter_1/dynamicquestions.rst: -------------------------------------------------------------------------------- 1 | Testing SelectQuestion 2 | ====================== 3 | 4 | .. selectquestion:: dynamic_q_1 5 | :fromid: test_activecode_1 6 | :points: 10 7 | 8 | 9 | TODO - Add another test to test within an exam but this will require selenium 10 | -------------------------------------------------------------------------------- /docs/source/validation.rst: -------------------------------------------------------------------------------- 1 | validation package 2 | ================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | validation.core 11 | validation.schemas 12 | 13 | Module contents 14 | --------------- 15 | 16 | .. automodule:: validation 17 | :members: 18 | :undoc-members: 19 | :show-inheritance: 20 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/contrib/fastapi/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | from .cookie import FastAPICookieService 3 | from .oidc_login import FastAPIOIDCLogin 4 | from .message_launch import FastAPIMessageLaunch 5 | from .request import FastAPIRequest 6 | from .session import FastAPISessionService 7 | from .launch_data_storage.cache import FastAPICacheDataStorage 8 | -------------------------------------------------------------------------------- /docs/source/response_helpers.rst: -------------------------------------------------------------------------------- 1 | response\_helpers package 2 | ========================= 3 | 4 | Submodules 5 | ---------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | response_helpers.core 11 | 12 | Module contents 13 | --------------- 14 | 15 | .. automodule:: response_helpers 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/ActiveCodeExercise/index.ts: -------------------------------------------------------------------------------- 1 | export { ActiveCodeExercise } from "./ActiveCodeExercise"; 2 | export { ActiveCodeExerciseSettings } from "./ActiveCodeExerciseSettings"; 3 | export { ActiveCodePreview } from "./ActiveCodePreview"; 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/global.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | 3 | declare global { 4 | type EBookConfig = Partial<{ 5 | isInstructor: boolean; 6 | course: string; 7 | username: string; 8 | isLoggedIn: boolean; 9 | author: string; 10 | }>; 11 | 12 | interface Window { 13 | eBookConfig: EBookConfig; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /projects/w2p_login_assign_grade/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /usr/local/lib/python3.10/site-packages/rsptx/web2py_server 4 | mkdir -p applications/runestone/errors 5 | chown -R www-data:www-data applications/runestone/errors 6 | python web2py.py -S runestone -M -R tickets2db.py & 7 | cd /usr/src/app 8 | gunicorn --bind 0.0.0.0:8112 rsptx.web2py_server.wsgihandler:application -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/SelectQuestionExercise/components/index.ts: -------------------------------------------------------------------------------- 1 | export { QuestionListEditor } from "./QuestionListEditor"; 2 | export { ABExperimentSettings } from "./ABExperimentSettings"; 3 | export { ToggleOptionsSettings } from "./ToggleOptionsSettings"; 4 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/mercurial/revision.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

{{=T('Revision %s', rev)}}

4 | 5 | {{=form}} 6 | 7 |

8 |

{{=T('Changelog')}}

9 | 10 | {{=desc}} 11 | 12 |

13 |

{{=T('Files added')}}

14 | 15 | {{=TABLE(*[TR(f) for f in files])}} 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/js/mchoice-i18n.en.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | en: { 3 | msg_mchoice_correct_answer: "Correct.", 4 | msg_mchoice_incorrect_answer: 5 | "Incorrect. You gave $1 $2 and got $3 correct of $4 needed.", 6 | msg_mchoice_check_me: "Check me", 7 | msg_mchoice_compare_me: "Compare me", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RunestoneInteractive/rs/HEAD/bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/parsons/css/parsons.less: -------------------------------------------------------------------------------- 1 | .ptx-runestone-container,.runestone-sphinx { 2 | @import (less) url("./parsons.css"); 3 | 4 | } 5 | 6 | /* make entire block background match background of code */ 7 | :root.dark-mode { 8 | .ptx-runestone-container .parsons .block:has(code[class*=language-]) { 9 | background: hsl(0, 0%, 8%); 10 | } 11 | } -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/webgldemo/css/webgldemo.css: -------------------------------------------------------------------------------- 1 | /* Major sections */ 2 | .webgldemo_container { 3 | background-color: #fcf8e3; 4 | box-sizing: border-box; 5 | width: 100%; 6 | display: block; 7 | margin-bottom: 1em; 8 | } 9 | 10 | .webgldemo_canvas { 11 | background-color: #fcf8e3; 12 | box-sizing: border-box; 13 | } 14 | 15 | .webgldemo_controls { 16 | } 17 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/AssignmentExercisesList/index.tsx: -------------------------------------------------------------------------------- 1 | import { withDragLogic } from "@components/ui/EditableTable/hoc/withDragLogic"; 2 | 3 | import { AssignmentExercisesContainer } from "./AssignmentExercisesContainer"; 4 | 5 | export const AssignmentExercises = withDragLogic(AssignmentExercisesContainer); 6 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/constants.ts: -------------------------------------------------------------------------------- 1 | export const POLL_TYPES = [ 2 | { label: "Scale (1 to N)", value: "scale" }, 3 | { label: "Multiple Options", value: "options" } 4 | ]; 5 | 6 | export const SCALE_CONFIG = { 7 | MIN: 2, 8 | MAX: 50, 9 | DEFAULT: 5 10 | } as const; 11 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/types/dataset.ts: -------------------------------------------------------------------------------- 1 | export type TableDropdownOption = { 2 | value: string; 3 | label: string; 4 | description: string; 5 | supported_question_types?: any; 6 | }; 7 | 8 | export type SectionOption = { 9 | title: string; 10 | label: string; 11 | }; 12 | 13 | export type SectionsResponse = { 14 | sections: SectionOption[]; 15 | }; 16 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/pytest.ini: -------------------------------------------------------------------------------- 1 | # **************************** 2 | # |docname| - Configure pytest 3 | # **************************** 4 | [pytest] 5 | # See `Registering marks `_; this mark is defined in `selenium_module_fixture`. 6 | markers = 7 | exit_status_success: Determine if the runestone build exit code is checked by ``selenium_module_fixture``. -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/blockly/toctree.rst: -------------------------------------------------------------------------------- 1 | ******************************************************** 2 | Blockly - Embed block-based code generation in Runestone 3 | ******************************************************** 4 | Warning: This component is deprecated. Do not use it in new books. 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | :glob: 9 | 10 | README 11 | *.py 12 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/deployment.py: -------------------------------------------------------------------------------- 1 | import typing as t 2 | 3 | 4 | class Deployment: 5 | _deployment_id: t.Optional[str] = None 6 | 7 | def get_deployment_id(self) -> t.Optional[str]: 8 | return self._deployment_id 9 | 10 | def set_deployment_id(self, deployment_id: str) -> "Deployment": 11 | self._deployment_id = deployment_id 12 | return self 13 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/reading/AssignmentReadings.tsx: -------------------------------------------------------------------------------- 1 | import { withDragLogicReadings } from "@components/ui/EditableTable/hoc/withDragLogicReadings"; 2 | 3 | import { AssignmentReadingsContainer } from "./AssignmentReadingsContainer"; 4 | 5 | export const AssignmentReadings = withDragLogicReadings(AssignmentReadingsContainer); 6 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/mchoice/js/mchoice-i18n.pt-br.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | "pt-br": { 3 | msg_mchoice_correct_answer: "Correto.", 4 | msg_mchoice_incorrect_answer: 5 | "Incorreto. Você deu $1 resposta(s) e teve $3 correto(s) de $4 necessários.", 6 | msg_mchoice_check_me: "Verificar", 7 | msg_mchoice_compare_me: "Comparar", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/wavedrom/test/test_wavedrom.py: -------------------------------------------------------------------------------- 1 | def test_1(selenium_utils_get): 2 | # After the render, Wavedrom will create a div with a numbered ID. If this exists, then the render worked. Don't try waiting for the component to be ready, since this isn't a Runestone Component -- it doesn't emit a ready signal. 3 | selenium_utils_get.driver.find_element_by_id("WaveDrom_Display_0") 4 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/styles/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin focused() { 2 | outline: 0 none; 3 | outline-offset: 0; 4 | transition: box-shadow .2s; 5 | box-shadow: var(--focus-ring); 6 | } 7 | 8 | @mixin focused-inset() { 9 | outline: 0 none; 10 | outline-offset: 0; 11 | transition: box-shadow .2s; 12 | box-shadow: inset var(--focus-ring); 13 | } 14 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/models/menu.py: -------------------------------------------------------------------------------- 1 | response.title = settings.title 2 | response.subtitle = settings.subtitle 3 | response.meta.author = "%(author)s <%(author_email)s>" % settings 4 | response.meta.keywords = settings.keywords 5 | response.meta.description = settings.description 6 | response.menu = [ 7 | (T("Index"), URL("default", "index") == URL(), URL("default", "index"), []) 8 | ] 9 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/components/exercises/components/CreateExercise/components/MultiChoiceExercise/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./MultiChoiceExercise"; 2 | export * from "./MultiChoiceOptions"; 3 | export * from "./MultiChoiceExerciseSettings"; 4 | export * from "./MultiChoicePreview"; 5 | 6 | export { MultiChoiceExercise } from "./MultiChoiceExercise"; 7 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/scripts/makePtx.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if (( $# < 1 )); then 4 | echo "please provide version number" 5 | exit 6 | fi 7 | 8 | source ~/.virtualenvs/compdev39/bin/activate 9 | npm run dist 10 | source ~/.virtualenvs/json2xml/bin/activate 11 | python scripts/dist2xml.py $@ > runestone/dist/webpack_static_imports.xml 12 | cd runestone 13 | tar zcf dist-$1.tgz dist 14 | deactivate 15 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/generic.pdf: -------------------------------------------------------------------------------- 1 | {{ 2 | import os 3 | from gluon.contrib.generics import pdf_from_html 4 | filename = '%s/%s.html' % (request.controller,request.function) 5 | if os.path.exists(os.path.join(request.folder,'views',filename)): 6 | html=response.render(filename) 7 | else: 8 | html=BODY(BEAUTIFY(response._vars)).xml() 9 | pass 10 | =pdf_from_html(html) 11 | }} 12 | -------------------------------------------------------------------------------- /docs/source/templates.rst: -------------------------------------------------------------------------------- 1 | Templates 2 | ========= 3 | 4 | Each service may have a folder heirarchy for the Jinja2 templates used in the user interface. 5 | 6 | In addition the template component has a common folder ``staticAssets`` for static assets such as images, css and javascript. 7 | The static assets are copied to a static folder in the nginx service during the build process so that nginx can serve them. 8 | 9 | -------------------------------------------------------------------------------- /docs/source/cl_utils.rst: -------------------------------------------------------------------------------- 1 | cl\_utils package 2 | ================= 3 | 4 | Submodules 5 | ---------- 6 | 7 | cl\_utils.core module 8 | --------------------- 9 | 10 | .. automodule:: cl_utils.core 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: cl_utils 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /projects/latex_image/README: -------------------------------------------------------------------------------- 1 | This image is used by the author and worker services, so we can avoid the long build time 2 | introduced by creating a latex image. 3 | 4 | To build this image simply run: 5 | 6 | docker build . -t latex_base:important --label keep=true 7 | 8 | When pruning 9 | 10 | docker image prune -a --filter "label!=keep" 11 | docker container prune 12 | 13 | It might be --filter "label=keep=true" -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/js/dragndrop-i18n.pt-br.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | "pt-br": { 3 | msg_dragndrop_correct_answer: "Correto!", 4 | msg_dragndrop_incorrect_answer: 5 | "Incorreto. Você teve $1 correto(s) e $2 incorreto(s) de $3. Você deixou $4 em branco.", 6 | msg_dragndrop_check_me: "Verificar", 7 | msg_dragndrop_reset: "Resetar", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/js/dragndrop-i18n.sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | "sr-Cyrl": { 3 | msg_dragndrop_correct_answer: "Тачан одговор!", 4 | msg_dragndrop_incorrect_answer: 5 | "Нетачно. Добили сте $1 тачних и $2 нетачних од $3. Остало вам је $4 празнина.", 6 | msg_dragndrop_check_me: "Провери", 7 | msg_dragndrop_reset: "Поништи", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/fitb/toctree.rst: -------------------------------------------------------------------------------- 1 | ******************************************************** 2 | fitb: A Sphinx extension for fill-in-the-blank questions 3 | ******************************************************** 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | *.py 9 | js/*.js 10 | css/*.css 11 | fitb_html_structure.html 12 | dynamic_problems.rst 13 | test/test_*.py 14 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/shortanswer/css/shortanswer.css: -------------------------------------------------------------------------------- 1 | div.journal div.latexoutput { 2 | background-color: var(--outerBackground, #eeeeee); 3 | padding: 1em; 4 | margin-bottom: 10px; 5 | border-radius: 5px; 6 | } 7 | 8 | 9 | .shortanswer_section .alert { 10 | margin-bottom: 0; 11 | } 12 | 13 | .shortanswer__timestamp { 14 | font-size: 0.9em; 15 | color: var(--grayToWhite, #333); 16 | } -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/AUTHORS: -------------------------------------------------------------------------------- 1 | - Massimo Di Pierro 2 | - Giovanni Barillari 3 | - Simone Bizzotto 4 | - Paolo Valleri 5 | - Niall Sweeny for MS SQL support 6 | - Marcel Leuthi for Oracle support 7 | - Chris Clark 8 | - clach05 9 | - Denes Lengyel 10 | - Stephen Rauch 11 | -------------------------------------------------------------------------------- /components/rsptx/templates/assignment/selfgrade.js: -------------------------------------------------------------------------------- 1 | function selfGrade(assignment_id) { 2 | jQuery.ajax({ 3 | url: eBookConfig.app + '/assignments/student_autograde', 4 | type: "POST", 5 | dataType: "JSON", 6 | data: { 7 | assignment_id: assignment_id, 8 | }, 9 | success: function (retdata) { 10 | window.location.reload(true); 11 | } 12 | }); 13 | } -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/types/api.ts: -------------------------------------------------------------------------------- 1 | export type DetailResponse = { 2 | detail: T; 3 | }; 4 | 5 | export enum HttpStatusCode { 6 | OK = 200, 7 | CREATED = 201, 8 | NO_CONTENT = 204, 9 | BAD_REQUEST = 400, 10 | UNAUTHORIZED = 401, 11 | FORBIDDEN = 403, 12 | NOT_FOUND = 404, 13 | UNPROCESSABLE_CONTENT = 422, 14 | INTERNAL_SERVER_ERROR = 500, 15 | SERVICE_UNAVAILABLE = 503 16 | } 17 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default.mobile/delete_plugin.html: -------------------------------------------------------------------------------- 1 | {{extend 'default.mobile/layout.html'}} 2 | 3 | {{block sectionclass}}delete_plugin{{end}} 4 | 5 |
6 |

{{=T('Are you sure you want to delete plugin "%s"?', plugin)}}

7 |

{{=FORM(INPUT(_type='submit',_name='nodelete',_value=T('NO')))}}

8 |

{{=FORM(INPUT(_type='submit',_name='delete',_value=T('YES')))}}

9 |
10 | 11 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default.mobile/uninstall.html: -------------------------------------------------------------------------------- 1 | {{extend 'default.mobile/layout.html'}} 2 | 3 |
4 |

{{=T('Are you sure you want to uninstall application "%s"?', app)}}

5 | 6 | 7 | 8 |
{{=FORM(INPUT(_type='submit',_name='nodelete',_value=T('Abort')))}}{{=FORM(INPUT(_type='submit',_name='delete',_value=T('Uninstall')))}}
9 |
10 | 11 | -------------------------------------------------------------------------------- /components/rsptx/templates/staticAssets/js/selfgrade.js: -------------------------------------------------------------------------------- 1 | function selfGrade(assignment_id) { 2 | jQuery.ajax({ 3 | url: eBookConfig.app + '/assignments/student_autograde', 4 | type: "POST", 5 | dataType: "JSON", 6 | data: { 7 | assignment_id: assignment_id, 8 | }, 9 | success: function (retdata) { 10 | window.location.reload(true); 11 | } 12 | }); 13 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Runestone Community Support 4 | url: https://blog.runestone.academy/pages/support.html 5 | about: Our slack channel is the best place to get immediate support for questions 6 | - name: Frequently Asked Questions 7 | url: https://guide.runestone.academy 8 | about: Please Check here before asking a question or creating an issue 9 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/styles/_content.scss: -------------------------------------------------------------------------------- 1 | @use "variables"; 2 | 3 | .layout-main-container { 4 | display: flex; 5 | flex-direction: column; 6 | min-height: 95vh; 7 | max-height: 95vh; 8 | justify-content: space-between; 9 | padding: 2rem 2rem 2rem 2rem; 10 | transition: margin-left variables.$transitionDuration; 11 | } 12 | 13 | .layout-main { 14 | flex: 1 1 auto; 15 | } 16 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/dragndrop/js/dragndrop-i18n.en.js: -------------------------------------------------------------------------------- 1 | $.i18n().load({ 2 | en: { 3 | msg_dragndrop_correct_answer: "You are correct!", 4 | msg_dragndrop_incorrect_answer: 5 | "Incorrect. Of the cards you have sorted you placed $1 correctly and $2 incorrectly. You have $4 left to place.", 6 | msg_dragndrop_check_me: "Check me", 7 | msg_dragndrop_reset: "Reset", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/selectquestion/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Dynamic Questions 3 | ************************************************* 4 | See the `overview book `_ for user documentation. 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | :glob: 9 | 10 | *.py 11 | js/*.js 12 | css/*.css 13 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/lp/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Literate programming (LP) 3 | ************************************************* 4 | The following files define the Literate Programming directive for Runestone, as well as adding some unrelated functionality. 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | :glob: 9 | 10 | *.py 11 | js/*.js 12 | css/*.css 13 | test/test_*.py 14 | -------------------------------------------------------------------------------- /components/rsptx/templates/staticAssets/assignment/selfgrade.js: -------------------------------------------------------------------------------- 1 | function selfGrade(assignment_id) { 2 | jQuery.ajax({ 3 | url: eBookConfig.app + '/assignments/student_autograde', 4 | type: "POST", 5 | dataType: "JSON", 6 | data: { 7 | assignment_id: assignment_id, 8 | }, 9 | success: function (retdata) { 10 | window.location.reload(true); 11 | } 12 | }); 13 | } -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/selfgrade.js: -------------------------------------------------------------------------------- 1 | function selfGrade(assignment_id) { 2 | jQuery.ajax({ 3 | url: eBookConfig.app + '/assignments/student_autograde', 4 | type: "POST", 5 | dataType: "JSON", 6 | data: { 7 | assignment_id: assignment_id, 8 | }, 9 | success: function (retdata) { 10 | window.location.reload(true); 11 | } 12 | }); 13 | } -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/utils/object.ts: -------------------------------------------------------------------------------- 1 | export const isEmptyObject = (obj: T): boolean => { 2 | return Object.keys(obj).length === 0; 3 | }; 4 | 5 | export const dumpObject = (data: unknown, spacing: number = 2): string => { 6 | try { 7 | return JSON.stringify(data, null, spacing); 8 | } catch (error) { 9 | return `Error: Unable to serialize the provided data - ${error}`; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/timed/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | Timed Exam Questions 3 | ************************************************* 4 | See the `overview book `_ for user documentation. 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | :glob: 9 | 10 | *.py 11 | js/*.js 12 | css/*.css 13 | test/test_*.py 14 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/wavedrom/test/_sources/index.rst: -------------------------------------------------------------------------------- 1 | ************* 2 | Wavedrom test 3 | ************* 4 | 5 | .. wavedrom:: 6 | :caption: Two signals, PB1 (the pushbutton) and LED1, change over time. 7 | 8 | signal: [ 9 | {name: 'PB1', wave: '1.0..1..0..1..', node: '..a..b..c..d', phase: 0.5}, 10 | {name: 'LED1', wave: '0.1.....0....', node: '..f.....g'}, 11 | ], edge: [ 12 | 'a~f', 'c~g', 13 | ], 14 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default/git_push.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{ 3 | frm = form 4 | smt_button = frm.element(_type="submit") 5 | smt_button['_class'] = 'btn' 6 | smt_button['_style'] = 'margin-right:4px;' 7 | }} 8 | 9 |

{{=T('This will push changes to the remote repo for application "%s".', app)}}

10 |
11 | {{=form}} 12 |
13 | 14 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/request.py: -------------------------------------------------------------------------------- 1 | from abc import ABCMeta, abstractmethod 2 | 3 | 4 | class Request: 5 | __metaclass__ = ABCMeta 6 | 7 | @property 8 | def session(self): 9 | raise NotImplementedError 10 | 11 | @abstractmethod 12 | def is_secure(self) -> bool: 13 | raise NotImplementedError 14 | 15 | @abstractmethod 16 | def get_param(self, key: str) -> str: 17 | raise NotImplementedError 18 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/lp/__init__.py: -------------------------------------------------------------------------------- 1 | # ******************************** 2 | # |docname| - LP module definition 3 | # ******************************** 4 | from runestone.lp import inlinesyntaxhighlight, lp 5 | 6 | # Register the for loop directive with Sphinx. 7 | from runestone.lp import for_loop # NOQA: F401 8 | 9 | 10 | # Initialize both extensions. 11 | def setup(app): 12 | inlinesyntaxhighlight.setup(app) 13 | return lp.setup(app) 14 | -------------------------------------------------------------------------------- /components/rsptx/templates/staticAssets/js/documentation_options.js: -------------------------------------------------------------------------------- 1 | var DOCUMENTATION_OPTIONS = { 2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), 3 | VERSION: '0.0', 4 | LANGUAGE: 'en', 5 | COLLAPSE_INDEX: false, 6 | BUILDER: 'html', 7 | FILE_SUFFIX: '.html', 8 | LINK_SUFFIX: '.html', 9 | HAS_SOURCE: true, 10 | SOURCELINK_SUFFIX: '.txt', 11 | NAVIGATION_WITH_KEYS: false 12 | }; -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/selectquestion/css/selectquestion.css: -------------------------------------------------------------------------------- 1 | #component-preview { 2 | margin-right: 20px; 3 | position: fixed; 4 | right: 0px; 5 | max-height: 100%; 6 | overflow-y: scroll; 7 | top: 0px; 8 | padding-top: 60px; 9 | } 10 | 11 | .toggle-preview { 12 | border: 4px solid; 13 | border-radius: 10px; 14 | background-color: azure; 15 | padding-top: 10px; 16 | box-shadow: 10px 5px 5px gray; 17 | } 18 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/tests/test_course_1/_sources/lp_demo.py: -------------------------------------------------------------------------------- 1 | # ===================================== 2 | # |docname| - Literate programming demo 3 | # ===================================== 4 | # Write a function named ``one`` which takes no parameters and returns the value 1. 5 | # 6 | # SOLUTION_BEGIN 7 | 8 | 9 | def one(): 10 | return 1 11 | 12 | 13 | # SOLUTION_END 14 | 15 | # .. lp_build:: test_lp_1 16 | # :builder: python 17 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/views/generic.rss: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by the controller action 4 | # for this to work the action must return something like 5 | # 6 | # dict(title=...,link=...,description=...,created_on='...',items=...) 7 | # 8 | # items is a list of dictionaries each with title, link, description, pub_date. 9 | ### 10 | from gluon.serializers import rss}}{{=XML(rss(response._vars))}} 11 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/exception.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | 3 | 4 | class LtiException(Exception): 5 | pass 6 | 7 | 8 | class OIDCException(Exception): 9 | pass 10 | 11 | 12 | class LtiServiceException(LtiException): 13 | def __init__(self, response: aiohttp.ClientResponse): 14 | msg = f"HTTP response [{response.url}]: {str(response.status)} - {response.reason}" 15 | super().__init__(msg) 16 | self.response = response 17 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length=88 3 | ignore=F821, 4 | W503, 5 | E203, # space before : 6 | E501, 7 | E265, 8 | E266, # too many # 9 | E711, 10 | E712 # web2py needs to compare to == True or == False for queries 11 | 12 | builtins=settings, 13 | request, 14 | response, 15 | db, 16 | auth, 17 | redirect, 18 | XML, 19 | URL, 20 | T, 21 | HTTP, 22 | cache, 23 | gluon, 24 | verifyInstructorStatus 25 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/static/js/documentation_options.js: -------------------------------------------------------------------------------- 1 | var DOCUMENTATION_OPTIONS = { 2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), 3 | VERSION: '0.0', 4 | LANGUAGE: 'en', 5 | COLLAPSE_INDEX: false, 6 | BUILDER: 'html', 7 | FILE_SUFFIX: '.html', 8 | LINK_SUFFIX: '.html', 9 | HAS_SOURCE: true, 10 | SOURCELINK_SUFFIX: '.txt', 11 | NAVIGATION_WITH_KEYS: false 12 | }; -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/exceptions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | 4 | class NotFoundException(Exception): 5 | pass 6 | 7 | 8 | class NotAuthorizedException(Exception): 9 | pass 10 | 11 | 12 | class NotOnNOSQLError(NotImplementedError): 13 | def __init__(self, message=None): 14 | if message is None: 15 | message = "Not Supported on NoSQL databases" 16 | super(NotOnNOSQLError, self).__init__(message) 17 | -------------------------------------------------------------------------------- /components/rsptx/lti1p3/pylti1p3/utils.py: -------------------------------------------------------------------------------- 1 | import urllib.parse as urlparse # type: ignore 2 | from urllib.parse import urlencode # type: ignore 3 | 4 | 5 | def add_param_to_url(url: str, param_name: str, param_value: object) -> str: 6 | url_parts = list(urlparse.urlparse(url)) 7 | query = dict(urlparse.parse_qsl(url_parts[4])) 8 | query[str(param_name)] = str(param_value) 9 | url_parts[4] = urlencode(query) 10 | return urlparse.urlunparse(url_parts) 11 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/utils/date.ts: -------------------------------------------------------------------------------- 1 | export const convertDateToISO = (date: Date): string => { 2 | const offset = date.getTimezoneOffset(); 3 | const localDate = new Date(date.getTime() - offset * 60 * 1000); 4 | 5 | return localDate.toISOString().slice(0, 19); // Remove 'Z' and milliseconds 6 | }; 7 | 8 | export const getDateFormat = (locale = navigator.language) => { 9 | return locale.endsWith("US") ? "mm/dd/yy" : "dd/mm/yy"; 10 | }; 11 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/activecode/toctree.rst: -------------------------------------------------------------------------------- 1 | ************************************************* 2 | ActiveCode - Run code in the browser 3 | ************************************************* 4 | See the `overview `_. 5 | 6 | .. toctree:: 7 | :maxdepth: 1 8 | :glob: 9 | 10 | README 11 | *.py 12 | js/*.js 13 | css/*.css 14 | *.java 15 | test/test_*.py 16 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | out 8 | 9 | # testing 10 | /coverage 11 | 12 | # production 13 | /build 14 | 15 | # misc 16 | .DS_Store 17 | .env.local 18 | .env.development.local 19 | .env.test.local 20 | .env.production.local 21 | 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | .vite -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/components/routes/AssignmentBuilder/index.tsx: -------------------------------------------------------------------------------- 1 | export { AssignmentBuilder } from "./AssignmentBuilder"; 2 | export { AssignmentBuilderCreate } from "./components/AssignmentBuilderCreate"; 3 | export { AssignmentBuilderEdit } from "./components/AssignmentBuilderEdit"; 4 | export { AssignmentBuilderExercises } from "./components/AssignmentBuilderExercises"; 5 | export { AssignmentBuilderLayout } from "./components/AssignmentBuilderLayout"; 6 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/pydal/parsers/google.py: -------------------------------------------------------------------------------- 1 | from ..adapters.google import GoogleDatastore 2 | from . import for_type, parsers 3 | from .base import BasicParser, JSONParser 4 | 5 | 6 | @parsers.register_for(GoogleDatastore) 7 | class GoogleDatastoreParser(BasicParser, JSONParser): 8 | @for_type("id") 9 | def _id(self, value): 10 | return value 11 | 12 | @for_type("boolean") 13 | def _boolean(self, value): 14 | return value 15 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/gluon/packages/dal/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from ._adapt import IS_NOSQL 2 | 3 | if IS_NOSQL: 4 | from .nosql import * 5 | else: 6 | from .sql import * 7 | from .indexes import * 8 | 9 | from .validation import * 10 | from .caching import TestCache 11 | from .smart_query import * 12 | from .base import * 13 | from .contribs import * 14 | from .validators import * 15 | from .is_url_validators import * 16 | from .restapi import * 17 | from .tags import * 18 | -------------------------------------------------------------------------------- /bases/rsptx/assignment_server_api/assignment_builder/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | const reportWebVitals = (onPerfEntry: any) => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import("web-vitals").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/build/preview/_templates/plugin_layouts/sphinx_bootstrap/globaltoc.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/codelens/README.rst: -------------------------------------------------------------------------------- 1 | Codelens Directive 2 | ================== 3 | 4 | The master repository for the css/js files from OnlinePythonTutor is https://github.com/pgbovine/OnlinePythonTutor 5 | 6 | CSS: 7 | 8 | modal-basic.css is the style for modal popups inside codelens 9 | pytutor 10 | 11 | JS: 12 | 13 | All js files are from OPT. 14 | 15 | If you want to make customizations for Runestone use the fork at https://github.com/bnmnetp/OnlinePythonTutor 16 | 17 | 18 | -------------------------------------------------------------------------------- /bases/rsptx/interactives/runestone/video/css/video.css: -------------------------------------------------------------------------------- 1 | figcaption { 2 | margin: 0.75em 0; 3 | text-align: center; 4 | font: italic 13px/18px Cambria, Georgia, "Times New Roman", Times, serif; 5 | } 6 | 7 | img.bookfig { 8 | margin-left: auto; 9 | margin-right: auto; 10 | } 11 | 12 | .cl_caption { 13 | text-align: center; 14 | font-weight: bold; 15 | } 16 | 17 | .runestone iframe { 18 | display: block; 19 | margin-left: auto; 20 | margin-right: auto; 21 | } 22 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/admin/views/default.mobile/about.html: -------------------------------------------------------------------------------- 1 | {{extend 'default.mobile/layout.html'}} 2 | 3 | {{block sectionclass}}about{{end}} 4 | 5 |

{{=T("About application")}} "{{=app}}"

6 |

{{=T("About")}} {{=app}}

7 |

{{=button(URL('edit/%s/ABOUT' % (app)), T('Edit'))}}

8 |
{{=about}}
9 |

{{=T('License for')}} {{=app}}

10 |

{{=button(URL('edit/%s/LICENSE' % (app)), T('Edit'))}}

11 |
{{=license}}
12 | 13 | 14 | -------------------------------------------------------------------------------- /bases/rsptx/web2py_server/applications/runestone/.dockerignore: -------------------------------------------------------------------------------- 1 | # *********************************** 2 | # |docname| - Files ignored by docker 3 | # *********************************** 4 | # Per the `docs `__, these files are excluded from the Docker context. 5 | .git 6 | .venv 7 | _build 8 | **/Data 9 | **/Notebooks 10 | **/TestNotebooks 11 | **/Solutions 12 | **/altair*.json 13 | **/__pycache__ 14 | books 15 | docker/letsencrypt 16 | --------------------------------------------------------------------------------