/**
  * Test new user email notifications.
  */
 public function test_version1importnewenrolmentemailgenerate()
 {
     global $CFG;
     // This is needed by the required files.
     require_once dirname(__FILE__) . '/other/rlip_importplugin_version1elis_fakeemail.php';
     $importplugin = new rlip_importplugin_version1elis_fakeemail();
     $course = $this->getDataGenerator()->create_course();
     $user = $this->getDataGenerator()->create_user();
     $templatetext = '<p>Hi %%user_fullname%%, you have been enroled in %%course_shortname%%
         Sitename: %%sitename%%
         User Username: %%user_username%%
         User Idnumber: %%user_idnumber%%
         User First Name: %%user_firstname%%
         User Last Name: %%user_lastname%%
         User Full Name: %%user_fullname%%
         User Email Address: %%user_email%%
         Course Fullname: %%course_fullname%%
         Course Shortname: %%course_shortname%%
         Course Idnumber: %%course_idnumber%%
         Course Summary: %%course_summary%%
         </p>';
     $actualtext = $importplugin->newenrolmentemail_generate($templatetext, $user, $course);
     $expectedtext = '<p>Hi ' . datahub_fullname($user) . ', you have been enroled in ' . $course->shortname . '
         Sitename: PHPUnit test site
         User Username: '******'
         User Idnumber: ' . $user->idnumber . '
         User First Name: ' . $user->firstname . '
         User Last Name: ' . $user->lastname . '
         User Full Name: ' . datahub_fullname($user) . '
         User Email Address: ' . $user->email . '
         Course Fullname: ' . $course->fullname . '
         Course Shortname: ' . $course->shortname . '
         Course Idnumber: ' . $course->idnumber . '
         Course Summary: ' . $course->summary . '
         </p>';
     $this->assertEquals($expectedtext, $actualtext);
 }
