Table XBlock is powerful tool used to (you guessed it) create user-editable tables in an edX course. It supports a high degree of configurability, user interactivity and user tracking with xAPI. If you're unfamiliar with edX, its open source platform, or XBlocks, then this may be a good place to start.
Download this XBlock to a suitable directory on your server and extract its contents (alternatively, you may clone this repository using git).
The steps to install all XBlocks can be found on edX's XBlocks integration page. Follow the instructions outlined in the
Testing section if you're running the devstack or scroll down to those outlined under
Deploying your XBlock if you're not.
Use the value
table whenever it's necessary to append the name of this XBlock to any list. Also, remember to activate the virtualenv that the edx platform is using and use the pip script that is provided by edX.
$ cd /edx/app/edxapp $ source venvs/edxapp/bin/activate $ sudo -u edxapp /edx/bin/pip.edxapp install /path/to/Table-XBlock $ deactivate
As of the writing of this readme, there is no streamlined XBlock installation manager, though one has been proposed by edX developers.
How to Use
To add a table, navigate to a unit, click
Advanced and then click
Table XBlock. This will add an empty table to your unit.
To edit the table, click
Note: Table XBlock doesn't support the creation of static tables.
Adding a new type of table
Display Name property is used as the XBlock title shown to students in the course and should be unique per type of Table XBlock.
Display Name is also used to help uniquely identify xAPI states.
Every instance of Table XBlock within your course is linked to an underlying table structure. The empty table you're seeing in your unit is called
Table and is created by default. If you plan on using only one type of table (e.g only a multiplication table) then you may skip this step. The underlying data is shared for all instances of Table XBlock in a course making it easy to create the same table in a different unit.
If you need to create a new type of table with a totally different structure (not just a new instance), then click the
New button under
Link Data and follow the onscreen instructions.
Table cells are defined as the intersection of some column and row. This dynamic definition is the reason static tables are unsupported. A cell's column determines the kind of information that a cell will display.
To create a new column, click
Add column. After doing do, you are prompted to fill in a number of different fields that help define the column.
Column Label (Unique)
This is the label shown at the head of the table above this column. Column label names must be unique.
Text that the user is shown when the input elements in this column are empty.
Defines the type of cells to display in this column. Table XBlock currently supports the types outlined in the table below.
|text||input element of type
|checkbox||input element of type
|label||span containing text. This is not user editable.|
|number||input element of type
|xAPI Button||button element that optionally sends off an xAPI statement to an LRS.|
|xAPI onetimeButton||button element that optionally sends an xAPI statement to an LRS only once.|
Columns in each individual Table XBlock instance can be configured to be either visible or invisible. Be sure to check the checkbox to ensure that your columns are visible (they are not by default).
Whenever an active
xAPI Button or
xAPI oneTimeButton is clicked, an xAPI statement is generated for the row containing the button. The generated statement is configured to use the current student's user name as the statement's actor, completed as its verb, and the object as configured in the
xAPI Object section below.
The generated statement's object (activity) is determined by the radio button selected below
xAPI Object. When a
column is designated as the
xAPI Object, then the values of cells If you plan on submitting xAPI statements, then the value of the cell in the column with this radio button selected will be configured as the object of all generated xAPI statements.
In the example below, if the
Sport column is selected as the
xAPI Object, then
Soccer will be used as the object in statements generated for their respective rows. As stated earlier, the verb will always be completed and the actor is the user name of the current user.
|Basketball||30 min||[xAPI Button]|
|Football||1 hr||[xAPI Button]|
|Soccer||45 min||[xAPI Button]|
The completion states of all tables are synced using xAPI's State API. This allows students using an external application (such as a mobile app) to retrieve data stored within a table and mark a row as complete. Upon logging back into the edX course, any changes made in the external application will be reflected in the table as a row with a green background (indicating completion).
Use the following query string parameters to retrieve the state from an LRS.
display nameis made lowercase, spaces are replaced with underscores and all other special characters are removed.
- Table XBlock does not support a way to "undo" a completion.
- While the structure of a table is made available to external applications, any changes made to the structure outside of edX will not be reflected within the course.
Copyright 2014 United States Government, as represented by the Secretary of Defense.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.