Note: You are currently viewing documentation for Moodle 2.0. Up-to-date documentation for the latest stable version is available here: Student projects/User Management Improvements.

Student projects/User Management Improvements: Difference between revisions

From MoodleDocs
Line 39: Line 39:
*$note - the text of the note
*$note - the text of the note
*$format - the formatting type of the text of the note (e.g. FORMAT_PLAIN, FORMAT_HTML)
*$format - the formatting type of the text of the note (e.g. FORMAT_PLAIN, FORMAT_HTML)
*$type - the visibility of the note (0 - author teacher only (private), 1 - all teachers (shared), 2 - teachers & refered student (protected), 3 - teachers & students (public))
*$rating - the importance of this note (1 - low, 2 - below normal, 3 - normal, 4 - above normal, 5 - high)
*$rating - the importance of this note (1 - low, 2 - below normal, 3 - normal, 4 - above normal, 5 - high)
*$created - timestamp of creation date
*$timecreated - timestamp of creation date
*$lastmodified - timestamp of last modification date
*$timemodified - timestamp of last modification date
*$author - the identifier of the user that modified the note last
*$usermodified - the identifier of the user that modified the note last


'''note_save(&$note)'''
'''note_save(&$note)'''
Line 60: Line 59:


Returns an array of note objects from the specified course (and, optionaly, user) ordered by some criteria.
Returns an array of note objects from the specified course (and, optionaly, user) ordered by some criteria.
Type is taken out because it should be done using capabilities.
capabilities- readnotes, addnotes, managenotes (applicable in course context or higher)


==Interface mockups==
==Interface mockups==

Revision as of 02:49, 5 June 2007

Programmer:

Summary

This project is part of the 2007 edition of Google Summer of Code (GSoC). Mentor: Yu Zhang. Student: Andrei Bautu.

The objective of this project is to improve usability of user management features in Moodle. The main working directions established in the GSoC 2007 proposal are:

  • Improve the User features in moodle to allow bulk-operations.
    • Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.
    • Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)
  • Enrolment
    • Specify time of manual enrollments (MDL-8877)
  • Notes
    • Allow teachers to put notes for each student in every course, much requested feature

Working on the original goals, other possible improvements were noticed by the mentor, the student and other Moodlers:

  • Enrolment
    • Limit enrolment for students (from unlimited to limited time)
    • Extend enrolment for students (from limited to unlimited time)
    • Allow extend/limit operation for a group of users
    • Allow extend/limit operations even on courses with unlimited enrolment period
    • Extend/Limit period based on various reference dates (course start date, student enrolment start and end date, course enrolment start and end date, day of operation)
    • Set enrolment period end date to an absolute date
    • Allow setting enrolment period end date for a group of users
  • Note: additional suggestion added to page comments

Database structures

This project does not require extra database tables. The only objective that requires information to be stored in the database is Notes, for which we use the existing Post table.

Core functions

Notes

A note object has the following atributes:

  • $id - the identifier of the note (NULL if the note has not been saved yet)
  • $courseid - the identifier of the course in which the note is posted
  • $userid - the identifier of the user the note is about
  • $note - the text of the note
  • $format - the formatting type of the text of the note (e.g. FORMAT_PLAIN, FORMAT_HTML)
  • $rating - the importance of this note (1 - low, 2 - below normal, 3 - normal, 4 - above normal, 5 - high)
  • $timecreated - timestamp of creation date
  • $timemodified - timestamp of last modification date
  • $usermodified - the identifier of the user that modified the note last

note_save(&$note)

Inserts a new note or updates an existing one in the database a note depending on $note->id. The $note object is passed by reference and its id will change to match the data in the database. If the rating of the note is 0 (i.e. don't care) it will be changed to 3 (normal). The created, lastmodified and author attributes are updated as needed.

note_delete($noteid)

Deletes the note with the id $noteid.

&note_load($noteid)

Returns a note object coresponding to the $noteid id.

&note_list($courseid, $userid=0, $order='created DESC')

Returns an array of note objects from the specified course (and, optionaly, user) ordered by some criteria.

Type is taken out because it should be done using capabilities. capabilities- readnotes, addnotes, managenotes (applicable in course context or higher)

Interface mockups

Enrolment

The manual enrolment page allows teachers to specify the expiration date as the sum between an enrolment period and a reference starting date, which may be:

  • course start date
  • today - avaiable if the course start date was before today
  • course enrolment start date - available it is defined in the course configuration page
  • course enrolment end date - available it is defined in the course configuration page

If the enrolment period is Unlimited, then the starting date is ignored. Enrol01.png

In the Participants page, there are now two extend enrolment options.

  • Extend enrolment - is the classic version of extend enrolment page with some add-ons
  • Extend enrolment for all - is a new page designed to allow teachers to quickly extend the enrolment of many students.

Enrol02.png

The Extend enrolment page now allows user to increase/decrease the extend period for all user (inclusiv those with unlimited enrolment), regardless of the course default enrolment period. The new expiration date is the sum between an extended period and a reference starting date, which may be:

  • course start date
  • student enrolment start date - available if it was recorded (Moodle versions previous 1.9 did not record this information for unlimited enrolments)
  • student enrolment end date - available if it is not Unlimited
  • today - avaiable if the course start date was before today
  • course enrolment start date - available it is defined in the course configuration page
  • course enrolment end date - available it is defined in the course configuration page

Enrol03.png

Extend enrolment for all page works in a similar fashion, except that there is only one extended period choice and one starting date choice for the entire group (obviuosly, when needed - student enrolment start and end date, the computations are performed relative the user's data).

Notes

One way to attach notes to a user account is from the Participants page. There are three possible operations related to notes here:

  • Attach notes - attach different notes for each of the selected users (similar to the comment textarea used during assignments grading)
  • Attach note to all - attach same note to each of the selected users (similar to the Add /send messages option)
  • View notes (not showing in the mockup) - displays all the notes attached refering to the selected users

Below the course name, in the tab bar your may notice a new tab that links to the Notes page.

Notes01.png

On the notes page, teachers can view private notes and notes shared by other teaches. Students can view protected notes (regarding them) and public notes (regardind other students).

Using the filter choices, the list of notes can be limited to only some notes. Using the order by choice (not shown in the mockup), users can order notes by author, students, last modified date, rating. Notes02.png

The image below presents the page for adding a new note for a single user. This page will open from the "Add a new note" link in the previous picture. It will also be used for quick note links: when the teacher clicks on a "Add note" link/icon next to a student's name, it will open with the student already selected. Notes03.png

Tasks and Timeline

  • April, 11 – May, 15 – collect opinions and suggestions from the Moodle community;
  • May, 15 – June, 30 – design and (partially) implement the specified features;
  • July, 1 – July, 21 – fix reported bugs, test usability under various browsers, and add requested features;
  • July, 22 – August, 19 – remove reported bugs
  • August, 20 – upload evaluation code to http://code.google.com/hosting

See also

Back to: Student projects