Beispiel #2
0
 function display_default()
 {
     global $OUTPUT, $USER;
     $this->get_base_page_params();
     $display_name = $this->get_ip_plugin();
     // TBD: more user-friendly
     $ipscheds = rlip_get_scheduled_jobs($this->get_ip_plugin(), is_siteadmin() ? 0 : $USER->id);
     if (!empty($ipscheds) && $ipscheds->valid()) {
         echo $OUTPUT->notification(get_string("rlip_jobs_heading_jobs", 'local_datahub', get_string('pluginname', $display_name)), 'rlip_bold_header', 'left');
         echo $OUTPUT->notification(get_string('rlip_jobs_heading_fullinstructions', 'local_datahub', $display_name), 'rlip_italic_header', 'left');
         $table = new html_table();
         $table->head = array(get_string('rlip_jobs_header_label', 'local_datahub'), get_string('rlip_jobs_header_owner', 'local_datahub'), get_string('rlip_jobs_header_lastran', 'local_datahub'), get_string('rlip_jobs_header_nextrun', 'local_datahub'), get_string('rlip_jobs_header_modified', 'local_datahub'), '');
         $table->align = array('left', 'center', 'left', 'left', 'left', 'center');
         $table->size = array('5%', '15%', '25%', '25%', '25%', '5%');
         $table->data = array();
         $table->rowclasses = array();
         //TBD
         $edit = get_string('edit');
         $delete = get_string('delete');
         foreach ($ipscheds as $ipjob) {
             $ustr = "{$ipjob->username}<br/>(" . datahub_fullname($ipjob) . ')';
             $tz = $ipjob->timezone;
             $data = unserialize($ipjob->config);
             $lastruntime = !empty($ipjob->lastruntime) ? userdate($ipjob->lastruntime, '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('no_lastruntime', 'local_datahub');
             $nextruntime = !empty($ipjob->nextruntime) ? userdate($ipjob->nextruntime, '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('na', 'local_datahub');
             $modified = !empty($data['timemodified']) ? userdate($data['timemodified'], '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('na', 'local_datahub');
             $target = $this->get_new_page(array('id' => $ipjob->id, 'plugin' => $ipjob->plugin));
             $label = '<a name="edit" href="' . $target->url->out(true, array('action' => 'form')) . '">' . $data['label'] . '</a>';
             $edit_link = '<a name="edit" href="' . $target->url->out(true, array('action' => 'form')) . '"><img alt="' . $edit . '" title="' . $edit . '" src="' . $OUTPUT->pix_url('t/edit') . '" /></a>';
             $delete_link = '<a name="delete" href="' . $target->url->out(true, array('action' => 'delete')) . '"><img alt="' . $delete . '" title="' . $delete . '" src="' . $OUTPUT->pix_url('t/delete') . '" /></a>';
             $table->rowclasses[] = '';
             //TBD
             $table->data[] = array($label, $ustr, $lastruntime, $nextruntime, $modified, "{$edit_link}&nbsp;{$delete_link}");
         }
         echo html_writer::table($table);
         echo $OUTPUT->notification(get_string('schedulingtime', 'local_datahub', $display_name), 'rlip_italic_header', 'left');
     } else {
         echo $OUTPUT->notification(get_string('rlip_jobs_heading_nojobs', 'local_datahub', get_string('pluginname', $display_name)), 'rlip_bold_header', 'left');
         echo $OUTPUT->notification(get_string('rlip_jobs_heading_instructions', 'local_datahub', $display_name), 'rlip_italic_header', 'left');
     }
     echo $OUTPUT->spacer();
     $submit = $this->get_new_page(array('action' => 'form', 'plugin' => $this->get_ip_plugin()));
     $this->add_submit_cancel_buttons($submit->url, get_string('rlip_new_job', 'local_datahub'));
 }
Beispiel #3
0
/**
 * Obtains a table object representing the current page of logs
 *
 * @param object $logs The recordset representing our log data
 * @return object The html table object representing our data set
 */
function rlip_get_log_table($logs)
{
    global $DB;
    //used for the display of all time values in this table
    $timeformat = get_string('displaytimeformat', 'local_datahub');
    $table = new html_table();
    //alignment
    $table->align = array('left', 'left', 'left', 'left', 'left', 'left', 'left', 'right', 'right', 'left');
    //column headers
    $table->head = array(get_string('logtasktype', 'local_datahub'), get_string('logplugin', 'local_datahub'), get_string('logexecution', 'local_datahub'), get_string('loguser', 'local_datahub'), get_string('logscheduledstart', 'local_datahub'), get_string('logstart', 'local_datahub'), get_string('logend', 'local_datahub'), get_string('logfilesuccesses', 'local_datahub'), get_string('logfilefailures', 'local_datahub'), get_string('logstatus', 'local_datahub'), get_string('logentitytype', 'local_datahub'), get_string('logdownload', 'local_datahub'));
    $table->data = array();
    $logstr = get_string('log', 'local_datahub');
    //fill in table data
    foreach ($logs as $log) {
        // TODO: cache user records here so we aren't constantly fetching records from the DB?
        $user = $DB->get_record('user', array('id' => $log->userid));
        if ($log->export == 1) {
            //export case
            $plugintype = get_string('export', 'local_datahub');
            //can't have failures in export files
            $filefailures = get_string('na', 'local_datahub');
            $entitytype = get_string('na', 'local_datahub');
        } else {
            $plugintype = get_string('import', 'local_datahub');
            //use tracked number of failures for display
            $filefailures = $log->filefailures;
            $entitytype = $log->entitytype;
        }
        if ($log->targetstarttime == 0) {
            //process was run manually
            $executiontype = get_string('manual', 'local_datahub');
            $targetstarttime = get_string('na', 'local_datahub');
        } else {
            //process was run automatically (cron)
            $executiontype = get_string('automatic', 'local_datahub');
            $targetstarttime = userdate($log->targetstarttime, $timeformat, 99, false);
        }
        // ELIS-5199 Only display a link to the file if a viable file exists
        if (rlip_log_file_exists($log)) {
            $link = "<a href=\"download.php?id={$log->id}\">{$logstr}</a>";
        } else {
            $link = '';
        }
        // Construct data row
        $table->data[] = array($plugintype, get_string('pluginname', $log->plugin), $executiontype, datahub_fullname($user), $targetstarttime, userdate($log->starttime, $timeformat, 99, false), userdate($log->endtime, $timeformat, 99, false), $log->filesuccesses, $filefailures, $log->statusmessage, $entitytype, $link);
    }
    return $table;
}
Beispiel #4
0
 /**
  * Generate a new enrolment email based on an email template, a user, and a course.
  *
  * @param string $templatetext The template for the message.
  * @param object $user The user object to use for placeholder substitutions.
  * @param object $course The course object to use for placeholder substitutions.
  * @return string The generated email.
  */
 public function newenrolmentemail_generate($templatetext, $user, $course)
 {
     global $SITE;
     $placeholders = array('%%sitename%%' => $SITE->fullname, '%%user_username%%' => isset($user->username) ? $user->username : '', '%%user_idnumber%%' => isset($user->idnumber) ? $user->idnumber : '', '%%user_firstname%%' => isset($user->firstname) ? $user->firstname : '', '%%user_lastname%%' => isset($user->lastname) ? $user->lastname : '', '%%user_fullname%%' => datahub_fullname($user), '%%user_email%%' => isset($user->email) ? $user->email : '', '%%course_fullname%%' => isset($course->fullname) ? $course->fullname : '', '%%course_shortname%%' => isset($course->shortname) ? $course->shortname : '', '%%course_idnumber%%' => isset($course->idnumber) ? $course->idnumber : '', '%%course_summary%%' => isset($course->summary) ? $course->summary : '');
     return str_replace(array_keys($placeholders), array_values($placeholders), $templatetext);
 }