Skip to content

Commit

Permalink
Submitted info improvements
Browse files Browse the repository at this point in the history
Name of "comment" label customizable
Submitted info table
  • Loading branch information
Flottertotte committed Jan 17, 2019
1 parent 20a62fb commit 3fae45c
Show file tree
Hide file tree
Showing 11 changed files with 251 additions and 19 deletions.
9 changes: 7 additions & 2 deletions apply_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,16 @@ public function definition() {
}

$mform->addElement('html', '<p>'.$instance->customtext1.'</p>');
$mform->addElement('textarea', 'applydescription', get_string('comment', 'enrol_apply'), 'cols="80"');
$comment_title = get_string('comment', 'enrol_apply');
if($instance->customtext2 != ''){
$comment_title = $instance->customtext2;
}
$mform->addElement('textarea', 'applydescription', $comment_title, 'cols="80"');
$mform->setType('applydescription', PARAM_TEXT);

// User profile...
$editoroptions = $filemanageroptions = null;

if ($instance->customint1) {
useredit_shared_definition($mform, $editoroptions, $filemanageroptions, $USER);
}
Expand All @@ -85,5 +89,6 @@ public function definition() {
$mform->addElement('hidden', 'instance');
$mform->setType('instance', PARAM_INT);
$mform->setDefault('instance', $instance->id);

}
}
5 changes: 4 additions & 1 deletion edit.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,13 @@
// Process notify setting for editing...
// Convert to array for use with multi-select element.
$notify = array('$@NONE@$');
/*
if ($instance->customtext2 != '') {
$notify = explode(',', $instance->customtext2);
}
*/
$instance->notify = $notify;

$mform = new enrol_apply_edit_form(null, array($instance, $plugin, $context));

if ($mform->is_cancelled()) {
Expand All @@ -86,7 +89,7 @@
unset($notify[array_search('$@NONE@$', $notify)]);
}
// Convert back to string for storing in enrol table.
$data->customtext2 = implode(',', $notify);
//$data->customtext2 = implode(',', $notify);
if ($instance->id) {
$instance->status = $data->status;
$instance->name = $data->name;
Expand Down
8 changes: 7 additions & 1 deletion edit_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ protected function definition() {

$mform->addElement('textarea', 'customtext1', get_string('editdescription', 'enrol_apply'));

//new added requirement_20190110
//$title_customtext2 = str_replace("{replace_title}",$instance->customtext2,get_string('custom_label', 'enrol_apply'));
$title_customtext2 = get_string('custom_label', 'enrol_apply');
$mform->addElement('text', 'customtext2', $title_customtext2);
$mform->setDefault('customtext2', "Comment");

$options = array(1 => get_string('yes'),
0 => get_string('no'));

Expand Down Expand Up @@ -94,7 +100,7 @@ protected function definition() {
$mform->setType('courseid', PARAM_INT);

$this->add_action_buttons(true, ($instance->id ? null : get_string('addinstance', 'enrol')));

//echo "<pre>";print_r($instance);exit;
$this->set_data($instance);
}
}
67 changes: 67 additions & 0 deletions info.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* @package enrol_apply
* @copyright emeneo (http://emeneo.com/)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @author emeneo (http://emeneo.com/)
*/

defined('MOODLE_INTERNAL') || die();

require_once('../../config.php');
require_once($CFG->dirroot.'/enrol/apply/lib.php');
require_once($CFG->dirroot.'/enrol/apply/info_table.php');
require_once($CFG->dirroot.'/enrol/apply/renderer.php');

$id = optional_param('id', null, PARAM_INT);
$formaction = optional_param('formaction', null, PARAM_TEXT);
$userenrolments = optional_param_array('userenrolments', null, PARAM_INT);

require_login();

$manageurlparams = array();
if ($id == null) {
$context = context_system::instance();
require_capability('enrol/apply:manageapplications', $context);
$pageheading = get_string('submitted_info', 'enrol_apply');
} else {
$instance = $DB->get_record('enrol', array('id' => $id, 'enrol' => 'apply'), '*', MUST_EXIST);
require_course_login($instance->courseid);
$course = get_course($instance->courseid);
$context = context_course::instance($course->id, MUST_EXIST);
require_capability('enrol/apply:manageapplications', $context);
$manageurlparams['id'] = $instance->id;
$pageheading = $course->fullname;
}

$manageurl = new moodle_url('/enrol/apply/info.php', $manageurlparams);

$PAGE->set_context($context);
$PAGE->set_url($manageurl);
$PAGE->set_pagelayout('admin');
$PAGE->set_heading($pageheading);
$PAGE->navbar->add(get_string('submitted_info', 'enrol_apply'));
$PAGE->set_title(get_string('submitted_info', 'enrol_apply'));
$PAGE->requires->css('/enrol/apply/style.css');


$table = new enrol_apply_info_table($id);
$table->define_baseurl($manageurl);

$renderer = $PAGE->get_renderer('enrol_apply');
$renderer->info_page($table, $manageurl,$instance);
90 changes: 90 additions & 0 deletions info_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
*
* @package enrol_apply
* @copyright 2016 sudile GbR (http://www.sudile.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @author Johannes Burk <[email protected]>
*/

defined('MOODLE_INTERNAL') || die();

require_once($CFG->libdir . '/tablelib.php');

class enrol_apply_info_table extends table_sql {

public $is_collapsible = false;

public function __construct($enrolid = null) {
parent::__construct('enrol_apply_info_table');

global $DB;

$sqlwhere = 'ue.status != 0';
$sqlparams = array();
if ($enrolid != null) {
$sqlwhere .= " AND e.id = :enrolid";
$sqlparams['enrolid'] = $enrolid;
} else {
$sqlwhere .= " AND e.enrol = :enrol";
$sqlparams['enrol'] = 'apply';
}

$this->set_sql(
'ue.id AS userenrolmentid, ue.userid, ue.status AS enrolstatus, ue.timecreated AS applydate,
ai.comment AS applycomment, u.*, c.fullname as course',
"{user_enrolments} AS ue
LEFT JOIN {enrol_apply_applicationinfo} ai ON ai.userenrolmentid = ue.id
JOIN {user} u ON u.id = ue.userid
JOIN {enrol} e ON e.id = ue.enrolid
JOIN {course} c ON c.id = e.courseid",
$sqlwhere,
$sqlparams);

//$this->no_sorting('checkboxcolumn');
}

/**
* Get any extra classes names to add to this row in the HTML.
* @param $row array the data for this row. Note (Johannes): this is actually an object with all sql columns.
* @return string added to the class="" attribute of the tr.
*/
public function get_row_class($row) {
if ($row->enrolstatus == 2) {
return 'enrol_apply_waitinglist_highlight';
}
return '';
}
/*
public function col_checkboxcolumn($row) {
return html_writer::checkbox('userenrolments[]', $row->userenrolmentid, false);
}
public function col_fullname($row) {
// The $row variable contains all user fields, see sql query.
global $OUTPUT;
$col = $OUTPUT->user_picture($row, array('popup' => true));
$col .= fullname($row);
return $col;
}
public function col_applydate($row) {
return date("Y-m-d", $row->applydate);
}
*/
}
5 changes: 5 additions & 0 deletions lang/en/enrol_apply.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@
$string['show_standard_user_profile'] = 'Show standard user profile fields on enrolment screen';
$string['show_extra_user_profile'] = 'Show extra user profile fields on enrolment screen';

//$string['custom_label'] = 'Custom label "{replace_title}"';
$string['custom_label'] = 'Custom label';

$string['maxenrolled'] = 'Max enrolled users';
$string['maxenrolled_help'] = 'Specifies the maximum number of users that can self enrol. 0 means no limit.';
$string['maxenrolledreached_left'] = 'Maximum number of users allowed';
Expand All @@ -117,3 +120,5 @@
$string['expiry_desc'] = '';
$string['expiredaction'] = 'Enrolment expiry action';
$string['expiredaction_help'] = 'Select action to carry out when user enrolment expires. Please note that some user data and settings are purged from course during course unenrolment.';

$string['submitted_info'] = 'Enrol info';
20 changes: 15 additions & 5 deletions lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,13 @@ public function get_action_icons(stdClass $instance) {
get_string('confirmenrol', 'enrol_apply'),
'core',
array('class' => 'iconsmall')));

$infolink = new moodle_url("/enrol/apply/info.php", array('id' => $instance->id));
$icons[] = $OUTPUT->action_icon($infolink, new pix_icon(
'i/files',
get_string('submitted_info', 'enrol_apply'),
'core',
array('class' => 'iconsmall')));
}

return $icons;
Expand Down Expand Up @@ -364,7 +371,7 @@ private function notify_applicant($instance, $userenrolment, $type, $subject, $c
require_once($CFG->dirroot.'/enrol/apply/notification.php');
// Required for course_get_url() function.
require_once($CFG->dirroot.'/course/lib.php');

$course = get_course($instance->courseid);
$user = core_user::get_user($userenrolment->userid);

Expand All @@ -376,7 +383,8 @@ private function notify_applicant($instance, $userenrolment, $type, $subject, $c
$type,
$subject,
$content,
course_get_url($course));
course_get_url($course),
$instance->courseid);
message_send($message);
}

