Skip to content
This repository was archived by the owner on Jun 7, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,5 @@ bower_componenets/
.venv

runestone/build_info

.vscode/
49 changes: 49 additions & 0 deletions runestone/assess/test/_sources/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
======================================================
Testing: Multiple Choice and Multiple Answer Questions
======================================================

.. Here is were you specify the content and order of your new book.

.. Each section heading (e.g. "SECTION 1: A Random Section") will be
a heading in the table of contents. Source files that should be
generated and included in that section should be placed on individual
lines, with one line separating the first source filename and the
:maxdepth: line.

.. Sources can also be included from subfolders of this directory.
(e.g. "DataStructures/queues.rst").


Multiple Answer
---------------

.. mchoice:: question1
:multiple_answers:
:correct: a, c
:answer_a: red
:answer_b: brown
:answer_c: blue
:answer_d: gray
:feedback_a: Red it is.
:feedback_b: Not brown.
:feedback_c: Blue it is.
:feedback_d: Not gray.

Which colors might be found in a rainbow (check all)?


Multiple Choice
---------------

.. mchoice:: question2
:correct: a
:answer_a: red
:answer_b: brown
:answer_c: black
:answer_d: gray
:feedback_a: Red it is.
:feedback_b: Not brown.
:feedback_c: Not black.
:feedback_d: Not gray.

Which color might be found in a rainbow?
Empty file.
Binary file added runestone/assess/test/_static/activecodethumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added runestone/assess/test/_static/clock.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added runestone/assess/test/_static/close.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added runestone/assess/test/_static/first.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added runestone/assess/test/_static/last.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added runestone/assess/test/_static/next.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added runestone/assess/test/_static/pause.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added runestone/assess/test/_static/prev.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<li class="dropdown globaltoc-container">
<a href="{{ pathto(master_doc) }}"
class="dropdown-toggle"
data-toggle="dropdown">{{ theme_navbar_site_name }} <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
>{{ toctree(maxdepth=theme_globaltoc_depth|toint, collapse=False, includehidden=theme_globaltoc_includehidden|tobool) }}</ul>
</li>
Original file line number Diff line number Diff line change
@@ -0,0 +1,308 @@
{% extends "basic/layout.html" %}

{% set script_files = ['_static/runestonebase.js'] + script_files + [
'_static'+'/jquery-ui-1.10.3.custom.min.js',
'_static'+'/jquery-fix.js',
'_static'+'/bootstrap-3.0.0/js/bootstrap.min.js',
'_static'+'/bootstrap-sphinx.js',
'_static'+'/waypoints.min.js',
'_static'+'/rangy-core.js',
'_static'+'/rangy-textrange.js',
'_static'+'/rangy-cssclassapplier.js',
'_static'+'/user-highlights.js',
'_static'+'/jquery.idle-timer.js',
'_static'+'/processing-1.4.1.min.js',
'_static'+'/jquery.hotkey.js',
'_static'+'/jquery-migrate-1.2.1.min.js'
]
%}

{% set css_files = ['_static/bootstrap-3.0.0/css/bootstrap.min.css'] + css_files %}
{% if theme_bootswatch_theme %}
{% set css_files = css_files +
['http://netdna.bootstrapcdn.com/bootswatch/2.3.1/' + theme_bootswatch_theme + '/bootstrap.min.css']
%}
{% endif %}

{% set css_files = css_files + [
'_static'+'/jquery-ui-1.10.3.custom.min.css',
'_static'+'/bootstrap-sphinx.css',
'_static'+'/user-highlights.css',
'_static/runestone-custom-sphinx-bootstrap.css',
]
%}

{%- block doctype -%}
<!DOCTYPE html>
{%- endblock %}

{# Sidebar: Rework into our Boostrap nav section. #}
{% macro navBar() %}

<!-- Begin navbar -->
<div id="navbar" class="navbar navbar-default navbar-fixed-top" role="navigation">

<div class="container">

<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type='button' class='navbar-toggle' data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>

<div>
<a class="brand-logo" style='background: transparent url("{{pathto('_static/img/logo_small.png', 1)}}") no-repeat 0px 0px;' href="/{{appname}}/default/user/login">&nbsp; </a>
<a class="navbar-brand" href="{{ pathto(master_doc) }}">{% if theme_navbar_title -%}{{ theme_navbar_title|e }}{%- else -%}{{ project|e }}{%- endif -%}</a>
</div>
</div>

<div class="navbar-collapse collapse navbar-ex1-collapse">

<ul class="nav navbar-nav navbar-right">

<li class="divider-vertical"></li>

<!-- social media dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="glyphicon glyphicon-share-alt" style="opacity: 0.9"></i>
</a>
<ul class="dropdown-menu social-menu">
<li>
<div>
<b>Runestone in social media:</b>
</div>
<a href="https://twitter.com/iRunestone" class="twitter-follow-button" data-show-count="true">Follow @iRunestone</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<div class="fb-like" data-href="https://www.facebook.com/RunestoneInteractive" data-send="false" data-layout="button_count" data-width="300" data-show-faces="false" data-font="arial"></div>
</li>

<li class="divider"></li>
<li>
<div>
<b>Help support us:</b>
</div>
<div>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

</div>
</li>
</ul>
</li>
<!-- end social media dropdown -->

<li class="divider-vertical"></li>

<!-- search dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="glyphicon glyphicon-search" style='opacity:0.9;'></i>
</a>
<ul class='dropdown-menu'>
{% if 'overview' in course_id %}
<li><a href='/{{appname}}/static/{{course_id}}/overview.html'>Table of Contents</a></li>
{% else: %}
<li><a href='{{ pathto(master_doc) }}'>Table of Contents</a></li>
{% endif %}
<li><a href='/{{appname}}/static/{{course_id}}/genindex.html'>Book Index</a></li>
<li class="divider"></li>
<li id="scratch_ac_link"><a href="javascript:ACFactory.toggleScratchActivecode()">Scratch ActiveCode</a></li>
<li class="divider"></li>
<li style="width: 240px;">
<form class="navbar-search" style="margin:10px;" action="{{ pathto('search') }}" method="get">
<div class="input-group">
<input type="text" class="form-control" name="q" placeholder="Search this book" />
<span class="input-group-btn">
<button class="btn btn-primary" style="margin:0;" type="submit">
<i class="glyphicon glyphicon-search"></i>
</button>
</span>
</div><!-- /input-group -->
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</li>
</ul>
</li>
<!-- end search dropdown -->

<li class="divider-vertical"></li>

{% if use_services == 'true' %}
<!-- user account dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="glyphicon glyphicon-user" style="opacity:0.9;"></i>
</a>
<ul class="dropdown-menu user-menu">
<li><span class='loggedinuser'></span></li>
<li class="divider"></li>
<li><a href='/{{appname}}/default/courses'>Change Course</a></li>
<li class="divider"></li>
<li><a href='{{course_url}}/{{appname}}/mygroup/initiateGroup' id="joinGroupLink">Join a Study Group</a></li>
<li><a href='{{course_url}}/{{appname}}/mygroup/schedule' id="groupScheduleLink">Group Schedule</a></li>
<li><a href='{{course_url}}/{{appname}}/mygroup/newschedule' id="newChapterLink">Schedule New Chapter</a></li>
<li><a href='{{course_url}}/{{appname}}/mygroup/manageGroup' id="manageGroupLink">Manage Group</a></li>
<li class="divider"></li>
<li><a href='{{course_url}}/{{appname}}/admin/index'>Instructor's Page</a></li>
<li><a href='{{ course_url }}/{{ appname }}/assignments/index'>Progress Page</a></li>
<li class="divider"></li>
<li><a href="{{course_url}}/{{appname}}/default/user/profile" id="profilelink">Edit Profile</a></li>
<li><a href="{{course_url}}/{{appname}}/default/user/change_password" id="passwordlink">Change Password</a></li>
<li><a href="{{course_url}}/{{appname}}/default/user/register" id="registerlink">Register</a></li>
<li class='loginout'><a href='#'>Login</a></li> <!-- correct link populated by addNavbarLoginLink() -->
</ul>
</li>
<!-- end user account dropdown -->
{% endif %}
<li class="divider-vertical"></li>

<!-- help menu dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="glyphicon glyphicon-question-sign" style="opacity:0.9;"></i>
</a>
<ul class="dropdown-menu user-menu">
<li><a href='/{{appname}}/static/{{course_id}}/navhelp.html'>Navigation Help</a></li>
<li><a href='/{{appname}}/static/overview/instructor.html'>Help for Instructors</a></li>
<li class="divider"></li>
<li><a href='http://runestoneinteractive.org'>About Runestone</a></li>
<li><a href='/{{ appname }}/default/reportabug?course={{ course_id }}&page={{ pathto(pagename,1) }}'>Report A Problem</a></li>
</ul>
</li>
<!-- end help menu dropdown -->

<li class="divider-vertical"></li>

</ul>

<ul class="nav navbar-nav">
<li class="divider-vertical"></li>
<!--{% block sidebartoc %}
{% include "localtoc.html" %}
<li class="divider-vertical"></li>
{% endblock %}
{% block sidebarrel %}
{% include "relations.html" %}
{% endblock %}-->
{% if theme_source_link_position == "nav" %}
<li>{% include "sourcelink.html" %}</li>
{% endif %}
</ul>

</div>
</div>
</div>
{% endmacro %}

{%- block extrahead %}
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
<link rel="shortcut icon" href="/{{appname}}/static/favicon.ico" type="image/ico" />

<script type="text/javascript">
eBookConfig = {};
eBookConfig.host = '{{course_url}}' ? '{{course_url}}' : 'http://127.0.0.1:8000';
eBookConfig.app = eBookConfig.host+'/{{appname}}';
eBookConfig.ajaxURL = eBookConfig.app+'/ajax/';
eBookConfig.course = '{{course_id}}';
eBookConfig.logLevel = {{loglevel}};
eBookConfig.loginRequired = {{login_required}};
eBookConfig.build_info = "{{build_info}}";
eBookConfig.isLoggedIn = false;
eBookConfig.useRunestoneServices = {{ use_services }};
eBookConfig.python3 = {{ python3 }};
eBookConfig.basecourse = '{{ basecourse }}';
eBookConfig.runestone_version = '{{ runestone_version }}';
</script>

<div id="fb-root"></div>
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&status=0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>


{% endblock %}

{# Silence the sidebar's, relbar's #}
{% block header %}{% endblock %}
{% block sidebar1 %}{% endblock %}
{% block sidebar2 %}{% endblock %}
{% block relbar1 %}{% endblock %}
{% block relbar2 %}{% endblock %}
{% block sidebarsourcelink %}{% endblock %}

{%- block content %}
{{ navBar() }}

<div class="container" id="continue-reading"></div>

<div class="container" id="main-content">
{% block body %}{% endblock %}
{% block nextprevious %}
{% include "subchapter.html" %}
{% endblock %}
</div>
{%- endblock %}

{%- block footer %}
<footer class="footer">
<div class="container">
<p class="pull-right">
{% if use_services == 'true' %}
<span id='numuserspan'></span> readers online now | <span class='loggedinuser'></span>
{% endif %}
| <a href="#">Back to top</a>
{% if theme_source_link_position == "footer" %}
<br />
{% include "sourcelink.html" %}
{% endif %}
</p>
<p>
{%- if show_copyright %}
{%- if hasdoc('copyright') %}
{% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
{%- else %}
{% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
{%- endif %}
{%- endif %}
{%- if last_updated %}
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}<br/>
{%- endif %}
{%- if show_sphinx %}
{% trans sphinx_version=sphinx_version|e %}Created using <a href="http://runestoneinteractive.org/">Runestone</a> {{ runestone_version }}.{% endtrans %}
{%- endif %}
</p>
</div>
</footer>


{% if appname == "runestone" %}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32029811-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
{% endif %}

{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ _('Page') }} <b class="caret"></b></a>
<ul class="dropdown-menu localtoc">{{ toc }}</ul>
</li>
Loading