]> git.mjollnir.org Git - moodle.git/commitdiff
Frozen grid rubric layout fix
authorDavid Mudrak <david.mudrak@gmail.com>
Mon, 4 Jan 2010 18:20:10 +0000 (18:20 +0000)
committerDavid Mudrak <david.mudrak@gmail.com>
Mon, 4 Jan 2010 18:20:10 +0000 (18:20 +0000)
mod/workshop/assessment.php
mod/workshop/db/install.xml
mod/workshop/lang/en_utf8/workshop.php
mod/workshop/locallib.php
mod/workshop/styles.php

index 94fd9aeb6e542e5499998b946cadcd9d42a1e76d..dd6ec8f3a156194601875b44b604333e9ccee507 100644 (file)
@@ -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();
+}
index 4ebf728fb69f9d7b2fa5ac1e87a68b1133b2310d..bc4f63e8448559402106b3048b900f5d92e3dbf2 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="mod/workshop/db" VERSION="20091015" COMMENT="XMLDB file for Moodle mod/workshop"
+<XMLDB PATH="mod/workshop/db" VERSION="20091022" COMMENT="XMLDB file for Moodle mod/workshop"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
 >
@@ -58,9 +58,9 @@
         <FIELD NAME="attachment" TYPE="int" LENGTH="2" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" COMMENT="Used by File API file_postupdate_standard_filemanager" PREVIOUS="contenttrust" NEXT="grade"/>
         <FIELD NAME="grade" TYPE="number" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" DECIMALS="5" COMMENT="Aggregated grade for the submission. The grade is a decimal number from interval 0..100. If NULL then the grade for submission has not been aggregated yet." PREVIOUS="attachment" NEXT="gradeover"/>
         <FIELD NAME="gradeover" TYPE="number" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" DECIMALS="5" COMMENT="Grade for the submission manually overridden by a teacher. Grade is always from interval 0..100. If NULL then the grade is not overriden." PREVIOUS="grade" NEXT="gradeoverby"/>
-        <FIELD NAME="gradeoverby" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="The id of the user who has overridden the grade for submission." PREVIOUS="gradeover" NEXT="teachercomment"/>
-        <FIELD NAME="teachercomment" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="Teacher comment for the submission, for example describing the reasons for the overriding" PREVIOUS="gradeoverby" NEXT="teachercommentformat"/>
-        <FIELD NAME="teachercommentformat" TYPE="int" LENGTH="3" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" COMMENT="The format of the teachercomment field" PREVIOUS="teachercomment"/>
+        <FIELD NAME="gradeoverby" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="The id of the user who has overridden the grade for submission." PREVIOUS="gradeover" NEXT="feedbackauthor"/>
+        <FIELD NAME="feedbackauthor" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="Teacher comment/feedback for the author of the submission, for example describing the reasons for the grade overriding" PREVIOUS="gradeoverby" NEXT="feedbackauthorformat"/>
+        <FIELD NAME="feedbackauthorformat" TYPE="int" LENGTH="3" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="feedbackauthor"/>
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="workshop_fk"/>
         <FIELD NAME="grade" TYPE="number" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" DECIMALS="5" COMMENT="The aggregated grade for submission suggested by the reviewer. The grade 0..100 is computed from the values assigned to the assessment dimensions fields. If NULL then it has not been aggregated yet." PREVIOUS="timeagreed" NEXT="gradinggrade"/>
         <FIELD NAME="gradinggrade" TYPE="number" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" DECIMALS="5" COMMENT="The computed grade 0..100 for this assessment. If NULL then it has not been computed yet." PREVIOUS="grade" NEXT="gradinggradeover"/>
         <FIELD NAME="gradinggradeover" TYPE="number" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" DECIMALS="5" COMMENT="Grade for the assessment manually overridden by a teacher. Grade is always from interval 0..100. If NULL then the grade is not overriden." PREVIOUS="gradinggrade" NEXT="gradinggradeoverby"/>
-        <FIELD NAME="gradinggradeoverby" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="The id of the user who has overridden the grade for submission." PREVIOUS="gradinggradeover" NEXT="generalcomment"/>
-        <FIELD NAME="generalcomment" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="Comment from the reviewer" PREVIOUS="gradinggradeoverby" NEXT="generalcommentformat"/>
-        <FIELD NAME="generalcommentformat" TYPE="int" LENGTH="3" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" COMMENT="The format of generalcomment field" PREVIOUS="generalcomment" NEXT="teachercomment"/>
-        <FIELD NAME="teachercomment" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="The comment from the teacher. For example the reason why the grade for assessment was overridden" PREVIOUS="generalcommentformat" NEXT="teachercommentformat"/>
-        <FIELD NAME="teachercommentformat" TYPE="int" LENGTH="3" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" COMMENT="The format of teachercomment field" PREVIOUS="teachercomment"/>
+        <FIELD NAME="gradinggradeoverby" TYPE="int" LENGTH="10" NOTNULL="false" UNSIGNED="true" SEQUENCE="false" COMMENT="The id of the user who has overridden the grade for submission." PREVIOUS="gradinggradeover" NEXT="feedbackauthor"/>
+        <FIELD NAME="feedbackauthor" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="The comment/feedback from the reviewer for the author." PREVIOUS="gradinggradeoverby" NEXT="feedbackauthorformat"/>
+        <FIELD NAME="feedbackauthorformat" TYPE="int" LENGTH="3" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="feedbackauthor" NEXT="feedbackreviewer"/>
+        <FIELD NAME="feedbackreviewer" TYPE="text" LENGTH="big" NOTNULL="false" SEQUENCE="false" COMMENT="The comment/feedback from the teacher for the reviewer. For example the reason why the grade for assessment was overridden" PREVIOUS="feedbackauthorformat" NEXT="feedbackreviewerformat"/>
+        <FIELD NAME="feedbackreviewerformat" TYPE="int" LENGTH="3" NOTNULL="false" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="feedbackreviewer"/>
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="submission_fk"/>
index 9656ea419f5434d687bceaba8063e9febbc9b982..d00f3852802304a45ae5d3c38ba90f7985021ec4 100644 (file)
@@ -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';
index d04b0d0f09ef4f4fc5223082607254565bb2e888..b0ef2befea0c5784ff018551456e1b35faaaf1c0 100644 (file)
@@ -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                                                         //
     ////////////////////////////////////////////////////////////////////////////
index 2a081d87b77c676b03961733c40621dfdd9973c5..da97b999f88200268bffc3481f37c5073d1d8931 100644 (file)
 
 /* 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;
     vertical-align: top;
 }
 
+.mod-workshop .mform.frozen #rubric-grid-wrapper,
 .mod-workshop .assessmentform.rubric.grid .criterion {
     text-align: center;
 }
     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;