Note: You are currently viewing documentation for Moodle 1.9. 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 74: Line 74:


* http://moodle.org/mod/data/view.php?d=13&rid=796
* http://moodle.org/mod/data/view.php?d=13&rid=796
* http://moodle.org/mod/forum/discuss.php?d=70818


Back to: [[Student projects]]
Back to: [[Student projects]]

Revision as of 15:49, 2 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)
  • $visibility - the visibility of the note (0 - teachers only, 1 - teachers & refered student, 2 - teachers & students)
  • $rating - the importance of this note (1 - low, 2 - below normal, 3 - normal, 4 - above normal, 5 - high)
  • $created - timestamp of creation date
  • $lastmodified - timestamp of last modification date
  • $author - 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.

Interface mockups

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