Commit c9bf9ada by Alison Hodges Committed by Greg Price

New UI for discussions

parent 02b42d5c
......@@ -2,6 +2,22 @@
Change Log
############
*****************
September, 2014
*****************
.. list-table::
:widths: 10 70
:header-rows: 1
* - Date
- Change
* - 09/02/14
- Updated the :ref:`Discussions` and :ref:`Discussions for Students and
Staff` chapters to include information about choosing the type of post
and to reflect changes in the user interface.
**************
August, 2014
**************
......
......@@ -47,12 +47,14 @@ three hierarchical levels of interaction.
post as a whole.
The dialogue created by a post, its responses, and the comments on those
responses is called a *thread*.
responses is sometimes called a thread.
All course staff members and enrolled students can add posts, responses, and
comments, and view all of the posts, responses, and comments made by other
course participants. Discussion threads are saved as part of the course
history.
course participants. Members of the course community, both staff and students,
can be given permission to moderate or administer course discussions through a
set of discussion administration roles. Discussion threads are saved as part of
the course history.
.. note::
The :ref:`Discussions for Students and Staff` chapter describes features that
......@@ -151,25 +153,27 @@ You can designate a team of people to help you run course discussions.
Different options for working with discussions are available through
these roles:
* Discussion moderators can edit and delete messages at any level, review
* *Discussion moderators* can edit and delete messages at any level, review
messages flagged for misuse, close and reopen posts, pin posts, and endorse
responses. Posts made by moderators are marked as "By: Staff" in the list of
posts. Responses and comments made by moderators have a colored "Staff"
banner. This role is often given to course team members who already have the
Course Staff role.
identifier. This role is often given to course team members who already have
the Course Staff role.
.. removed this clause from 1st sentence per JAAkana and MHoeber: , and, if the
.. course is cohorted, see posts from all cohorts
* Discussion community TAs have the same options for working with discussions
* *Discussion community TAs* have the same options for working with discussions
as moderators. Posts made by community TAs are marked as "By: Community TA"
in the list of posts on the **Discussion** page. Responses and comments made
by community TAs have a colored "Community TA" banner. This role is often
by community TAs have a colored "Community TA" identifier. This role is often
given to students.
* Discussion admins have the same options for working with discussions as
.. put this comment in to make the formatting of this bulleted list consistent when output using the spinx template
* *Discussion admins* have the same options for working with discussions as
moderators, and their posts, responses, and comments have the same "Staff"
identifier. This role can be reserved for assignment to course team members
identifiers. This role can be reserved for assignment to course team members
who have the Instructor role only: the discussion admins can then both
moderate discussions and give other users these discussion management roles
whenever necessary.
......@@ -181,7 +185,7 @@ addresses or usernames.
click **Membership** and then select **Course Staff** or **Instructor** from
the drop-down list.
* To get this information for any enrolled student, on the Instructor Dashboard
* To get this information for an enrolled student, on the Instructor Dashboard
click **Data Download**, then **Download profile information as a CSV**.
To assign a role, you must be the course author or an Instructor (that is, you
......@@ -272,28 +276,25 @@ discussion.
* Pin a post. Pinning a post makes it appear at the top of the list of posts on
the **Discussion** page. As a result, it is more likely that students will
see and respond to pinned posts. You can write your own post and then pin it,
or pin a post by any author. Click **Pin Thread**.
or pin a post by any author. Select the "More" icon and then **Pin**.
.. image:: ../Images/Pin_Discussion.png
:alt: Image of the pin icon for discussion posts
* Endorse a response. Endorsing a response indicates that it provides value to
the discussion. Click the **check** (or tick) mark icon that displays at
upper right of the response.
the discussion. Click the "check mark" (or tick mark) icon for the response.
.. image:: ../Images/Endorse_Discussion.png
:alt: Image of the Endorse button for discussion posts
.. replace this image ^ when new one is available
* Mark a question as answered. You use the same procedure to mark a response as
the correct answer to a question as you do to endorse contributions to a
discussion. Click the **check** (or tick) mark icon for correct answers.
discussion: click the "check mark" (or tick mark) icon for correct answers.
* Close a post. You can respond to a redundant post by (optionally) pasting in
a link to the post that you prefer students to contribute to, and prevent
further interaction by closing the post. Click the **Close** button that
displays below the post to close it.
further interaction by closing the post. Select the "More" icon and then
**Close** to close it.
* Provide post/response/comment guidelines. You can post information from the
:ref:`overview<Overview_discussions>` in this chapter, or the :ref:`anatomy
......@@ -395,12 +396,12 @@ In addition to these visual cues, filters can help you find questions and
discussions that need review. Above the list of posts on the **Discussion**
page, the **Show all** filter is selected by default. You can also select:
* **Unanswered**, to list only questions that do not yet have any responses
marked as answers.
* **Unread**, to list only the discussions and questions that you have not yet
viewed.
* **Unanswered**, to list only questions that do not yet have any responses
marked as answers.
==================
Edit Messages
==================
......@@ -413,8 +414,12 @@ text, images, or links.
#. Log in to the site and then select the course on your **Current Courses**
dashboard.
#. Click the **Edit** button below the post or response, or click the pencil
icon for the comment.
#. Open the **Discussion** page and then open the post with the content that
requires editing. You can select a single topic from the drop-down list of
discussion topics, apply a filter, or search to locate the post.
#. For the post or for the response or comment that you want to edit, click the
"More" icon and then **Edit**.
#. Remove the problematic portion of the message, or replace it with standard
text such as "[REMOVED BY MODERATOR]".
......@@ -433,34 +438,41 @@ language may need to be deleted, rather than edited.
#. Log in to the site and then select the course on your **Current Courses**
dashboard.
#. Click the **Delete** button below the post or response or the "X" icon for
the comment.
#. Open the **Discussion** page and then open the post with the content that
requires deletion. You can select a single topic from the drop-down list of
discussion topics, apply a filter, or search to locate the post.
#. For the post or for the response or comment that you want to delete, click
the "More" icon and then **Delete**.
#. Click **OK** to confirm the deletion.
.. how to communicate with the poster?
.. important:: If a message is threatening or indicates serious harmful intent, contact campus security at your institution. Report the incident before taking any other action.
.. important:: If a message is threatening or indicates serious harmful
intent, contact campus security at your institution. Report the incident
before taking any other action.
==================================
Respond to Reports of Misuse
==================================
Students can use the **Report Misuse** flag to indicate messages that they find
inappropriate. Moderators, community TAs, and admins can check for messages
that have been flagged in this way and edit or delete them as needed.
Students have the option to report contributions that they find inappropriate.
Moderators, community TAs, and admins can check for messages that have been
flagged in this way and edit or delete them as needed.
#. View the live version of your course and click **Discussion** at the top of
the page.
#. In the list of posts on the left side of the page, use the filter drop-down
(set to **Show all** by default) to select **Flagged**.
list (set to **Show all** by default) to select **Flagged**.
#. Review each post listed as a flagged discussion. Posts and responses show a
flag and **Misuse Reported** in red font; comments show only a red flag.
#. Review listed posts. A post is listed if it or any of its responses or
comments has been reported. The reported contribution includes a
**Reported** identifier.
#. Edit or delete the post, response, or comment. Alternatively, to remove the
misuse flag from a message click **Misuse Reported** or the red flag icon.
#. Edit or delete the post, response, or comment. Alternatively, remove the
flag: click the "More" icon and then **Unreport**.
===============
Block Users
......@@ -493,7 +505,9 @@ course units and all of the course-wide topics are affected.
and Discussion Community TAs are not affected when you close the discussions
for a course. Users with these roles can continue to add to discussions.
.. note:: To assure that your students understand why they cannot add to discussions, you can add the dates that discussions are closed to the **Course Info** page and post them to a General discussion.
.. note:: To assure that your students understand why they cannot add to
discussions, you can add the dates that discussions are closed to the
**Course Info** page and post them to a General discussion.
=====================================
Start-End Date Format Specification
......
......@@ -4,21 +4,34 @@
Discussion Forums Data
######################
EdX discussion data is stored as collections of JSON documents in a MongoDB database. MongoDB is a document-oriented, NoSQL database system. Documentation can be found at the mongodb_ web site.
EdX discussion data is stored as collections of JSON documents in a MongoDB
database. MongoDB is a document-oriented, NoSQL database system. Documentation
can be found at the mongodb_ web site.
.. _mongodb: http://docs.mongodb.org/manual/
In the data package, discussion data is delivered in a .mongo file, identified by organization and course, in this format: edX-*organization*-*course*-*source*.mongo.
In the data package, discussion data is delivered in a .mongo file, identified
by organization and course, in this format:
edX-*organization*-*course*-*source*.mongo.
The primary collection that holds all of the discussion posts written by users is "contents". Two different types of objects are stored, representing the three levels of interactions that users can have in a discussion.
The primary collection that holds all of the discussion posts written by users
is "contents". Two different types of objects are stored, representing the
three levels of interactions that users can have in a discussion.
* A ``CommentThread`` represents the first level of interaction: a post that opens a new thread, often a student question of some sort.
* A ``CommentThread`` represents the first level of interaction: a post that
opens a new thread, often a student question of some sort.
* A ``Comment`` represents both the second and third levels of interaction: a response made directly to the conversation started by a ``CommentThread`` is a ``Comment``. Any further contributions made to a specific response are also in ``Comment`` objects.
* A ``Comment`` represents both the second and third levels of interaction: a
response made directly to the conversation started by a ``CommentThread`` is
a ``Comment``. Any further contributions made to a specific response are also
in ``Comment`` objects.
A sample of the field/value pairs that are in the mongo file, and descriptions of the attributes that these two types of objects share and that are specific to each type, follow.
A sample of the field/value pairs that are in the mongo file, and descriptions
of the attributes that these two types of objects share and that are specific
to each type, follow.
In addition to these collections, events are also emitted to track specific user activities. See :ref:`forum_events`.
In addition to these collections, events are also emitted to track specific
user activities. See :ref:`forum_events`.
*********
Samples
......@@ -36,17 +49,19 @@ machine-readable format that can be difficult to read at a glance.
.. code-block:: json
{ "_id" : { "$oid" : "50f1dd4ae05f6d2600000001" }, "_type" : "CommentThread", "anonymous" :
false, "anonymous_to_peers" : false, "at_position_list" : [], "author_id" : "NNNNNNN",
"author_username" : "AAAAAAAAAA", "body" : "Welcome to the edX101 forum!\n\nThis forum will
be regularly monitored by edX. Please post your questions and comments here. When asking a
question, don't forget to search the forum to check whether your question has already been
answered.\n\n", "closed" : false, "comment_count" : 0, "commentable_id" : "i4x-edX-edX101-
course-How_to_Create_an_edX_Course", "course_id" : "edX/edX101/How_to_Create_an_edX_Course",
"created_at" : { "$date" : 1358028106904 }, "last_activity_at" : { "$date" : 1358134464424 },
"tags_array" : [], "title" : "Welcome to the edX101 forum!", "updated_at" : { "$date" :
1358134453862 }, "votes" : { "count" : 1, "down" : [], "down_count" : 0, "point" : 1, "up" :
[ "48" ], "up_count" : 1 } }
{ "_id" : { "$oid" : "50f1dd4ae05f6d2600000001" }, "_type" : "CommentThread",
"anonymous" :false, "anonymous_to_peers" : false, "at_position_list" : [],
"author_id" : "NNNNNNN","author_username" : "AAAAAAAAAA", "body" : "Welcome to
the edX101 forum!\n\nThis forum willbe regularly monitored by edX. Please post
your questions and comments here. When asking aquestion, don't forget to
search the forum to check whether your question has already
beenanswered.\n\n", "closed" : false, "comment_count" : 0, "commentable_id" :
"i4x-edX-edX101-course-How_to_Create_an_edX_Course", "course_id" :
"edX/edX101/How_to_Create_an_edX_Course","created_at" : { "$date" :
1358028106904 }, "last_activity_at" : { "$date" : 1358134464424 },"tags_array"
: [], "thread_type": "discussion", "title" : "Welcome to the edX101 forum!",
"updated_at" : { "$date" :1358134453862 }, "votes" : { "count" : 1, "down" :
[], "down_count" : 0, "point" : 1, "up" :[ "48" ], "up_count" : 1 } }
If you use a JSON formatter to "pretty print" this document, a version that is
more readable is produced.
......@@ -65,9 +80,10 @@ more readable is produced.
],
"author_id": "NNNNNNN",
"author_username": "AAAAAAAAAA",
"body": "Welcome to the edX101 forum!\n\nThis forum will be regularly monitored by edX. Please
post your questions and comments here. When asking a question, don't forget to search the
forum to check whether your question has already been answered.\n\n",
"body": "Welcome to the edX101 forum!\n\nThis forum will be regularly
monitored by edX. Please post your questions and comments here. When
asking a question, don't forget to search the forum to check whether
your question has already been answered.\n\n",
"closed": false,
"comment_count": 0,
"commentable_id": "i4x-edX-edX101-course-How_to_Create_an_edX_Course",
......@@ -81,6 +97,7 @@ more readable is produced.
"tags_array": [
],
"thread_type": "discussion",
"title": "Welcome to the edX101 forum!",
"updated_at": {
"$date": 1358134453862
......@@ -97,7 +114,7 @@ more readable is produced.
],
"up_count": 1
}
}
}
----------------------------------------
Comment Document Example
......@@ -105,16 +122,20 @@ Comment Document Example
.. code-block:: json
{ "_id" : { "$oid" : "52e54fdd801eb74c33000070" }, "votes" : { "up" : [], "down" : [],
"up_count" : 0, "down_count" : 0, "count" : 0, "point" : 0 }, "visible" : true,
"abuse_flaggers" : [], "historical_abuse_flaggers" : [], "parent_ids" : [], "at_position_list" :
[], "body" : "I'm hoping this Demonstration course will help me figure out how to take the
course I registered for. I am just auditing the course, but I want to benefit from it as much
as possible, as I am extremely interested in it.\n", "course_id" : "edX/DemoX/Demo_Course",
"_type" : "Comment", "endorsed" : false, "anonymous" : false, "anonymous_to_peers" : false,
"author_id" : "NNNNNNN", "comment_thread_id" : { "$oid" : "52e4e880c0df1fa59600004d" },
"author_username" : "AAAAAAAAAA", "sk" : "52e54fdd801eb74c33000070", "updated_at" :
{ "$date" : 1390759901966 }, "created_at" : { "$date" : 1390759901966 } }
{ "_id" : { "$oid" : "52e54fdd801eb74c33000070" }, "votes" : { "up" : [],
"down" : [], "up_count" : 0, "down_count" : 0, "count" : 0, "point" : 0 },
"visible" : true, "abuse_flaggers" : [], "historical_abuse_flaggers" : [],
"parent_ids" : [], "at_position_list" : [], "body" : "I'm hoping this
Demonstration course will help me figure out how to take the course I
registered for. I am just auditing the course, but I want to benefit from it
as much as possible, as I am extremely interested in it.\n", "course_id" :
"edX/DemoX/Demo_Course", "_type" : "Comment", "endorsed" : true, "endorsement"
: { "user_id" : "9", "time" : ISODate("2014-08-29T15:11:49.442Z") },
"anonymous" : false, "anonymous_to_peers" : false, "author_id" : "NNNNNNN",
"comment_thread_id" : { "$oid" : "52e4e880c0df1fa59600004d" },
"author_username" : "AAAAAAAAAA", "sk" : "52e54fdd801eb74c33000070",
updated_at" : { "$date" : 1390759901966 }, "created_at" : { "$date" :
1390759901966 } }
When pretty printed, this comment looks like this:
......@@ -149,12 +170,19 @@ When pretty printed, this comment looks like this:
"at_position_list": [
],
"body": "I'm hoping this Demonstration course will help me figure out how to take the
course I registered for. I am just auditing the course, but I want to benefit from it
as much as possible, as I am extremely interested in it.\n",
"body": "I'm hoping this Demonstration course will help me figure out how
to take the course I registered for. I am just auditing the course, but I
want to benefit from it as much as possible, as I am extremely interested
in it.\n",
"course_id": "edX\/DemoX\/Demo_Course",
"_type": "Comment",
"endorsed": false,
"endorsed": true,
"endorsement": {
"user_id": "9",
"time": {
"$date": 1390759911966
}
}
"anonymous": false,
"anonymous_to_peers": false,
"author_id": "NNNNNNN",
......@@ -169,7 +197,7 @@ When pretty printed, this comment looks like this:
"created_at": {
"$date": 1390759901966
}
}
}
*****************
Shared Fields
......@@ -305,7 +333,7 @@ thread_type
--------------------
Identifies the type of post as a "question" or "discussion".
**History**: Added 12 Aug 2014.
**History**: Added 2 Sep 2014.
********************
Comment Fields
......@@ -350,7 +378,7 @@ endorsement
response to a post was endorsed and the numeric user ID (from
``auth_user.id``) of the person who endorsed it.
**History**: Added 12 Aug 2014.
**History**: Added 2 Sep 2014.
--------------------
comment_thread_id
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment