diff --git a/README.rst b/README.rst index 8ae45847c940da8ad7df0ec506c1b62460903a0b..4c16f86d251f542151766101bb08a040a4eb7d5f 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,11 @@ RELATE ====== -Relate is an Environment for Learning And TEaching (formerly known as CourseFlow) +Relate is an Environment for Learning And TEaching + ++---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ +| .. image:: https://raw.githubusercontent.com/inducer/relate/master/doc/image/screenshot.png | .. image:: https://raw.githubusercontent.com/inducer/relate/master/doc/image/screenshot-2.png | ++---------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+ RELATE is a web-based courseware package. It is set apart by the following features: @@ -50,7 +54,7 @@ See the `installation guide <http://documen.tician.de/relate/misc.html#installat License ------- -Copyright (C) 2014 Andreas Kloeckner +Copyright (C) 2014-15 Andreas Kloeckner Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/course/page/code.py b/course/page/code.py index 3e5a5e0698c4b1c87baa813c24628342f1d65d13..2b3b6669ae8785ca577e8b3aa53c235f57d6e92d 100644 --- a/course/page/code.py +++ b/course/page/code.py @@ -259,6 +259,20 @@ class PythonCodeQuestion(PageBaseWithTitle, PageBaseWithValue): All user code as well as all code specified as part of the problem is in Python 3. + If you are not including the + :attr:`course.constants.flow_permissions.change_answer` + permission for your entire flow, you likely want to + include this snippet in your question definition: + + .. code-block:: yaml + + access_rules: + add_permissions: + - change_answer + + This will allow participants multiple attempts at getting + the right answer. + .. attribute:: id |id-page-attr| @@ -717,6 +731,20 @@ class PythonCodeQuestionWithHumanTextFeedback( This page type allows both automatic grading and grading by a human grader. + If you are not including the + :attr:`course.constants.flow_permissions.change_answer` + permission for your entire flow, you likely want to + include this snippet in your question definition: + + .. code-block:: yaml + + access_rules: + add_permissions: + - change_answer + + This will allow participants multiple attempts at getting + the right answer. + The allowed attributes are the same as those of :class:`PythonCodeQuestion`, with the following additional, required attribute: diff --git a/doc/conf.py b/doc/conf.py index cae27a43fef0ce50212de8d4a3ca52f86a76c36c..5bdd3b6f3ee8b5cc57adfd7275ce67bba0ce9610 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -53,9 +53,9 @@ copyright = u'2014, Andreas Kloeckner' # built documents. # # The short X.Y version. -version = '2014.1' +version = '2015.1' # The full version, including alpha/beta/rc tags. -release = '2014.1' +release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/content.rst b/doc/content.rst index ef1bae33c321f1aa9420704ac549d9465d42e469..e585adcecd707c433d930d0687ed91545ef1d025 100644 --- a/doc/content.rst +++ b/doc/content.rst @@ -404,26 +404,19 @@ Here's an example: Calendar and Events ------------------- -To allow course content to be reused easily from year to year, RELATE can -assign symbolic names to particular dates in your course. For example, instead -of writing ``2014-10-13``, you could write ``lecture 13`` or ``hw_due 5``. +The word *event* in relate is a point in time that has a symbolic name. +Events are created and updated from the 'Content' menu. -To achieve this, each course in RELATE can store a list of events in its -database. This data serves two purposes: +Events serve two purposes: -* It provides data for the course calendar, available from the "Student" menu. +* Their symbolic names can be used wherever a date and time would be + required otherwise. For example, instead of writing ``2014-10-13 + 10:30:00``, you could write ``lecture 13``. This allows course content to + be written in a way that is reusable--only the mapping from (e.g.) + ``lecture 13`` to the real date needs to be provided--the course material + istelf can remain unchanged. -* It maps symbolic event names to concrete points in time, where each such - event name consists of a symbolic name (alphanumeric+underscores) plus an - optional number. For example, in ``lecture 13``, ``lecture`` is the symbolic - name, and ``13`` is the ordinal. - -Since this data may vary from one run of the course to the next, it is stored -along with other by-run-varying data such as grades data and not in the -:ref:`git-repo`.) A user interface to create and manipulate events is provided -in the "Instructor" menu. The same menu also contains a menu item to audit -the course content for references to symbolic event names that are not -defined. +* They are (optionally) shown in the class calendar. For example, to create contiguously numbered ``lecture`` events for a lecture occuring on a Tuesday/Thursday schedule, perform the following @@ -444,7 +437,7 @@ sequence of steps: .. _datespec: Specifying dates in RELATE -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^ In various places around its :ref:`YAML documents <yaml-files>`, RELATE allows dates to be specified. The following formats are supported: @@ -477,6 +470,7 @@ augments the calendar data in the database with descriptions and other meta-information. It has the following format: .. code-block:: yaml + event_kinds: lecture: title: Lecture {nr} @@ -497,10 +491,14 @@ other meta-information. It has the following format: * Python intro The first section, ``event_kinds``, provides color and titling information that -applies to all events sharing a symbolic name. The second, `events`, can be used -to provide a more verbose description for each event that appears below the main -calendar. Titles and colors can also be overriden for each event specifically. +applies to all events sharing a symbolic name. The string ``{nr}`` is automatically replaced +by the 'ordinal' of each event. + +The secondsection, ``events``, can be used to provide a more verbose +description for each event that appears below the main calendar. Titles and +colors can also be overriden for each event specifically. -All attributes in each section are optional. +All attributes in each section (as well as the entire calendar information +file) are optional. .. # vim: textwidth=75 diff --git a/doc/flow.rst b/doc/flow.rst index fc6e9599047c0f9ad3b9540030269e0d578ef6c9..14811dfec15bebb5778effe3c86eaea0d34a8286 100644 --- a/doc/flow.rst +++ b/doc/flow.rst @@ -14,9 +14,12 @@ example: # RELATE Test Quiz rules: + # (Things behind '#' hash marks are comments and are not siginficant.) + # Allow students to start two attempts at the quiz before the deadline. + # After that, only allow access to previously started quizzes. start: - - if_before: end_week 1 + if_before: 2015-03-06 23:59:00 if_has_role: [student, ta, instructor] if_has_fewer_sessions_than: 2 may_start_new_session: True @@ -26,23 +29,24 @@ example: may_start_new_session: False may_list_existing_sessions: True + # Allow students to submit quiz answers before the deadline. + # After the deadline, the quiz becomes read-only. (The 'modify' + # permission goes away.) access: - - if_before: end_week 2 + if_before: 2015-03-06 23:59:00 permissions: [view, modify, see_correctness] - - permissions: [view, modify, see_correctness, see_answer] + permissions: [view, see_correctness, see_answer] + # Record grades under the machine-readable name 'test_quiz'. + # If there is more than one grade, use the maximum. grading: - - if_completed_before: end_week 1 - grade_identifier: la_quiz + grade_identifier: test_quiz grade_aggregation_strategy: max_grade - - - grade_identifier: null - groups: - id: intro pages: diff --git a/doc/images/screenshot-2.png b/doc/images/screenshot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..4701b0b349e30611fcd642de93667a2593dbd013 Binary files /dev/null and b/doc/images/screenshot-2.png differ diff --git a/doc/images/screenshot.png b/doc/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9ea84ca9cffd35eb414930286c3b4fd33fe4bf Binary files /dev/null and b/doc/images/screenshot.png differ diff --git a/doc/index.rst b/doc/index.rst index 38633ef11d9ef7b95612cd6a713002f9e2b1bbbc..cac88166f9f4a60948cd5af6b7e4f1777c5a0883 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,8 +1,12 @@ Welcome to RELATE's documentation! ====================================== - *"I just want to ask my students some quiz questions online. How hard could it - possibly be?"* ++-------------------------------------+-------------------------------------+ +| .. image:: images/screenshot.png | .. image:: images/screenshot-2.png | ++-------------------------------------+-------------------------------------+ + +Features +-------- RELATE is a web-based courseware package. It is set apart by the following features: @@ -38,11 +42,6 @@ features: easy-to-use support for integrating HTML5 video into course content without the need for third-party content hosting. -More information around the web: - -* `Documentation <http://documen.tician.de/relate>`_ -* `Source code <https://github.com/inducer/relate>`_ - RELATE is a based on the popular `Django <https://docs.djangoproject.com/>`_ web framework for Python. It lets students participate in online activities, each of which is (generically) called a "flow", which allows a sequence of @@ -50,6 +49,17 @@ pages, each of which can be both static or interactive content, for exapmle a video, a quiz question, a page of text, or, within the confines of HTML, something completely different. +Links +----- + +More information around the web: + +* `Documentation <http://documen.tician.de/relate>`_ +* `Source code <https://github.com/inducer/relate>`_ + +Table of Contents +----------------- + .. toctree:: :maxdepth: 2 diff --git a/doc/misc.rst b/doc/misc.rst index 45c300069d7b9c0e8bf3787efc01d40486f62b74..dbe26efecccd4731ecf6270d71da54578292882d 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -69,7 +69,7 @@ Tips User-visible Changes ==================== -Version 2014.1 +Version 2015.1 -------------- First public release. @@ -79,7 +79,7 @@ License RELATE is licensed to you under the MIT/X Consortium license: -Copyright (c) 2014 Andreas Klöckner and Contributors. +Copyright (c) 2014-15 Andreas Klöckner and Contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation