From 04f24757f71940ff0a2fab84231c5e17e92d3025 Mon Sep 17 00:00:00 2001 From: David Mudrak Date: Mon, 4 Jan 2010 18:22:27 +0000 Subject: [PATCH] Replaced develtools with a temporary loginas tab --- mod/workshop/develtools.php | 139 ------------------------------------ mod/workshop/loginas.php | 26 +++++++ mod/workshop/tabs.php | 4 +- 3 files changed, 28 insertions(+), 141 deletions(-) delete mode 100644 mod/workshop/develtools.php create mode 100644 mod/workshop/loginas.php diff --git a/mod/workshop/develtools.php b/mod/workshop/develtools.php deleted file mode 100644 index b42fd9961f..0000000000 --- a/mod/workshop/develtools.php +++ /dev/null @@ -1,139 +0,0 @@ -. - -/** - * Workshop development toolkit - * - * Provides some tools that may be useful during the workshop development - * and debugging. This is not intended for productive enviroments. - * - * @package mod-workshop - * @copyright 2009 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); -require_once(dirname(__FILE__).'/lib.php'); -require_once(dirname(__FILE__).'/locallib.php'); - -$cmid = required_param('cmid', PARAM_INT); // course module id -$tool = optional_param('tool', 'menu', PARAM_ALPHA); // toolkit action - -//debugging('', DEBUG_DEVELOPER) || die('For development purposes only'); -//has_capability('moodle/site:config', get_system_context()) || die('You are not allowed to run this'); - -$cm = get_coursemodule_from_id('workshop', $cmid, 0, false, MUST_EXIST); -$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); -$workshop = $DB->get_record('workshop', array('id' => $cm->instance), '*', MUST_EXIST); -$workshop = new workshop($workshop, $cm, $course); // wrap the record with a full API - -require_login($course, false, $cm); - -$PAGE->set_url('mod/workshop/develtools.php', array('cmid' => $cm->id)); -$PAGE->set_title($workshop->name); -$PAGE->set_heading($course->fullname); -$PAGE->set_button($OUTPUT->update_module_button($cm->id, 'workshop')); -$PAGE->navbar->add('Development tools'); - -if ($tool == 'mksubmissions') { - $authors = $workshop->get_potential_authors(false); - $authorswithsubmission = $workshop->get_potential_authors(true); - $authors = array_diff_key($authors, $authorswithsubmission); - echo $OUTPUT->header(); - $c = 0; // counter - foreach ($authors as $authorid => $author) { - $timenow = time() - rand(0, 60 * 60 * 24 * 7); // submitted sometimes during last week - $submission = new stdClass(); - $submission->workshopid = $workshop->id; - $submission->example = 0; - $submission->authorid = $authorid; - $submission->timecreated = $timenow; - $submission->timemodified = $timenow; - $submission->title = $author->firstname . '\'s submission'; - $submission->content = "

Pellentesque habitant morbi tristique " . - "senectus et netus et malesuada fames ac " . - "turpis egestas. Sed posuere volutpat nunc " . - "semper ultricies! Aenean elementum metus in " . - "lorem volutpat eu volutpat neque vulputate? " . - "Pellentesque sit amet sem leo. In hac " . - "habitasse platea dictumst. Proin quis " . - "accumsan elit. Nulla quis libero ac nunc " . - "elementum commodo at et sem. Vestibulum " . - "eget euismod felis. Lorem ipsum dolor sit " . - "amet, consectetur adipiscing elit. Aliquam " . - "id tellus vel velit aliquet volutpat at " . - "quis arcu. Nulla laoreet tincidunt sodales. " . - "Suspendisse potenti. Curabitur sagittis " . - "arcu nec erat aliquet imperdiet. Aenean at " . - "mi ut est molestie posuere a vitae mauris.

"; - - $submission->contentformat = FORMAT_HTML; - $submission->contenttrust = 0; - $submission->id = $DB->insert_record('workshop_submissions', $submission); - echo "
Added submission by " . fullname($author) . "
\n"; - $c++; - } - if ($c == 0) { - echo "
No submission added
\n"; - } - echo $OUTPUT->continue_button($PAGE->url->out()); - echo $OUTPUT->footer(); - exit; -} - -if ($tool == 'mkassessments') { - $diminfo = $workshop->grading_strategy_instance()->get_dimensions_info(); - - $sql = 'SELECT a.id - FROM {workshop_assessments} a - INNER JOIN {workshop_submissions} s ON (a.submissionid = s.id) - WHERE s.example = 0 AND s.workshopid = :workshopid'; - $params = array('workshopid' => $workshop->id); - $assessments = $DB->get_records_sql($sql, $params); - - foreach ($assessments as $assessment) { - foreach ($diminfo as $dimension) { - if (! $DB->record_exists('workshop_grades', array('assessmentid'=>$assessment->id, 'strategy'=>$workshop->strategy, 'dimensionid'=>$dimension->id))) { - $grade = new stdClass(); - $grade->assessmentid = $assessment->id; - $grade->strategy = $workshop->strategy; - $grade->dimensionid = $dimension->id; - $grade->grade = rand($dimension->min, $dimension->max); - $DB->insert_record('workshop_grades', $grade, false, true); - } - } - // to make this script work, make the update_peer_grade() a public method of the strategy class - $workshop->grading_strategy_instance()->update_peer_grade($assessment); - } - - echo $OUTPUT->header(); - echo $OUTPUT->heading('Submissions graded'); - echo $OUTPUT->continue_button($PAGE->url->out()); - echo $OUTPUT->footer(); - exit; -} - -// no known $tool selected -echo $OUTPUT->header(); -$currenttab = 'develtools'; -include(dirname(__FILE__) . '/tabs.php'); -echo $OUTPUT->heading('Workshop development tools', 1); -echo ''; -echo $OUTPUT->footer(); diff --git a/mod/workshop/loginas.php b/mod/workshop/loginas.php new file mode 100644 index 0000000000..1cf7ef2b20 --- /dev/null +++ b/mod/workshop/loginas.php @@ -0,0 +1,26 @@ +get_record('course', array('id' => $cm->course), '*', MUST_EXIST); +$workshop = $DB->get_record('workshop', array('id' => $cm->instance), '*', MUST_EXIST); + +require_login($course, true, $cm); +require_capability('moodle/user:loginas', get_context_instance(CONTEXT_COURSE, $course->id)); + +$workshop = new workshop($workshop, $cm, $course); + +$authors = $workshop->get_potential_authors(false); +$reviewers = $workshop->get_potential_reviewers(false); +$participants = array_intersect_key($authors, $reviewers); +$randomid = array_rand($participants); + +redirect("{$CFG->wwwroot}/course/loginas.php?id={$course->id}&user={$randomid}&return=1&sesskey=" . sesskey()); diff --git a/mod/workshop/tabs.php b/mod/workshop/tabs.php index cf8b11a04d..7c93e311a3 100644 --- a/mod/workshop/tabs.php +++ b/mod/workshop/tabs.php @@ -52,9 +52,9 @@ if (has_capability('mod/workshop:submit', $PAGE->context)) { if (has_capability('mod/workshop:allocate', $PAGE->context)) { $row[] = new tabobject('allocation', $workshop->allocation_url()->out(), get_string('allocate', 'workshop')); } -if (has_capability('moodle/site:config', get_system_context())) { +if (has_capability('moodle/user:loginas', get_system_context())) { // todo remove these tools from a production release - $row[] = new tabobject('develtools', "develtools.php?cmid={$cm->id}", 'Development tools'); + $row[] = new tabobject('loginas', "loginas.php?cmid={$cm->id}", 'Login as a random participant'); } $tabs[] = $row; -- 2.39.5