From 77f43e7d1aebc70207f9947aba0d83992c601659 Mon Sep 17 00:00:00 2001 From: David Mudrak Date: Mon, 4 Jan 2010 18:20:10 +0000 Subject: [PATCH] Frozen grid rubric layout fix --- mod/workshop/assessment.php | 38 ++++++++++++++++++++++---- mod/workshop/db/install.xml | 18 ++++++------ mod/workshop/lang/en_utf8/workshop.php | 7 +++-- mod/workshop/locallib.php | 15 ++++++++++ mod/workshop/styles.php | 11 ++++++++ 5 files changed, 71 insertions(+), 18 deletions(-) diff --git a/mod/workshop/assessment.php b/mod/workshop/assessment.php index 94fd9aeb6e..dd6ec8f3a1 100644 --- a/mod/workshop/assessment.php +++ b/mod/workshop/assessment.php @@ -58,6 +58,7 @@ $currenttab = 'assessment'; $canviewallassessments = has_capability('mod/workshop:viewallassessments', $workshop->context); $canviewallsubmissions = has_capability('mod/workshop:viewallsubmissions', $workshop->context); +$canoverridegrades = has_capability('mod/workshop:overridegrades', $workshop->context); $isreviewer = ($USER->id == $assessment->reviewerid); $isauthor = ($USER->id == $submission->authorid); @@ -69,21 +70,21 @@ if ($isreviewer or $isauthor or ($canviewallassessments and $canviewallsubmissio // only the reviewer is allowed to modify the assessment if ($isreviewer and $workshop->assessing_allowed()) { - $editable = true; + $assessmenteditable = true; } else { - $editable = false; + $assessmenteditable = false; } // load the grading strategy logic $strategy = $workshop->grading_strategy_instance(); // load the assessment form -$mform = $strategy->get_assessment_form($PAGE->url, 'assessment', $assessment, $editable); +$mform = $strategy->get_assessment_form($PAGE->url, 'assessment', $assessment, $assessmenteditable); if ($mform->is_cancelled()) { redirect($workshop->view_url()); -} elseif ($editable and ($data = $mform->get_data())) { +} elseif ($assessmenteditable and ($data = $mform->get_data())) { $rawgrade = $strategy->save_assessment($assessment, $data); if (!is_null($rawgrade) and isset($data->saveandclose)) { redirect($workshop->view_url()); @@ -94,13 +95,38 @@ if ($mform->is_cancelled()) { } } +// load the form to override gradinggrade +if ($canoverridegrades) { + $feedbackform = $workshop->get_feedbackreviewer_form($PAGE->url, $assessment, $canoverridegrades); + if ($data = $feedbackform->get_data()) { + print_object($data); die(); // DONOTCOMMIT + // todo + redirect($PAGE->url); + } +} + // output starts here echo $OUTPUT->header(); -echo $OUTPUT->heading(get_string('assessmentform', 'workshop'), 2); +echo $OUTPUT->heading(get_string('assessedsubmission', 'workshop'), 2); $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, has_capability('mod/workshop:viewauthornames', $workshop->context)); +if ($isreviewer) { + echo $OUTPUT->heading(get_string('assessmentbyyourself', 'workshop'), 2); +} elseif (has_capability('mod/workshop:viewreviewernames', $workshop->context)) { + $assessment = $workshop->get_assessment_by_id($assessment->id); // extend the current record with user details + $reviewer = new stdClass(); + $reviewer->firstname = $assessment->reviewerfirstname; + $reviewer->lastname = $assessment->reviewerlastname; + echo $OUTPUT->heading(get_string('assessmentbyknown', 'workshop', fullname($reviewer)), 2); +} else { + echo $OUTPUT->heading(get_string('assessmentbyunknown', 'workshop'), 2); +} $mform->display(); -echo $OUTPUT->footer(); + +if ($canoverridegrades) { + $feedbackform->display(); + echo $OUTPUT->footer(); +} diff --git a/mod/workshop/db/install.xml b/mod/workshop/db/install.xml index 4ebf728fb6..bc4f63e844 100644 --- a/mod/workshop/db/install.xml +++ b/mod/workshop/db/install.xml @@ -1,5 +1,5 @@ - @@ -58,9 +58,9 @@ - - - + + + @@ -81,11 +81,11 @@ - - - - - + + + + + diff --git a/mod/workshop/lang/en_utf8/workshop.php b/mod/workshop/lang/en_utf8/workshop.php index 9656ea419f..d00f385280 100644 --- a/mod/workshop/lang/en_utf8/workshop.php +++ b/mod/workshop/lang/en_utf8/workshop.php @@ -32,9 +32,10 @@ $string[''] = ''; $string[''] = ''; $string[''] = ''; $string[''] = ''; -$string[''] = ''; -$string[''] = ''; -$string[''] = ''; +$string['assessmentbyyourself'] = 'Assessment by yourself'; +$string['assessmentbyunknown'] = 'Assessment'; +$string['assessmentbyknown'] = 'Assessment by $a'; +$string['assessedsubmission'] = 'Assessed submission'; $string['accesscontrol'] = 'Access control'; $string['aggregategrades'] = 'Re-calculate grades'; $string['aggregation'] = 'Grades aggregation'; diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php index d04b0d0f09..b0ef2befea 100644 --- a/mod/workshop/locallib.php +++ b/mod/workshop/locallib.php @@ -1351,6 +1351,21 @@ class workshop { $rs->close(); } + /** + * TODO: short description. + * + * @param array $actionurl + * @return TODO + */ + public function get_feedbackreviewer_form(moodle_url $actionurl, stdClass $assessment, $editable) { + global $CFG; + require_once(dirname(__FILE__) . '/feedbackreviewer_form.php'); + + return new workshop_feedbackreviewer_form($actionurl, + array('workshop' => $this, 'current' => $assessment, 'feedbackopts' => array()), + 'post', '', null, $editable); + } + //////////////////////////////////////////////////////////////////////////// // Helper methods // //////////////////////////////////////////////////////////////////////////// diff --git a/mod/workshop/styles.php b/mod/workshop/styles.php index 2a081d87b7..da97b999f8 100644 --- a/mod/workshop/styles.php +++ b/mod/workshop/styles.php @@ -355,14 +355,18 @@ /* Rubric - grid layout */ +.mod-workshop .mform.frozen #rubric-grid-wrapper, .mod-workshop .assessmentform.rubric #rubric-grid-wrapper { border: none; } +.mod-workshop .mform.frozen #rubric-grid-wrapper legend, .mod-workshop .assessmentform.rubric #rubric-grid-wrapper legend { display: none; } +.mod-workshop .mform.frozen #rubric-grid-wrapper th, +.mod-workshop .mform.frozen #rubric-grid-wrapper td, .mod-workshop .assessmentform.rubric.grid th, .mod-workshop .assessmentform.rubric.grid td { border: 1px solid #ddd; @@ -370,6 +374,7 @@ vertical-align: top; } +.mod-workshop .mform.frozen #rubric-grid-wrapper, .mod-workshop .assessmentform.rubric.grid .criterion { text-align: center; } @@ -378,16 +383,22 @@ text-align: center; } +.mod-workshop .mform.frozen #rubric-grid-wrapper .fitem .fitemtitle, .mod-workshop .assessmentform.rubric.grid .fitem .fitemtitle { display: none; } +.mod-workshop .mform.frozen #rubric-grid-wrapper .fitem .felement, .mod-workshop .assessmentform.rubric.grid .fitem .felement { width: 100%; margin-left: auto; margin-right: auto; } +.mod-workshop .mform.frozen #rubric-grid-wrapper .fitem .felement { + border: none; +} + .mod-workshop .assessmentform.rubric.grid .fitem .felement span { display: block; text-align: center; -- 2.39.5