diff --git a/classes/event/course_module_instance_list_viewed.php b/classes/event/course_module_instance_list_viewed.php new file mode 100644 index 0000000..b3935e0 --- /dev/null +++ b/classes/event/course_module_instance_list_viewed.php @@ -0,0 +1,50 @@ +. + +/** + * The mod_attendance instance list viewed event. + * + * @package mod_attendance + * @copyright 2018 Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_attendance\event; +defined('MOODLE_INTERNAL') || die(); + +/** + * The mod_attendance instance list viewed event class. + * + * @package mod_attendance + * @copyright 2018 Dan Marsden + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class course_module_instance_list_viewed extends \core\event\course_module_instance_list_viewed { + /** + * Create the event from course record. + * + * @param \stdClass $course + * @return course_module_instance_list_viewed + */ + public static function create_from_course(\stdClass $course) { + $params = array( + 'context' => \context_course::instance($course->id) + ); + $event = \mod_attendance\event\course_module_instance_list_viewed::create($params); + $event->add_record_snapshot('course', $course); + return $event; + } +} diff --git a/index.php b/index.php index f699052..245b4e0 100644 --- a/index.php +++ b/index.php @@ -30,11 +30,64 @@ $course = $DB->get_record('course', array('id' => $id), '*', MUST_EXIST); require_login($course); $PAGE->set_url('/mod/attendance/index.php', array('id' => $id)); +$PAGE->set_pagelayout('incourse'); -// TODO: check if this is correct behaviour - other modules list all the instances of the module in the course. -if ($att = get_all_instances_in_course('attendance', $course, null, true)) { - $att = array_pop($att); - redirect("view.php?id=$att->coursemodule"); +\mod_attendance\event\course_module_instance_list_viewed::create_from_course($course)->trigger(); + +// Print the header. +$strplural = get_string("modulename", "attendance"); +$PAGE->navbar->add($strplural); +$PAGE->set_title($strplural); +$PAGE->set_heading($course->fullname); +echo $OUTPUT->header(); +echo $OUTPUT->heading(format_string($strplural)); + +$context = context_course::instance($course->id); + +require_capability('mod/attendance:view', $context); + +if (! $atts = get_all_instances_in_course("attendance", $course)) { + $url = new moodle_url('/course/view.php', array('id'=>$course->id)); + notice(get_string('thereareno', 'moodle', $strplural), $url); + die; +} + +$usesections = course_format_uses_sections($course->format); + +// Print the list of instances, + +$timenow = time(); +$strname = get_string("name"); + +$table = new html_table(); + +if ($usesections) { + $strsectionname = get_string('sectionname', 'format_'.$course->format); + $table->head = array ($strsectionname, $strname); + $table->align = array ("center", "left"); } else { - print_error('notfound', 'attendance'); + $table->head = array ($strname); + $table->align = array ("left"); } + +foreach ($atts as $att) { + //get the responses of each feedback + $viewurl = new moodle_url('/mod/attendance/view.php', array('id'=>$att->coursemodule)); + + $dimmedclass = $att->visible ? '' : 'class="dimmed"'; + $link = ''.$att->name.''; + + if ($usesections) { + $tabledata = array (get_section_name($course, $att->section), $link); + } else { + $tabledata = array ($link); + } + + $table->data[] = $tabledata; +} + +echo "
"; + +echo html_writer::table($table); + +echo $OUTPUT->footer(); \ No newline at end of file diff --git a/version.php b/version.php index 6a90541..4dd9cf9 100644 --- a/version.php +++ b/version.php @@ -23,7 +23,7 @@ */ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2018051402; +$plugin->version = 2018051403; $plugin->requires = 2018050800; // Requires 3.5. $plugin->release = '3.5.1'; $plugin->maturity = MATURITY_STABLE;