Expand All @@ -387,7 +395,7 @@ private function send_application_notification($instance, $userid, $data) {
require_once($CFG->dirroot.'/course/lib.php');

$renderer = $PAGE->get_renderer('enrol_apply');

$course = get_course($instance->courseid);
$user = core_user::get_user($userid);
$contact = core_user::get_support_user();
Expand Down Expand Up @@ -425,7 +433,8 @@ private function send_application_notification($instance, $userid, $data) {
'application',
get_string('mailtoteacher_suject', 'enrol_apply'),
$content,
$manageurl);
$manageurl,
$instance->courseid);
message_send($message);
}
}
Expand All @@ -451,7 +460,8 @@ private function send_application_notification($instance, $userid, $data) {
'application',
get_string('mailtoteacher_suject', 'enrol_apply'),
$content,
$manageurl);
$manageurl,
$instance->courseid);
message_send($message);
}
}
Expand Down
2 changes: 1 addition & 1 deletion manage.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,4 @@
$table->define_baseurl($manageurl);

$renderer = $PAGE->get_renderer('enrol_apply');
$renderer->manage_page($table, $manageurl);
$renderer->manage_page($table, $manageurl, $instance);
3 changes: 2 additions & 1 deletion notification.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();

class enrol_apply_notification extends \core\message\message {
public function __construct($to, $from, $type, $subject, $content, $url) {
public function __construct($to, $from, $type, $subject, $content, $url,$courseid) {
$this->component = 'enrol_apply';

switch ($type) {
Expand Down Expand Up @@ -60,5 +60,6 @@ public function __construct($to, $from, $type, $subject, $content, $url) {
$this->notification = true;
$this->contexturl = $url;
$this->contexturlname = get_string('course');
$this->courseid = $courseid;
}
}
Loading

0 comments on commit 3fae45c

Please sign in to comment.