if (isguestuser()) { print_error('guestsarenotallowed'); } $workshopplus = $DB->get_record('workshopplus', array('id' => $cm->instance), '*', MUST_EXIST); $workshopplus = new workshopplus($workshopplus, $cm, $course); $PAGE->set_url($workshopplus->submission_url(), array('cmid' => $cmid, 'id' => $id)); if ($edit) { $PAGE->url->param('edit', $edit); } if ($id) { // submission is specified $submission = $workshopplus->get_submission_by_id($id); $workshopplus->log('view submission', $workshopplus->submission_url($submission->id), $submission->id); } else { // no submission specified if (!($submission = $workshopplus->get_submission_by_author($USER->id))) { $submission = new stdclass(); $submission->id = null; $submission->authorid = $USER->id; $submission->example = 0; $submission->grade = null; $submission->gradeover = null; $submission->published = null; $submission->feedbackauthor = null; $submission->feedbackauthorformat = editors_get_preferred_format(); } } /* Modified by : Sayantan * Modification date: 31.03.2015 * Description : Added logic for $owngroupsubmission so that any member of the author's group can edit */
/** * 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 workshopplus_user_complete($course, $user, $mod, $workshopplus) { global $CFG, $DB, $OUTPUT; require_once dirname(__FILE__) . '/locallib.php'; require_once $CFG->libdir . '/gradelib.php'; $workshopplus = new workshopplus($workshopplus, $mod, $course); $grades = grade_get_grades($course->id, 'mod', 'workshopplus', $workshopplus->id, $user->id); if (!empty($grades->items[0]->grades)) { $submissiongrade = reset($grades->items[0]->grades); $info = get_string('submissiongrade', 'workshopplus') . ': ' . $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', 'workshopplus') . ': ' . $assessmentgrade->str_long_grade; echo html_writer::tag('li', $info, array('class' => 'gradinggrade')); } if (has_capability('mod/workshopplus:viewallsubmissions', $workshopplus->context)) { $canviewsubmission = true; if (groups_get_activity_groupmode($workshopplus->cm) == SEPARATEGROUPS) { // user must have accessallgroups or share at least one group with the submission author if (!has_capability('moodle/site:accessallgroups', $workshopplus->context)) { $usersgroups = groups_get_activity_allowed_groups($workshopplus->cm); $authorsgroups = groups_get_all_groups($workshopplus->course->id, $user->id, $workshopplus->cm->groupingid, 'g.id'); $sharedgroups = array_intersect_key($usersgroups, $authorsgroups); if (empty($sharedgroups)) { $canviewsubmission = false; } } } if ($canviewsubmission and $submission = $workshopplus->get_submission_by_author($user->id)) { $title = format_string($submission->title); $url = $workshopplus->submission_url($submission->id); $link = html_writer::link($url, $title); $info = get_string('submission', 'workshopplus') . ': ' . $link; echo html_writer::tag('li', $info, array('class' => 'submission')); } } if (has_capability('mod/workshopplus:viewallassessments', $workshopplus->context)) { if ($assessments = $workshopplus->get_assessments_by_reviewer($user->id)) { foreach ($assessments as $assessment) { $a = new stdclass(); $a->submissionurl = $workshopplus->submission_url($assessment->submissionid)->out(); $a->assessmenturl = $workshopplus->assess_url($assessment->id)->out(); $a->submissiontitle = s($assessment->submissiontitle); echo html_writer::tag('li', get_string('assessmentofsubmission', 'workshopplus', $a)); } } } }
print_error('nopermissions', 'error', $workshopplus->view_url(), 'view this assessment'); } if ($isauthor and !$isreviewer and !$canviewallassessments and $workshopplus->phase != workshopplus::PHASE_CLOSED) { // authors can see assessments of their work at the end of workshopplus only print_error('nopermissions', 'error', $workshopplus->view_url(), 'view assessment of own work before workshopplus is closed'); } // only the reviewer is allowed to modify the assessment if ($isreviewer and $workshopplus->assessing_allowed($USER->id)) { $assessmenteditable = true; } else { $assessmenteditable = false; } // check that all required examples have been assessed by the user if ($assessmenteditable and $workshopplus->useexamples and $workshopplus->examplesmode == workshopplus::EXAMPLES_BEFORE_ASSESSMENT and !has_capability('mod/workshopplus:manageexamples', $workshopplus->context)) { // the reviewer must have submitted their own submission $reviewersubmission = $workshopplus->get_submission_by_author($assessment->reviewerid); $output = $PAGE->get_renderer('mod_workshopplus'); if (!$reviewersubmission) { // no money, no love $assessmenteditable = false; echo $output->header(); echo $output->heading(format_string($workshopplus->name)); notice(get_string('exampleneedsubmission', 'workshopplus'), new moodle_url('/mod/workshopplus/view.php', array('id' => $cm->id))); echo $output->footer(); exit; } else { $examples = $workshopplus->get_examples_for_reviewer($assessment->reviewerid); foreach ($examples as $exampleid => $example) { if (is_null($example->grade)) { $assessmenteditable = false; echo $output->header();