Moodle plugins directory: Attendance | Moodle.org
Attendance
The Attendance activity allows teachers to maintain a record of attendance, replacing or supplementing a paper-based attendance register. It is primarily used in blended-learning environments where students are required to attend classes, lectures and tutorials and allows the teacher to track and optionally provide a grade for the students attendance. The instructor can set the frequency of their classes (# of days per week & length of course) or create specific sessions.
To take attendance, the instructor clicks on the "Update Attendance" button and is presented with a list of all the students in that course, along with configurable options and comments. The default options provided are: Present, Absent, Late & Excused. Instructors can download the attendance for their course in Excel format or text format.
Sessions can also be configured to allow students to record their own attendance and a range of different reports are available.
-Derek
We have written a Moodle module for in-class polling called IPAL (In-class Polling for All Learners). At the request of the Moodle team at the University of Jerusalem I have added a utility so that teachers who use your Attendance module can easily use ipal to take attendance.
If have posted this latest version at https://github.com/wjunkin/moodle-mod_ipal/tree/MOODLE_29_STABLE and will soon move this version into the official Moodle site for this module (https://moodle.org/plugins/view/mod_ipal). There is nothing that you have to do, but since ipal now can interact with your wonderful attendance module, I wanted you to know of this development.
In case you are interested, here is how this works.
1) A teacher sets up at least one attendance instance with at least one session in the course.
2) In the ipal interface that allows the teacher to create polling questions, there is now an option to add one or more "Attendance questions." If the teacher selects this option, the ipal program parses the database and displays all the sessions already created in that course. The teacher can select one or more of these sessions and the ipal "Attendance Question(s)" are automatically created.
3) In class when the teacher sends an Attendance Question to the students a unique number is generated and displayed to the teacher beside the question. The teacher can then give this unique number to all the students present in the class at that time. The Attendance Question asks the students to enter this unique number.
4) At any time the teacher can click on a button in ipal beside a given Attendance Question requesting ipal to "Update Attendance." The ipal program then parses all the student answers to that particular question and every student whose answer matches the unique number for that Attendance Session is automatically marked present.
Students can use any device with a browser to answer the ipal questions. Since ipal also has Apps for both the Android and the iOS smart phones, students can also use these apps on their smart phones to answer questions. At any time the teacher can go in by hand and update the attendance record. (Students that don't have a device (or the battery on their device is dead) can answer the question on a piece of paper and turn it in and the teacher can mark them present by hand.) However, we think that this may greatly facilitate using your module to take attendance.
If you ever change the names of tables or fields in the tables if you will let me know, I will appreciate it, since the ipal script (obviously) interacts directly with the tables in your module.
If you want more information or want to discuss this in greater detail, I will be happy to discuss this with you.
Daniel Neis started to add some web-services functions which also made some of the internal functions more generic:
https://github.com/danmarsden/moodle-mod_attendance/pull/90
He didn't finish that off in the end but if that code got revived it could provide some more generic methods for you to leverage.
I'll try to remember to get in touch if that work gets finished off.
Many thanks Dan, Artem and all other contributors for your work.
And well deserved FMP award. Great plugin. and Responsiveness from Dan is about as good as you can get.
-Derek
I was iupgrading my moodle version (from 2.3.1+ to 2.9) using cli. After login I gone to notifications and saw that i missed attendance and other modules. After I have uploaded new versions y have clicked on upgrade and got this error:
Debug info: Table 'attendance' already exists
CREATE TABLE attendance (
id BIGINT(10) NOT NULL auto_increment,
course BIGINT(10) NOT NULL DEFAULT 0,
name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
grade BIGINT(10) NOT NULL DEFAULT 100,
CONSTRAINT PRIMARY KEY (id)
, KEY atte_cou_ix (course)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE = utf8_unicode_ci
COMMENT='Attendance module table'
;
CREATE TABLE attendance_sessions (
id BIGINT(10) NOT NULL auto_increment,
attendanceid BIGINT(10) NOT NULL DEFAULT 0,
groupid BIGINT(10) NOT NULL DEFAULT 0,
sessdate BIGINT(10) NOT NULL DEFAULT 0,
duration BIGINT(10) NOT NULL DEFAULT 0,
lasttaken BIGINT(10),
lasttakenby BIGINT(10) NOT NULL DEFAULT 0,
timemodified BIGINT(10),
description LONGTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
descriptionformat TINYINT(2) NOT NULL DEFAULT 0,
studentscanmark TINYINT(1) NOT NULL DEFAULT 0,
CONSTRAINT PRIMARY KEY (id)
, KEY attesess_att2_ix (attendanceid)
, KEY attesess_gro2_ix (groupid)
, KEY attesess_ses2_ix (sessdate)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE = utf8_unicode_ci
COMMENT='attendance_sessions table retrofitted from MySQL'
;
CREATE TABLE attendance_log (
id BIGINT(10) NOT NULL auto_increment,
sessionid BIGINT(10) NOT NULL DEFAULT 0,
studentid BIGINT(10) NOT NULL DEFAULT 0,
statusid BIGINT(10) NOT NULL DEFAULT 0,
statusset VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
timetaken BIGINT(10) NOT NULL DEFAULT 0,
takenby BIGINT(10) NOT NULL DEFAULT 0,
remarks VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
CONSTRAINT PRIMARY KEY (id)
, KEY attelog_ses2_ix (sessionid)
, KEY attelog_stu2_ix (studentid)
, KEY attelog_sta2_ix (statusid)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE = utf8_unicode_ci
COMMENT='attendance_log table retrofitted from MySQL'
;
CREATE TABLE attendance_statuses (
id BIGINT(10) NOT NULL auto_increment,
attendanceid BIGINT(10) NOT NULL DEFAULT 0,
acronym VARCHAR(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
description VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
grade SMALLINT(3) NOT NULL DEFAULT 0,
visible TINYINT(1) NOT NULL DEFAULT 1,
deleted TINYINT(1) NOT NULL DEFAULT 0,
CONSTRAINT PRIMARY KEY (id)
, KEY attestat_att2_ix (attendanceid)
, KEY attestat_vis2_ix (visible)
, KEY attestat_del2_ix (deleted)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE = utf8_unicode_ci
COMMENT='attendance_statuses table retrofitted from MySQL'
Error code: ddlexecuteerror
Stack trace:
line 449 of /lib/dml/moodle_database.php: ddl_change_structure_exception thrown
line 905 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
line 76 of /lib/ddl/database_manager.php: call to mysqli_native_moodle_database->change_database_structure()
line 412 of /lib/ddl/database_manager.php: call to database_manager->execute_sql_arr()
line 364 of /lib/ddl/database_manager.php: call to database_manager->install_from_xmldb_structure()
line 671 of /lib/upgradelib.php: call to database_manager->install_from_xmldb_file()
line 424 of /lib/upgradelib.php: call to upgrade_plugins_modules()
line 1630 of /lib/upgradelib.php: call to upgrade_plugins()
line 433 of /admin/index.php: call to upgrade_noncore()
Seem like instead of updating tables script is trying to create them and mysql launch an error because the table already exists.
Could you help me.
Thanks and best regards.
PS: this is no my production modle site, is a test site in order to upgrade it and check possible problems ans errors.
https://github.com/danmarsden/moodle-mod_attendance/blob/MOODLE_27_STABLE/version.php#L45
as your db is in a corrupt state you may need to start the upgrade process all over again.
I am new here and hoping to get some direction. I am installing the attendance plug-n and received this message. Thank you so much in advance.
"There is a request to install plugin Attendance (mod_attendance) version 2015040500 from the Moodle plugins directory on this site. However, the location /var/www/Moodle_2015_29/moodle/mod is not writable. You need to give write access for the web server user to the location, then press the continue button to repeat the check"
I am using this plugin and have a question: is it possible to count the total non existing hours of students at the end of the course? I am doing it via import attendance as a excel data, but I want, that the student can see their attendance in total. Thank for your help!