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
(Replaced content with "{{Moved_to_dev_docs}}")
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{Moved_to_dev_docs}}
'''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)
*$created - timestamp of creation date
*$lastmodified - 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.
[[Image: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.
[[Image: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
[[Image: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.
 
[[Image: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.
[[Image: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.
[[Image:Notes03.png]]
 
==Tasks and Timeline==
 
* April, 11 – May, 15 – collect opinions and suggestions from the [http://moodle.org/mod/forum/discuss.php?d=70818 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==
 
* http://moodle.org/mod/data/view.php?d=13&rid=796
* http://moodle.org/mod/forum/discuss.php?d=70818
* http://tracker.moodle.org/browse/MDL-10181
 
Back to: [[Student projects]]

Latest revision as of 02:40, 23 June 2011

This development related page is now located in the Dev docs.

See the Student projects/User Management Improvements page in the Dev docs.