Extension:Education Program/Institution and Course pages

The extension introduces two new types of pages&mdash;Institution and Course pages&mdash;in a new Education Program: namespace. These pages are a hybrid between traditional wiki pages and pages for structured data.

Institution pages
Institution pages are named as pages in the Education Program: namespace, such as Education Program:Columbia University. They can be created or edited by users in any of the extension usergroups (Course coordinator, campus volunteer, online volunteer, course instructor). An institution page includes a table with basic information about the institution (its name, city, and country) as well as some computed information about associated classes: whether the institution is "Actice" (i.e., has any courses going on right now), and how many current and total courses are associated with it.

It also includes a table of courses. By default, the table shows currently active courses; courses can be displayed instead for a particular term, or for classes that have ended or have not started yet. Users in the extension usergroups will also see a form to start a new course on an institution page.

Course pages
Course pages are named as subpages of Institution pages, using the course name and term to create a unique title, such as Education Program:Columbia University/Lolcats: an inter-disciplinary exploration (2012 Q4). The page name can be changed, but will always begin with Education Program:[Institution]/. They maybe be edited by users in any of the extension usergroups.

Viewing
A course page include a table of information about a course, including it's start and end dates and the usernames of the instructors and online and campus volunteers working with the class, followed by a description of the class, followed by a "Students" table that lists all students enrolled in the class, as well as which article(s) students are working on, and which other users have signed up to review those articles.

Users may enroll as students using the Enroll tab at the top right (which may be in a pulldown menu next to the search box). Users enrolled as students can enter the names of article(s) they are working on. Students as well as other users can use buttons in the Students table to sign up as reviewers for students' articles.



Editing
The course page includes editable structured elements for:
 * Page title (changing this will move the page)
 * Course name (changing this will not move the page, but will change the name that appears on lists of courses such as Special:Courses)
 * Institution (selectable from a list of existing institution pages)
 * Enrollment token, which is a code that&mdash;if set&mdash;must be entered by anyone attempt to enroll as a student in the course
 * Academic term (which may be named anything, although a list of term names used in other courses is available)
 * Start and end dates of the course, which determine the time period in which the course is listed as "Current" on course lists and when users may enroll as students in the course
 * Field of study
 * Course level (Graduate, Intermediary, or Undergraduate)
 * Course language (selectable from a list)

Description is the final editable section of a course page. This section is for entering wikitext, which will be parsed like a normal wiki page (and can include section headers, images, templates, and any of the usual wiki markup).

Education Program: namespace
Pages in the Education Program namespace behave differently from other namespaces. Although pages can be deleted and undeleted like usual (as well deleted in batches through the associated extension special pages), they cannot be moved by the usual means. Course and Institution pages can be moved by editing the pages and changes the Institution name or Page name, respectively.

Page histories are stored as revisions, although (at this point) diffs to see what changed between revisions are not available.