// // 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/>. /** * This page lets users to manage site wide competencies. * * @package tool_lp * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once __DIR__ . '/../../../config.php'; $id = required_param('courseid', PARAM_INT); $params = array('id' => $id); $course = $DB->get_record('course', $params, '*', MUST_EXIST); require_login($course); \core_competency\api::require_enabled(); $context = context_course::instance($course->id); $urlparams = array('courseid' => $id); $url = new moodle_url('/admin/tool/lp/coursecompetencies.php', $urlparams); list($title, $subtitle) = \tool_lp\page_helper::setup_for_course($url, $course); $output = $PAGE->get_renderer('tool_lp'); $page = new \tool_lp\output\course_competencies_page($course->id); echo $output->header(); echo $output->heading($title); echo $output->render($page); echo $output->footer();
$returntype = optional_param('return', null, PARAM_ALPHA); require_login(0, false); \core_competency\api::require_enabled(); $url = new moodle_url('/admin/tool/lp/editplan.php', array('id' => $id, 'userid' => $userid, 'return' => $returntype)); $plan = null; if (empty($id)) { $pagetitle = get_string('addnewplan', 'tool_lp'); list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_plan($userid, $url, null, $pagetitle, $returntype); } else { $plan = \core_competency\api::read_plan($id); // The userid parameter must be the same as the owner of the plan. if ($userid != $plan->get_userid()) { throw new coding_exception('Inconsistency between the userid parameter and the userid of the plan'); } $pagetitle = get_string('editplan', 'tool_lp'); list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_plan($userid, $url, $plan, $pagetitle, $returntype); } $output = $PAGE->get_renderer('tool_lp'); // Custom data to pass to the form. $customdata = array('userid' => $userid, 'context' => $PAGE->context, 'persistent' => $plan); // User can create plan if he can_manage_user with active/complete status // or if he can_manage_user_draft with draft status. $cancreate = \core_competency\plan::can_manage_user_draft($userid) || \core_competency\plan::can_manage_user($userid); // If editing plan, check if user has permissions to edit it. if ($plan != null) { if (!$plan->can_manage()) { throw new required_capability_exception($PAGE->context, 'moodle/competency:planmanage', 'nopermissions', ''); } if (!$plan->can_be_edited()) { throw new coding_exception('Completed plan can not be edited'); }
} } // Get parent competency, if any. $parent = null; if ($competency) { $parent = $competency->get_parent(); } else { if ($parentid) { $parent = \core_competency\api::read_competency($parentid); } } // Get page URL. $urloptions = ['id' => $id, 'competencyframeworkid' => $competencyframework->get_id(), 'parentid' => $parentid, 'pagecontextid' => $pagecontextid]; $url = new moodle_url("/admin/tool/lp/editcompetency.php", $urloptions); // Set up the page. list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_competency($pagecontextid, $url, $competencyframework, $competency, $parent); // Set up the form. $formoptions = ['competencyframework' => $competencyframework, 'parent' => $parent, 'persistent' => $competency, 'pagecontextid' => $pagecontextid]; $form = new \tool_lp\form\competency($url->out(false), $formoptions); // Form cancelled. if ($form->is_cancelled()) { redirect($returnurl); } // Get form data. $data = $form->get_data(); if ($data) { if (empty($competency)) { \core_competency\api::create_competency($data); $returnmsg = get_string('competencycreated', 'tool_lp'); } else { \core_competency\api::update_competency($data);
// 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/>. /** * This page lets users to manage site wide competencies. * * @package tool_lp * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once __DIR__ . '/../../../config.php'; require_once $CFG->libdir . '/adminlib.php'; $pagecontextid = required_param('pagecontextid', PARAM_INT); $context = context::instance_by_id($pagecontextid); require_login(0, false); \core_competency\api::require_enabled(); if (!\core_competency\template::can_read_context($context)) { throw new required_capability_exception($context, 'moodle/competency:templateview', 'nopermissions', ''); } $url = new moodle_url('/admin/tool/lp/learningplans.php', array('pagecontextid' => $pagecontextid)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_template($pagecontextid, $url); $output = $PAGE->get_renderer('tool_lp'); echo $output->header(); echo $output->heading($title); $page = new \tool_lp\output\manage_templates_page($context); echo $output->render($page); echo $output->footer();
$id = required_param('id', PARAM_INT); $pagecontextid = required_param('pagecontextid', PARAM_INT); // Reference to the context we came from. require_login(0, false); \core_competency\api::require_enabled(); $template = \core_competency\api::read_template($id); $context = $template->get_context(); $canreadtemplate = $template->can_read(); $canmanagetemplate = $template->can_manage(); $duedatereached = $template->get_duedate() > 0 && $template->get_duedate() < time(); if (!$canreadtemplate) { throw new required_capability_exception($context, 'moodle/competency:templateview', 'nopermissions', ''); } // Set up the page. $url = new moodle_url('/admin/tool/lp/template_cohorts.php', array('id' => $id, 'pagecontextid' => $pagecontextid)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_template($pagecontextid, $url, $template, get_string('cohortssyncedtotemplate', 'tool_lp')); // Remove cohort. if ($canmanagetemplate && ($removecohort = optional_param('removecohort', false, PARAM_INT)) !== false && confirm_sesskey()) { \core_competency\api::delete_template_cohort($template, $removecohort); } // Capture the form submission. $form = new \tool_lp\form\template_cohorts($url->out(false), array('pagecontextid' => $pagecontextid)); if ($canmanagetemplate && ($data = $form->get_data()) && !empty($data->cohorts)) { $maxtocreate = 50; $maxreached = false; $i = 0; foreach ($data->cohorts as $cohortid) { // Create the template/cohort relationship. $relation = \core_competency\api::create_template_cohort($template, $cohortid); // Create a plan for each member if template visible, and the due date is not reached, and we didn't reach our limit yet. if ($template->get_visible() && $i < $maxtocreate && !$duedatereached) {
// 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/>. /** * Plan page. * * @package tool_lp * @copyright 2015 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require __DIR__ . '/../../../config.php'; $id = required_param('id', PARAM_INT); require_login(null, false); if (isguestuser()) { throw new require_login_exception('Guests are not allowed here.'); } \core_competency\api::require_enabled(); $plan = \core_competency\api::read_plan($id); $url = new moodle_url('/admin/tool/lp/plan.php', array('id' => $id)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_plan($plan->get_userid(), $url, $plan); $output = $PAGE->get_renderer('tool_lp'); echo $output->header(); $page = new \tool_lp\output\plan_page($plan); echo $output->render($page); // Trigger viewed event. \core_competency\api::plan_viewed($plan); echo $output->footer();
} else { $context = context::instance_by_id($pagecontextid); } // We check that we have the permission to edit this framework, in its own context. require_login(0, false); \core_competency\api::require_enabled(); require_capability('moodle/competency:templatemanage', $context); // We keep the original context in the URLs, so that we remain in the same context. $url = new moodle_url("/admin/tool/lp/edittemplate.php", ['id' => $id, 'pagecontextid' => $pagecontextid, 'return' => $returntype]); if (empty($id)) { $pagetitle = get_string('addnewtemplate', 'tool_lp'); list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_template($pagecontextid, $url, null, $pagetitle, $returntype); } else { $template = \core_competency\api::read_template($id); $pagetitle = get_string('edittemplate', 'tool_lp'); list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_template($pagecontextid, $url, $template, $pagetitle, $returntype); } $form = new \tool_lp\form\template($url->out(false), array('persistent' => $template, 'context' => $context)); if ($form->is_cancelled()) { redirect($returnurl); } $data = $form->get_data(); if ($data) { if (empty($data->id)) { $template = \core_competency\api::create_template($data); $returnurl = new moodle_url('/admin/tool/lp/templatecompetencies.php', ['templateid' => $template->get_id(), 'pagecontextid' => $pagecontextid]); $returnmsg = get_string('templatecreated', 'tool_lp'); } else { \core_competency\api::update_template($data); $returnmsg = get_string('templateupdated', 'tool_lp'); }
// (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/>. /** * User evidence (evidence of prior learning). * * @package tool_lp * @copyright 2015 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once __DIR__ . '/../../../config.php'; require_login(null, false); if (isguestuser()) { throw new require_login_exception('Guests are not allowed here.'); } \core_competency\api::require_enabled(); $id = required_param('id', PARAM_INT); $userevidence = \core_competency\api::read_user_evidence($id); $url = new moodle_url('/admin/tool/lp/user_evidence.php', array('id' => $id)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_user_evidence($userevidence->get_userid(), $url, $userevidence); $output = $PAGE->get_renderer('tool_lp'); echo $output->header(); $page = new \tool_lp\output\user_evidence_page($userevidence); echo $output->render($page); echo $output->footer();
require __DIR__ . '/../../../config.php'; $id = required_param('id', PARAM_INT); $pagecontextid = required_param('pagecontextid', PARAM_INT); // Reference to the context we came from. require_login(0, false); \core_competency\api::require_enabled(); $template = \core_competency\api::read_template($id); $context = $template->get_context(); $canreadtemplate = $template->can_read(); $canmanagetemplate = $template->can_manage(); if (!$canreadtemplate) { throw new required_capability_exception($context, 'moodle/competency:templateview', 'nopermissions', ''); } // Set up the page. $url = new moodle_url('/admin/tool/lp/template_plans.php', array('id' => $id, 'pagecontextid' => $pagecontextid)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_template($pagecontextid, $url, $template, get_string('userplans', 'core_competency')); // Capture the form submission. $form = new \tool_lp\form\template_plans($url->out(false)); if ($canmanagetemplate && ($data = $form->get_data()) && !empty($data->users)) { $i = 0; foreach ($data->users as $userid) { $result = \core_competency\api::create_plan_from_template($template->get_id(), $userid); if ($result) { $i++; } } if ($i == 0) { $notification = get_string('noplanswerecreated', 'tool_lp'); } else { if ($i == 1) { $notification = get_string('oneplanwascreated', 'tool_lp');
// (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/>. /** * This page lets users see their learning plans. * * @package tool_lp * @copyright 2015 David Monllao * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once __DIR__ . '/../../../config.php'; require_login(null, false); if (isguestuser()) { throw new require_login_exception('Guests are not allowed here.'); } \core_competency\api::require_enabled(); $userid = optional_param('userid', $USER->id, PARAM_INT); $url = new moodle_url('/admin/tool/lp/plans.php', array('userid' => $userid)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_plan($userid, $url); $output = $PAGE->get_renderer('tool_lp'); echo $output->header(); echo $output->heading($title); $page = new \tool_lp\output\plans_page($userid); echo $output->render($page); echo $output->footer();
// (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/>. /** * User evidence (evidence of prior learning). * * @package tool_lp * @copyright 2015 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once __DIR__ . '/../../../config.php'; require_login(null, false); if (isguestuser()) { throw new require_login_exception('Guests are not allowed here.'); } \core_competency\api::require_enabled(); $userid = optional_param('userid', $USER->id, PARAM_INT); $url = new moodle_url('/admin/tool/lp/user_evidence_list.php', array('userid' => $userid)); list($title, $subtitle) = \tool_lp\page_helper::setup_for_user_evidence($userid, $url); $output = $PAGE->get_renderer('tool_lp'); echo $output->header(); echo $output->heading($title); $page = new \tool_lp\output\user_evidence_list_page($userid); echo $output->render($page); echo $output->footer();
$userid = optional_param('userid', $USER->id, PARAM_INT); $id = optional_param('id', null, PARAM_INT); $returntype = optional_param('return', null, PARAM_ALPHA); $url = new moodle_url('/admin/tool/lp/user_evidence_edit.php', array('id' => $id, 'userid' => $userid, 'return' => $returntype)); $userevidence = null; if (empty($id)) { $pagetitle = get_string('addnewuserevidence', 'tool_lp'); list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_user_evidence($userid, $url, null, $pagetitle, $returntype); } else { $userevidence = \core_competency\api::read_user_evidence($id); // The userid parameter must be the same as the owner of the evidence. if ($userid != $userevidence->get_userid()) { throw new coding_exception('Inconsistency between the userid parameter and the userid of the plan.'); } $pagetitle = get_string('edituserevidence', 'tool_lp'); list($title, $subtitle, $returnurl) = \tool_lp\page_helper::setup_for_user_evidence($userid, $url, $userevidence, $pagetitle, $returntype); } // The context has been set to the user context in the page_helper. $context = $PAGE->context; $fileareaoptions = array('subdirs' => false); $customdata = array('fileareaoptions' => $fileareaoptions, 'persistent' => $userevidence, 'userid' => $userid); // Check if user has permissions to manage user evidence. if ($userevidence != null) { if (!$userevidence->can_manage()) { throw new required_capability_exception($context, 'moodle/competency:userevidencemanage', 'nopermissions', ''); } $customdata['evidence'] = $userevidence; } else { if (!\core_competency\user_evidence::can_manage_user($userid)) { throw new required_capability_exception($context, 'moodle/competency:userevidencemanage', 'nopermissions', ''); }