Talk:Attendance activity

From MoodleDocs

Whoever wrote this guide to Attendance -- a big thank you!

May I suggest perhaps placing a dummy entry in the plugins section that directs enquiries to this page?

--Mark Pearson 2 00:30, 5 December 2012 (WST)

Archive info and dev notes moved from Attendance activity:

Quick update, July 2013

  1. Artem Andreev is no longer working on this plugin, Dan Marsden is now maintaining the plugin.
  2. The old module was previously named 'attforblock' and has now been renamed to 'attendance'
  3. at this stage no restore code has been written to allow backup files with old style "attforblock" to be restored into the renamed module.
  4. See the Attendance module forum for discussion and support on this module.
  5. Location on GIT of the recent versions: Attendance module, Attendance block


Attendance was originally a Moodle block developed by Russell Jungwirth in 2003 (see post [1]). In 2005, Dmitry Pupinin picked up the reins and released version 1.0.2, his first version of the Attendance block (see post [2]). In May 2007, Dmitry released a new version 2.0 suitable for Moodle 1.8. This release was a dramatic restructuring of code that resulted in a significant module along with a small block (see post [3]). Dmitry continued to develop the module and block through 2010.

In November 2010, Artem Andreev updated the code to version 2.2 (see post [4]) to add common and group session options and some user interface improvements. Luis Ramón López wrote modifications that added the ability to create multiple attendance instances in a single course; for example, one instance for laboratory activities and another instance for lecture periods (see post [5]). Version 2.3 was released in January 2011.

Immediately after the release of version 2.3, work began on porting the code to Moodle 2.x. In July 2011, Artem released Attendance version 2.4.0 (see post [6]), a rewrite of the code as a module with an optional block for use with Moodle 2.x only. In July 2012, Artem released a new branch of version 2.4.0 updated to work with Moodle 2.3.

In July 2013 Dan Marsden took over maintenance of the plugin and renamed the "attforblock" module to "attendance"

There is another unrelated attendance plugin in the plugins database:

For developers

The current version of the Attendance block and the Attendance module are hosted on Dan Marsden's github site.

Module Block

Upgrade from mod_attforblock to new mod_attendance

The new attendance module renames the attforblock module to attendance - when this module was first created you couldn't have a Module with the same name as a block - newer versions of Moodle allow this and in preparation for inclusion in the plugins database we renamed "attforblock" to "attendance" - we have included some code to convert your old "attforblock" database entries to use the new "attendance" format.

  1. make sure you are running the latest attforblock code - the new attendance module will only allow upgrades from attforblock version 2012120700
  2. Download the new attendance module and install it in the usual place (in a folder called mod/attendance)
  3. remove the old "mod/attforblock" folder from your site (don't use the uninstall function in the admin menu unless you don't need to keep previously created attendance modules in your courses)
  4. Trigger the normal upgrade process by visiting admin > notifications and it will migrate the data from your old attforblock module to the newly named "attendance" module

Upgrade info for Developers/Admins

The rename of the module only changes one of the database table names - attforblock to attendance, all the other tables are already prefixed with 'attendance' so these aren't changed. The Moodle install process hits install.xml first which is a problem as it will fail as some of the tables listed in install.xml already exist. To work around this we abuse the mod/attendance/version.php file a bit. This file is included first when checking for upgrades so we do a check there to see if data from the old mod_attforblock still exists - it it does it renames the old 'attforblock' table to 'attendance' amd updates the record in the modules to rename it from 'attforblock' to 'attendance' - it also checks to make sure the old 'attforblock' directory has been deleted and will only upgrade from attforblock versions higher than 2012120700 - it's possible this could be improved, pull requests are welcome. After the upgrade has completed you may want to remove the upgrade code from version.php as it will result in an extra few db queries every time the version.php files are loaded to avoid the small unnecessary performance impact that the code causes.


First, make sure you're familiar with page Installing contributed modules or plugins.

The installation can only be performed by a user who has both write access to the file structure on the computer hosting Moodle and administrator rights for the Moodle installation.

Language files

The language files for localizing the module are .../attforblock/lang/language code/attforblock.php. In order to customize the strings, you can

  • either edit the language file(s) of the language(s) you're interested in, or
  • edit the string definitions through Moodle itself when logged in as an administrator, via Settings > Site administration > Language > Language customization. (Note: this method doesn't seem to work as of 4 Aug. 2012)

Note that the date format is controlled by the language file you install. As an example, assume that you're using the en_us language file, which defines the date format as m.d.y. In order to change the format to m/d/y, you could use the first method mentioned above, and edit the language definition file .../attforblock/lang/en_us/attforblock.php and change the string definitions into this:

$string['strftimedm'] = '%m/%d';
$string['strftimedmy'] = '%m/%d/%Y';
$string['strftimedmyw'] = '%m/%d/%y (%a)';
$string['strftimeshortdate'] = '%m/%d/%Y';
$string['strftimedmyhm'] = '%m/%d/%Y %H:%M'; // line added to allow multiple sessions in the same day

Another example: if you're using the en language file, and want to change the sting "Late" to "Tardy", you could use the second method mentioned above, namely: (Note: this method doesn't seem to work as of 4 Aug. 2012)

  • log in as an administrator;
  • click Settings > Site administration > Language > Language customization;
  • choose "English (en)" from the pull-down menu, which is shown if more than one language pack has been installed;
  • click on the Open language pack for editing button;
  • after the language pack has been loaded, click on the Continue button;
  • in the "Filter strings" screen's component list, scroll down to the bolded "mod" heading, and then click on the "attforblock.php" line under it;
    • (note: you could also reduce the number of strings shown, for example by writing "Late" in the "Only strings containing" filter input line)
  • click on the Show strings button;
  • scroll down until you find the string Lfull, whose definition is "Late";
  • write "Tardy" in the edit box to the right;
  • (you might also want to change the definition of the string Lacronym from "L" to "T";)
  • click on the Save changes to the language pack button on the bottom of the screen; and
  • in the confirmation screen, click on the Continue button.

Discuss the module

If you have an idea about new features, or need support on using the module, participate in the discussion on the Attendance module forum.