$seenaspublished = false; // is the submission seen as a published submission? if ($submission->id and ($ownsubmission or $canviewall or $isreviewer)) { // ok you can go } elseif ($submission->id and $ispublished) { // ok you can go $seenaspublished = true; } elseif (is_null($submission->id) and $cansubmit) { // ok you can go } else { print_error('nopermissions', 'error', $workshop->view_url(), 'view or create submission'); } if ($assess and $submission->id and !$isreviewer and $canallocate and $workshop->assessing_allowed($USER->id)) { require_sesskey(); $assessmentid = $workshop->add_allocation($submission, $USER->id); redirect($workshop->assess_url($assessmentid)); } if ($edit) { require_once dirname(__FILE__) . '/submission_form.php'; $maxfiles = $workshop->nattachments; $maxbytes = $workshop->maxbytes; $contentopts = array('trusttext' => true, 'subdirs' => false, 'maxfiles' => $maxfiles, 'maxbytes' => $maxbytes, 'context' => $workshop->context, 'return_types' => FILE_INTERNAL | FILE_EXTERNAL); $attachmentopts = array('subdirs' => true, 'maxfiles' => $maxfiles, 'maxbytes' => $maxbytes, 'return_types' => FILE_INTERNAL); $submission = file_prepare_standard_editor($submission, 'content', $contentopts, $workshop->context, 'mod_workshop', 'submission_content', $submission->id); $submission = file_prepare_standard_filemanager($submission, 'attachment', $attachmentopts, $workshop->context, 'mod_workshop', 'submission_attachment', $submission->id); $mform = new workshop_submission_form($PAGE->url, array('current' => $submission, 'workshop' => $workshop, 'contentopts' => $contentopts, 'attachmentopts' => $attachmentopts)); if ($mform->is_cancelled()) { redirect($workshop->view_url()); } elseif ($cansubmit and $formdata = $mform->get_data()) { if ($formdata->example == 0) { // this was used just for validation, it must be set to zero when dealing with normal submissions
require_once(dirname(__FILE__).'/locallib.php'); $asid = required_param('asid', PARAM_INT); // assessment id $assessment = $DB->get_record('workshop_assessments', array('id' => $asid), '*', MUST_EXIST); $submission = $DB->get_record('workshop_submissions', array('id' => $assessment->submissionid, 'example' => 0), '*', MUST_EXIST); $workshop = $DB->get_record('workshop', array('id' => $submission->workshopid), '*', MUST_EXIST); $course = $DB->get_record('course', array('id' => $workshop->course), '*', MUST_EXIST); $cm = get_coursemodule_from_instance('workshop', $workshop->id, $course->id, false, MUST_EXIST); require_login($course, false, $cm); if (isguestuser()) { print_error('guestsarenotallowed'); } $workshop = new workshop($workshop, $cm, $course); $PAGE->set_url($workshop->assess_url($assessment->id)); $PAGE->set_title($workshop->name); $PAGE->set_heading($course->fullname); $PAGE->navbar->add(get_string('assessingsubmission', 'workshop')); $canviewallassessments = has_capability('mod/workshop:viewallassessments', $workshop->context); $canviewallsubmissions = has_capability('mod/workshop:viewallsubmissions', $workshop->context); $cansetassessmentweight = has_capability('mod/workshop:allocate', $workshop->context); $canoverridegrades = has_capability('mod/workshop:overridegrades', $workshop->context); $isreviewer = ($USER->id == $assessment->reviewerid); $isauthor = ($USER->id == $submission->authorid); if ($isreviewer or $isauthor or ($canviewallassessments and $canviewallsubmissions)) { // such a user can continue } else { print_error('nopermissions', 'error', $workshop->view_url(), 'view this assessment');
/** * Print a detailed representation of what a user has done with * a given particular instance of this module, for user activity reports. * * @return string HTML */ function workshop_user_complete($course, $user, $mod, $workshop) { global $CFG, $DB, $OUTPUT; require_once(dirname(__FILE__).'/locallib.php'); require_once($CFG->libdir.'/gradelib.php'); $workshop = new workshop($workshop, $mod, $course); $grades = grade_get_grades($course->id, 'mod', 'workshop', $workshop->id, $user->id); if (!empty($grades->items[0]->grades)) { $submissiongrade = reset($grades->items[0]->grades); $info = get_string('submissiongrade', 'workshop') . ': ' . $submissiongrade->str_long_grade; echo html_writer::tag('li', $info, array('class'=>'submissiongrade')); } if (!empty($grades->items[1]->grades)) { $assessmentgrade = reset($grades->items[1]->grades); $info = get_string('gradinggrade', 'workshop') . ': ' . $assessmentgrade->str_long_grade; echo html_writer::tag('li', $info, array('class'=>'gradinggrade')); } if (has_capability('mod/workshop:viewallsubmissions', $workshop->context)) { $canviewsubmission = true; if (groups_get_activity_groupmode($workshop->cm) == SEPARATEGROUPS) { // user must have accessallgroups or share at least one group with the submission author if (!has_capability('moodle/site:accessallgroups', $workshop->context)) { $usersgroups = groups_get_activity_allowed_groups($workshop->cm); $authorsgroups = groups_get_all_groups($workshop->course->id, $user->id, $workshop->cm->groupingid, 'g.id'); $sharedgroups = array_intersect_key($usersgroups, $authorsgroups); if (empty($sharedgroups)) { $canviewsubmission = false; } } } if ($canviewsubmission and $submission = $workshop->get_submission_by_author($user->id)) { $title = format_string($submission->title); $url = $workshop->submission_url($submission->id); $link = html_writer::link($url, $title); $info = get_string('submission', 'workshop').': '.$link; echo html_writer::tag('li', $info, array('class'=>'submission')); } } if (has_capability('mod/workshop:viewallassessments', $workshop->context)) { if ($assessments = $workshop->get_assessments_by_reviewer($user->id)) { foreach ($assessments as $assessment) { $a = new stdclass(); $a->submissionurl = $workshop->submission_url($assessment->submissionid)->out(); $a->assessmenturl = $workshop->assess_url($assessment->id)->out(); $a->submissiontitle = s($assessment->submissiontitle); echo html_writer::tag('li', get_string('assessmentofsubmission', 'workshop', $a)); } } } }
/** * Print a detailed representation of what a user has done with * a given particular instance of this module, for user activity reports. * * @return string HTML */ function workshop_user_complete($course, $user, $mod, $workshop) { global $CFG, $DB, $OUTPUT; require_once dirname(__FILE__) . '/locallib.php'; require_once $CFG->libdir . '/gradelib.php'; $workshop = new workshop($workshop, $mod, $course); $grades = grade_get_grades($course->id, 'mod', 'workshop', $workshop->id, $user->id); if (!empty($grades->items[0]->grades)) { $submissiongrade = reset($grades->items[0]->grades); $info = get_string('submissiongrade', 'workshop') . ': ' . $submissiongrade->str_long_grade; echo html_writer::tag('li', $info, array('class' => 'submissiongrade')); } if (!empty($grades->items[1]->grades)) { $assessmentgrade = reset($grades->items[1]->grades); $info = get_string('gradinggrade', 'workshop') . ': ' . $assessmentgrade->str_long_grade; echo html_writer::tag('li', $info, array('class' => 'gradinggrade')); } if (has_capability('mod/workshop:viewallsubmissions', $workshop->context)) { if ($submission = $workshop->get_submission_by_author($user->id)) { $title = format_string($submission->title); $url = $workshop->submission_url($submission->id); $link = html_writer::link($url, $title); $info = get_string('submission', 'workshop') . ': ' . $link; echo html_writer::tag('li', $info, array('class' => 'submission')); } } if (has_capability('mod/workshop:viewallassessments', $workshop->context)) { if ($assessments = $workshop->get_assessments_by_reviewer($user->id)) { foreach ($assessments as $assessment) { $a = new stdclass(); $a->submissionurl = $workshop->submission_url($assessment->submissionid)->out(); $a->assessmenturl = $workshop->assess_url($assessment->id)->out(); $a->submissiontitle = s($assessment->submissiontitle); echo html_writer::tag('li', get_string('assessmentofsubmission', 'workshop', $a)); } } } }
break; } } } $edit = ($editable and $edit); if ($submission->id and ($ownsubmission or $canviewall or $isreviewer)) { // ok you can go } elseif (is_null($submission->id) and $cansubmit) { // ok you can go } else { print_error('nopermissions', 'error', $workshop->view_url(), 'view or create submission'); } if ($assess and $submission->id and !$isreviewer and $canallocate and $workshop->assessing_allowed()) { require_sesskey(); $assessmentid = $workshop->add_allocation($submission, $USER->id); redirect($workshop->assess_url($assessmentid)); } if ($edit) { require_once dirname(__FILE__) . '/submission_form.php'; $maxfiles = $workshop->nattachments; $maxbytes = $workshop->maxbytes; $contentopts = array('trusttext' => true, 'subdirs' => false, 'maxfiles' => $maxfiles, 'maxbytes' => $maxbytes); $attachmentopts = array('subdirs' => true, 'maxfiles' => $maxfiles, 'maxbytes' => $maxbytes); $submission = file_prepare_standard_editor($submission, 'content', $contentopts, $workshop->context, 'mod_workshop', 'submission_content', $submission->id); $submission = file_prepare_standard_filemanager($submission, 'attachment', $attachmentopts, $workshop->context, 'mod_workshop', 'submission_attachment', $submission->id); $mform = new workshop_submission_form($PAGE->url, array('current' => $submission, 'workshop' => $workshop, 'contentopts' => $contentopts, 'attachmentopts' => $attachmentopts)); if ($mform->is_cancelled()) { redirect($workshop->view_url()); } elseif ($cansubmit and $formdata = $mform->get_data()) { if ($formdata->example == 0) { // this was used just for validation, it must be set to zero when dealing with normal submissions
*/ require __DIR__ . '/../../config.php'; require_once __DIR__ . '/locallib.php'; $asid = required_param('asid', PARAM_INT); // assessment id $assessment = $DB->get_record('workshop_assessments', array('id' => $asid), '*', MUST_EXIST); $submission = $DB->get_record('workshop_submissions', array('id' => $assessment->submissionid, 'example' => 0), '*', MUST_EXIST); $workshop = $DB->get_record('workshop', array('id' => $submission->workshopid), '*', MUST_EXIST); $course = $DB->get_record('course', array('id' => $workshop->course), '*', MUST_EXIST); $cm = get_coursemodule_from_instance('workshop', $workshop->id, $course->id, false, MUST_EXIST); require_login($course, false, $cm); if (isguestuser()) { print_error('guestsarenotallowed'); } $workshop = new workshop($workshop, $cm, $course); $PAGE->set_url($workshop->assess_url($assessment->id)); $PAGE->set_title($workshop->name); $PAGE->set_heading($course->fullname); $PAGE->navbar->add(get_string('assessingsubmission', 'workshop')); $canviewallassessments = has_capability('mod/workshop:viewallassessments', $workshop->context); $canviewallsubmissions = has_capability('mod/workshop:viewallsubmissions', $workshop->context); $cansetassessmentweight = has_capability('mod/workshop:allocate', $workshop->context); $canoverridegrades = has_capability('mod/workshop:overridegrades', $workshop->context); $isreviewer = $USER->id == $assessment->reviewerid; $isauthor = $USER->id == $submission->authorid; $canviewallsubmissions = $canviewallsubmissions && $workshop->check_group_membership($submission->authorid); if ($isreviewer or $isauthor or $canviewallassessments and $canviewallsubmissions) { // such a user can continue } else { print_error('nopermissions', 'error', $workshop->view_url(), 'view this assessment'); }