mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
Displays all assigned submissions to be reviewed and saves the calculated grade
This commit is contained in:
parent
3dc78e5b04
commit
ddb59c778f
7 changed files with 84 additions and 22 deletions
|
@ -93,7 +93,6 @@ if ($mform->is_cancelled()) {
|
|||
$rawgrade = $strategy->save_assessment($assessment, $data);
|
||||
if (!is_null($rawgrade) and isset($data->saveandclose)) {
|
||||
echo $OUTPUT->header();
|
||||
include(dirname(__FILE__) . '/tabs.php');
|
||||
echo $OUTPUT->heading(get_string('assessmentresult', 'workshop'), 2);
|
||||
echo $OUTPUT->box('Given grade: ' . sprintf("%01.2f", $rawgrade * 100) . ' %'); // todo more detailed info using own renderer
|
||||
echo $OUTPUT->continue_button($workshop->view_url());
|
||||
|
@ -109,7 +108,6 @@ if ($mform->is_cancelled()) {
|
|||
// Output starts here
|
||||
|
||||
echo $OUTPUT->header();
|
||||
include(dirname(__FILE__) . '/tabs.php');
|
||||
echo $OUTPUT->heading(get_string('assessmentform', 'workshop'), 2);
|
||||
|
||||
if ('assessment' === $mode) {
|
||||
|
@ -120,8 +118,9 @@ if ('assessment' === $mode) {
|
|||
$showname = false;
|
||||
$author = null;
|
||||
}
|
||||
$wsoutput = $PAGE->theme->get_renderer('mod_workshop', $PAGE); // workshop renderer
|
||||
echo $wsoutput->submission_full($submission, $showname, $author);
|
||||
$wsoutput = $PAGE->theme->get_renderer('mod_workshop', $PAGE); // workshop renderer
|
||||
$submission = $workshop->get_submission_by_id($submission->id); // reload so can be passed to the renderer
|
||||
echo $wsoutput->submission_full($submission, $showname);
|
||||
}
|
||||
|
||||
$mform->display();
|
||||
|
|
|
@ -381,7 +381,7 @@ class workshop_accumulative_strategy implements workshop_strategy {
|
|||
$grades = $this->get_current_assessment_data($assessment);
|
||||
$suggested = $this->calculate_peer_grade($grades);
|
||||
if (!is_null($suggested)) {
|
||||
// todo save into workshop_assessments
|
||||
$this->workshop->set_peer_grade($assessment->id, $suggested);
|
||||
}
|
||||
return $suggested;
|
||||
}
|
||||
|
|
|
@ -28,11 +28,11 @@ defined('MOODLE_INTERNAL') || die();
|
|||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string[''] = '';
|
||||
$string['assignedassessmentsnone'] = 'You have no assigned submission to assess';
|
||||
$string['reassess'] = 'Re-assess';
|
||||
$string['assess'] = 'Assess';
|
||||
$string['assignedassessments'] = 'Assigned submissions to assess';
|
||||
$string['givengrade'] = 'Given grade: $a';
|
||||
$string['someuserswosubmission'] = 'There are some users who have not submitted yet';
|
||||
$string['accesscontrol'] = 'Access control';
|
||||
$string['agreeassessments'] = 'Assessments must be agreed';
|
||||
|
|
|
@ -311,7 +311,7 @@ class workshop {
|
|||
a.grade, a.gradinggrade, a.gradinggradeover, a.gradinggradeoverby,
|
||||
reviewer.id AS reviewerid,reviewer.firstname AS reviewerfirstname,reviewer.lastname as reviewerlastname,
|
||||
s.title,
|
||||
author.id AS authorid, author.firstname AS authorfirstname,author.lastname as authorlastname
|
||||
author.id AS authorid, author.firstname AS authorfirstname,author.lastname AS authorlastname
|
||||
FROM {workshop_assessments} a
|
||||
INNER JOIN {user} reviewer ON (a.userid = reviewer.id)
|
||||
INNER JOIN {workshop_submissions} s ON (a.submissionid = s.id)
|
||||
|
@ -356,9 +356,11 @@ class workshop {
|
|||
global $DB;
|
||||
|
||||
$sql = 'SELECT a.*,
|
||||
reviewer.id AS reviewerid,reviewer.firstname AS reviewerfirstname,reviewer.lastname as reviewerlastname,
|
||||
s.title,
|
||||
author.id AS authorid, author.firstname AS authorfirstname,author.lastname as authorlastname
|
||||
reviewer.id AS reviewerid,reviewer.firstname AS reviewerfirstname,reviewer.lastname AS reviewerlastname,
|
||||
s.id AS submissionid, s.title AS submissiontitle, s.timecreated AS submissioncreated,
|
||||
s.timemodified AS submissionmodified,
|
||||
author.id AS authorid, author.firstname AS authorfirstname,author.lastname AS authorlastname,
|
||||
author.picture AS authorpicture, author.imagealt AS authorimagealt
|
||||
FROM {workshop_assessments} a
|
||||
INNER JOIN {user} reviewer ON (a.userid = reviewer.id)
|
||||
INNER JOIN {workshop_submissions} s ON (a.submissionid = s.id)
|
||||
|
@ -918,4 +920,24 @@ class workshop {
|
|||
$DB->set_field('workshop', 'phase', $newphase, array('id' => $this->id));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves a raw grade for submission as calculated from the assessment form fields
|
||||
*
|
||||
* @param array $assessmentid assessment record id, must exists
|
||||
* @param mixed $grade raw percentual grade from 0 to 1
|
||||
* @return false|float the saved grade
|
||||
*/
|
||||
public function set_peer_grade($assessmentid, $grade) {
|
||||
global $DB;
|
||||
|
||||
if (is_null($grade)) {
|
||||
return false;
|
||||
}
|
||||
$data = new stdClass();
|
||||
$data->id = $assessmentid;
|
||||
$data->grade = $grade;
|
||||
$DB->update_record('workshop_assessments', $data);
|
||||
return $grade;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,6 +114,9 @@ class moodle_mod_workshop_renderer extends moodle_renderer_base {
|
|||
/**
|
||||
* Display a short summary of the submission
|
||||
*
|
||||
* The passed submission object must define at least: id, title, timecreated, timemodified,
|
||||
* authorid, authorfirstname, authorlastname, authorpicture and authorimagealt
|
||||
*
|
||||
* @param stdClass $submission The submission record
|
||||
* @param bool $showauthorname Should the author name be displayed
|
||||
* @return string html to be echoed
|
||||
|
@ -174,7 +177,7 @@ class moodle_mod_workshop_renderer extends moodle_renderer_base {
|
|||
*
|
||||
* By default, this looks similar to a forum post.
|
||||
*
|
||||
* @param stdClass $submission The submission record
|
||||
* @param stdClass $submission The submission data
|
||||
* @param bool $showauthorname Should the author name be displayed
|
||||
* @return string html to be echoed
|
||||
*/
|
||||
|
|
|
@ -318,3 +318,11 @@
|
|||
padding: 0px 10px 0px 25px;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Assessment
|
||||
*/
|
||||
.assessment-summary.graded {
|
||||
background-color: #e7f1c3;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,19 +102,49 @@ case workshop::PHASE_SUBMISSION:
|
|||
if (has_capability('mod/workshop:viewallsubmissions', $PAGE->context)) {
|
||||
$shownames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
|
||||
echo $OUTPUT->box_start('generalbox allsubmissions');
|
||||
$counter = 0;
|
||||
$submissions = $workshop->get_submissions('all', false);
|
||||
foreach ($submissions as $submission) {
|
||||
$counter++;
|
||||
echo $wsoutput->submission_summary($submission, $shownames);
|
||||
}
|
||||
if ($counter == 0) {
|
||||
if (! $submissions = $workshop->get_submissions('all', false)) {
|
||||
echo $OUTPUT->container(get_string('nosubmissions', 'workshop'), 'nosubmissions');
|
||||
}
|
||||
foreach ($submissions as $submission) {
|
||||
echo $wsoutput->submission_summary($submission, $shownames);
|
||||
}
|
||||
echo $OUTPUT->box_end();
|
||||
}
|
||||
break;
|
||||
case workshop::PHASE_ASSESSMENT:
|
||||
if (! $assessments = $workshop->get_assessments_by_reviewer($USER->id)) {
|
||||
echo $OUTPUT->heading(get_string('assignedassessmentsnone', 'workshop'), 3);
|
||||
} else {
|
||||
echo $OUTPUT->heading(get_string('assignedassessments', 'workshop'), 3);
|
||||
$shownames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
|
||||
foreach ($assessments as $assessment) {
|
||||
$submission = clone($assessment);
|
||||
$submission->id = $submission->submissionid;
|
||||
$submission->title = $submission->submissiontitle;
|
||||
$submission->timecreated = $submission->submissioncreated;
|
||||
$submission->timemodified = $submission->submissionmodified;
|
||||
if (is_null($assessment->grade)) {
|
||||
$class = ' notgraded';
|
||||
$givengrade = get_string('nogradeyet', 'workshop');
|
||||
$buttontext = get_string('assess', 'workshop');
|
||||
} else {
|
||||
$class = ' graded';
|
||||
// todo format grade
|
||||
$givengrade = $assessment->grade;
|
||||
$buttontext = get_string('reassess', 'workshop');
|
||||
}
|
||||
echo $OUTPUT->box_start('generalbox assessment-summary' . $class);
|
||||
echo $wsoutput->submission_summary($submission, $shownames);
|
||||
echo get_string('givengrade', 'workshop', $givengrade);
|
||||
$button = new html_form();
|
||||
$button->method = 'get';
|
||||
$button->button->text = $buttontext;
|
||||
$button->url = $workshop->assess_url($assessment->id);
|
||||
echo $OUTPUT->button($button);
|
||||
echo $OUTPUT->box_end();
|
||||
}
|
||||
}
|
||||
|
||||
case workshop::PHASE_EVALUATION:
|
||||
case workshop::PHASE_CLOSED:
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue