From 00bc77eecdbd3a34e08277bffda801454c127f04 Mon Sep 17 00:00:00 2001 From: David Mudrak Date: Mon, 14 Jun 2010 10:28:24 +0000 Subject: [PATCH] Workshop: published submissions are available at the end of the activity --- mod/workshop/lang/en/workshop.php | 1 + mod/workshop/locallib.php | 20 ++++++++++++++++++++ mod/workshop/styles.css | 5 +++++ mod/workshop/view.php | 11 +++++++++++ 4 files changed, 37 insertions(+) diff --git a/mod/workshop/lang/en/workshop.php b/mod/workshop/lang/en/workshop.php index 3ce80b6761e..9905fb4b09f 100644 --- a/mod/workshop/lang/en/workshop.php +++ b/mod/workshop/lang/en/workshop.php @@ -161,6 +161,7 @@ $string['phasesetup'] = 'Setup phase'; $string['phasesubmission'] = 'Submission phase'; $string['prepareexamples'] = 'Prepare example submissions'; $string['previewassessmentform'] = 'Preview'; +$string['publishedsubmissions'] = 'Published submissions'; $string['publishsubmission'] = 'Publish submission'; $string['publishsubmission_help'] = 'Published submissions are available to the others when the workshop is closed.'; $string['reassess'] = 'Re-assess'; diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php index 8824de3ebce..2c178ce8b32 100644 --- a/mod/workshop/locallib.php +++ b/mod/workshop/locallib.php @@ -556,6 +556,26 @@ class workshop { return $DB->get_record_sql($sql, $params); } + /** + * Returns published submissions with their authors data + * + * @return array of stdclass + */ + public function get_published_submissions($orderby='finalgrade DESC') { + global $DB; + + $sql = "SELECT s.id, s.authorid, s.timecreated, s.timemodified, + s.title, s.grade, s.gradeover, COALESCE(s.gradeover,s.grade) AS finalgrade, + u.lastname AS authorlastname, u.firstname AS authorfirstname, u.id AS authorid, + u.picture AS authorpicture, u.imagealt AS authorimagealt + FROM {workshop_submissions} s + INNER JOIN {user} u ON (s.authorid = u.id) + WHERE s.example = 0 AND s.workshopid = :workshopid AND s.published = 1 + ORDER BY $orderby"; + $params = array('workshopid' => $this->id); + return $DB->get_records_sql($sql, $params); + } + /** * Returns full record of the given example submission * diff --git a/mod/workshop/styles.css b/mod/workshop/styles.css index 8df67df2164..4a5b43bef5a 100644 --- a/mod/workshop/styles.css +++ b/mod/workshop/styles.css @@ -1,3 +1,8 @@ +.path-mod-workshop .collapsibleregioncaption { + font-weight: bold; + font-size: 120%; +} + /** * Submission - one line summary display */ diff --git a/mod/workshop/view.php b/mod/workshop/view.php index 5c7de3e8977..4d12cb094e4 100644 --- a/mod/workshop/view.php +++ b/mod/workshop/view.php @@ -360,6 +360,17 @@ case workshop::PHASE_EVALUATION: } break; case workshop::PHASE_CLOSED: + if (has_capability('mod/workshop:viewpublishedsubmissions', $workshop->context)) { + if ($submissions = $workshop->get_published_submissions()) { + print_collapsible_region_start('', 'workshop-viewlet-publicsubmissions', get_string('publishedsubmissions', 'workshop')); + foreach ($submissions as $submission) { + echo $output->box_start('generalbox submission-summary'); + echo $output->submission_summary($submission, true); + echo $output->box_end(); + } + print_collapsible_region_end(); + } + } break; default: }