protected function definition()
 {
     global $DB;
     $mform = $this->_form;
     $data = $this->_customdata;
     $mform->addElement('hidden', 'id', $data['id']);
     $mform->setType('id', PARAM_INT);
     $mform->addElement('hidden', 'mode', $data['mode']);
     $mform->setType('mode', PARAM_INT);
     $mform->addElement('hidden', 'action', 'delete');
     $mform->setType('action', PARAM_ACTION);
     $deletableslots = false;
     if (isset($data['slots'])) {
         list($sql, $params) = $DB->get_in_or_equal($data['slots']);
         $slots = $DB->get_records_sql('SELECT * FROM {organizer_slots} WHERE {organizer_slots}.id ' . $sql, $params);
         $mform->addElement('static', '', '', '<b>' . get_string('deleteheader', 'organizer') . '</b>');
         foreach ($slots as $slot) {
             $slot = new organizer_slot($slot);
             $deletableslots = true;
             $mform->addElement('hidden', 'slots[]', $slot->id);
             $mform->setType('slots[]', PARAM_INT);
             if (!$slot->has_participants()) {
                 $date = userdate($slot->starttime, get_string('datetemplate', 'organizer'));
                 $stime = userdate($slot->starttime, get_string('timetemplate', 'organizer'));
                 $etime = userdate($slot->starttime + $slot->duration, get_string('timetemplate', 'organizer'));
                 $mform->addElement('static', '', '', "{$date} " . get_string('slotfrom', 'organizer') . " {$stime} " . get_string('slotto', 'organizer') . " {$etime} " . get_string('atlocation', 'organizer') . " {$slot->location}");
             }
         }
         if (!$deletableslots) {
             $mform->addElement('static', '', '', get_string('deletenoslots', 'organizer'));
         }
         $exceptions = false;
         foreach ($slots as $slot) {
             $slot = new organizer_slot($slot);
             if ($slot->has_participants()) {
                 $exceptions = true;
                 break;
             }
         }
         if ($exceptions) {
             $mform->addElement('static', '', '', '<br/><b>' . get_string('deletekeep', 'organizer') . '</b>');
             foreach ($slots as $slot) {
                 $slot = new organizer_slot($slot);
                 if ($slot->has_participants()) {
                     $date = userdate($slot->starttime, get_string('datetemplate', 'organizer'));
                     $stime = userdate($slot->starttime, get_string('timetemplate', 'organizer'));
                     $etime = userdate($slot->starttime + $slot->duration, get_string('timetemplate', 'organizer'));
                     $mform->addElement('static', '', '', "{$date} " . get_string('slotfrom', 'organizer') . " {$stime} " . get_string('slotto', 'organizer') . " {$etime} " . get_string('atlocation', 'organizer') . " {$slot->location}");
                 }
             }
         }
     }
     $buttonarray = array();
     $buttonarray[] =& $mform->createElement('submit', 'confirm', get_string('confirm_delete', 'organizer'));
     $buttonarray[] =& $mform->createElement('cancel');
     $mform->addGroup($buttonarray, 'buttonar', '', array(' '), false);
     $mform->closeHeaderBefore('buttonar');
 }
function organizer_slot_status($params, $slot)
{
    $slotx = new organizer_slot($slot);
    $slotevaluated = $slotx->is_evaluated();
    $slotpastdue = $slotx->is_past_due();
    $slotpastdeadline = $slotx->is_past_deadline();
    $slothasparticipants = $slotx->has_participants();
    $slotnoparticipants = !$slotevaluated && ($slotpastdue || $slotpastdeadline) && !$slothasparticipants;
    $slotpending = !$slotevaluated && $slotpastdue && $slothasparticipants;
    $slotgradeable = !$slotevaluated && $slotpastdeadline && $slothasparticipants;
    $slotdueempty = !$slotpastdeadline && !$slothasparticipants;
    $slotdue = !$slotpastdeadline && $slothasparticipants;
    $actionurl = new moodle_url('/mod/organizer/view_action.php', array('id' => $params['id'], 'mode' => $params['mode'], 'action' => 'eval', 'slots[]' => $slot->id, 'sesskey' => sesskey()));
    if ($slotevaluated) {
        return '<a href="' . $actionurl->out(false) . '">' . organizer_get_img('pix/yes_24x24.png', '', get_string('img_title_evaluated', 'organizer')) . '</a>';
    } else {
        if ($slotnoparticipants) {
            return organizer_get_img('pix/no_participants_24x24.png', '', get_string('img_title_no_participants', 'organizer'));
        } else {
            if ($slotpending) {
                return '<a href="' . $actionurl->out(false) . '">' . organizer_get_img('pix/slot_pending_24x24.png', '', get_string('img_title_pending', 'organizer')) . '</a>';
            } else {
                if ($slotgradeable) {
                    return '<a href="' . $actionurl->out(false) . '">' . organizer_get_img('pix/student_slot_past_deadline_24x24.png', '', get_string('img_title_past_deadline', 'organizer')) . '</a>';
                } else {
                    if ($slotdueempty) {
                        return organizer_get_img('pix/student_slot_available_24x24.png', '', get_string('img_title_due', 'organizer'));
                    } else {
                        if ($slotdue) {
                            return '<a href="' . $actionurl->out(false) . '">' . organizer_get_img('pix/student_slot_available_24x24.png', '', get_string('img_title_due', 'organizer')) . '</a>';
                        } else {
                            print_error("This shouldn't happen.");
                        }
                    }
                }
            }
        }
    }
}