/moodle-mod_scheduler

Scheduler activity module for Moodle 2.x and 3.x

Primary LanguagePHP

Appointment Scheduler for Moodle

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details:

http://www.gnu.org/copyleft/gpl.html


=== Description ===

The Scheduler module helps you to schedule appointments with your students. 
Teachers specify time slots for meetings, students then choose one of them on Moodle.
Teacher in turn can record the outcome of the meeting - and optionally a grade - 
within the scheduler.

For further information, please see:
    http://docs.moodle.org/37/en/Scheduler_module

(Note that the information there may refer to a previous version of the module.)


=== Installation instructions ===

Place the code of the module into the mod/scheduler directory of your Moodle
directory root. That is, the present file should be located at:
mod/scheduler/README.txt

For further installation instructions please see:
    http://docs.moodle.org/en/Installing_contributed_modules_or_plugins

This module is intended for Moodle 3.7 and above.


=== Authors ===

Current maintainer:
 Henning Bostelmann, University of York <henning.bostelmann@york.ac.uk>

Based on previous work by:

* Gustav Delius <gustav.delius@york.ac.uk> (until Moodle 1.7)
* Valery Fremaux <valery.fremaux@club-internet.fr> (Moodle 1.8 - Moodle 1.9)

With further contributions taken from:

* Vivek Arora (independent migration of the module to 2.0)
* Andriy Semenets (Russian and Ukrainian localization)
* Gaël Mifsud (French localization)
* Various authors of the core Moodle code


=== Release notes ===

--- Version 3.7 ---

New features / improvements:

Basic support for the completion API (completion on grade)

Feature changes:

The permissions / capabilities on the teacher side have been altered.
In particular, teachers now strictly need the capability 
'canseeotherteachersbooking' (or 'manageallappointments') in order to see 
the "All appointments" tab.
There are new capabilities 'editallgrades', 'editallnotes', and 'editallattended'
which allow users without the 'manageallappointments' capability
to edit the grades, the teacher notes, or the attended flag in all appointments 
of all teachers, in the appointment screen only. 
The configuration setting 'allteachersgrading' is no longer in use.  

--- Version 3.5 ---

Intended for Moodle 3.5 and later.

New features / improvements:

Support for Moodle's Privacy API.


--- Version 3.3 ---

Intended for Moodle 3.3 and later.

New features / improvements:

Optionally, before making an appointment, students now see a booking screen 
in which they need to enter text, upload a file, and/or solve a captcha.

Filter strings (e.g., multilang syntax) are now processed in course shortname,
course fullname, and location fields.

Export files can now include custom profile fields of students.

Feature changes:

For booking in groups, students now need to select explicitly which group
they are booking for, or whether they want to make an individual booking.
Individual bookings can be disabled via a global configuration setting.

For viewing student's email addresses, the capability 
moodle/site:viewuseridentity is now required.

When allowing an "unlimited" number of appointments, students will no longer
be included in reminder e-mails if they have booked at least one slot. 

Refactoring / API changes:

The function scheduler_get_user_fields() in customlib.php has changed 
signature. If you have customized it in an earlier version, you will want 
to edit your code.

--- Version 3.1 ---

Intended for Moodle 3.1 and later.

New features / improvements:

An additional "confidential note" field is supplied for appointments;
the contents can be read by teachers only.

Slot notes and appointment notes can now contain attachments.

Students can now be allowed to see existing bookings of other students.
See https://docs.moodle.org/31/en/Scheduler_Module_capabilities#Student_side

Feature changes:

Sending of invitations and reminders is no longer handled via a "mailto" link
but rather via a webform, using Moodle's messaging system.

The conflict detection feature (when creating new slots) has been reworked slightly.
See https://docs.moodle.org/31/en/Scheduler:_Conflicts

Refactoring / API changes:

All email-related features now use the Messaging API.

Appointment reminders and deletion of past unused slots are now handled via
the Scheduled Tasks API.

The new Search API is supported for the activity description only.

--- Version 2.9 ---

Intended for Moodle 2.9 and later.

New features / improvements:

The export screen now allows users to choose the format of the output file,
as well as the data fields to include in the export. File format may
slightly differ from previous versions.

Improved gradebook integration: Grades overridden in the gradebook will now 
show up as such in the scheduler.

Lists of students to be scheduled now take availability conditions
(groups and groupings) into account.

Feature changes:

The handling of "group mode" in Scheduler has changed. The feature of "booking
entire groups into a slot" is now controlled by a setting "Booking in groups" 
at the level of each scheduler. The setting "Group mode" in "Common module 
settings" is now used in line with usual Moodle conventions - setting it to,
e.g., "Separate groups" will mean that students can only book slots with 
teachers in the same group. The old "Group mode" settings are automatically
migrated to "Booking in groups" and the "Group mode" set to "None".
If you have used group scheduling in previous versions, please check your data
after migration.

The student view has been redesigned. Bookable appointments are now displayed 
in pages of 25, and student select a slot by clicking a button "Book slot"
rather then selecting with a radio button and clicking "Save choice".  
 
For using the Overview screen outside the current scheduler, e.g., for displaying
all slots of a user across the site, users will now need extra permissions;
see CONTRIB-5750 for details.

Refactoring / API changes:

Config settings have been migrated to the config_plugins table.

--- Version 2.7 ---

Intended for Moodle 2.7 and later. 

New features:

Students can now be allowed to book several slots at a time.
"Volatile slots" replaced with "guard time" - students cannot change their booking
for slots closer than this time to the current time.

Feature changes:

"Notes" field will now be shown to students at booking time.

Refactoring / API changes:

Major refactoring of teacher view (slot list), student view (booking screen),
teacher view of individual appointments, as well as of the backend.
Security enhancements (sessionid parameter now used throughout).
Adapted to changes in core API and to the new logging/event system (Event 2).

--- Version 2.5 ---

Intended for Moodle 2.5 and later. 

Module adapted to API changes Moodle core.
"Add slot" and "Edit slot" forms refactored, now based on Moodle Forms.
Language packs migrated to AMOS, removed from plugin codebase.

--- Version 2.3 ---

Intended for Moodle 2.3 and later; no major functional changes, but API adapted and minor enhancements.

--- Version 2.0 --- 

No major functional changes over 1.9; bug fixes and API migration only. Requires 1.9 for database upgrades.  


=== Technical notes ===

The code of this module is rather old, some of it still predates even Moodle 1.9.
It has now largely, but not completely, been adapted to the new APIs.
The following aspects have been migrated, that is, malfunction in this respect 
should be considered a bug:

* Gradebook integration
* Moodle 2 backup
* New rich text editor and file API 
* Localization / language packs
* Logging / event system
* Scheduler tasks API
* Messaging API

The module does not use any deprecated API as of Moodle 3.3.