Merge branch 'wip-MDL-29678-m21' of git://github.com/samhemelryk/moodle into MOODLE_2...
[moodle.git] / mod / workshop / view.php
blob999894dcf378af1c16dad1bcc82b6e59498b9adc
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
18 /**
19 * Prints a particular instance of workshop
21 * You can have a rather longer description of the file as well,
22 * if you like, and it can span multiple lines.
24 * @package mod
25 * @subpackage workshop
26 * @copyright 2009 David Mudrak <david.mudrak@gmail.com>
27 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
30 require_once(dirname(dirname(dirname(__FILE__))).'/config.php');
31 require_once(dirname(__FILE__).'/locallib.php');
32 require_once($CFG->libdir.'/completionlib.php');
34 $id = optional_param('id', 0, PARAM_INT); // course_module ID, or
35 $w = optional_param('w', 0, PARAM_INT); // workshop instance ID
36 $editmode = optional_param('editmode', null, PARAM_BOOL);
38 if ($id) {
39 $cm = get_coursemodule_from_id('workshop', $id, 0, false, MUST_EXIST);
40 $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
41 $workshop = $DB->get_record('workshop', array('id' => $cm->instance), '*', MUST_EXIST);
42 } else {
43 $workshop = $DB->get_record('workshop', array('id' => $w), '*', MUST_EXIST);
44 $course = $DB->get_record('course', array('id' => $workshop->course), '*', MUST_EXIST);
45 $cm = get_coursemodule_from_instance('workshop', $workshop->id, $course->id, false, MUST_EXIST);
48 require_login($course, true, $cm);
49 require_capability('mod/workshop:view', $PAGE->context);
51 $workshop = new workshop($workshop, $cm, $course);
52 $workshop->log('view');
54 // Mark viewed
55 $completion = new completion_info($course);
56 $completion->set_module_viewed($cm);
58 if (!is_null($editmode) && $PAGE->user_allowed_editing()) {
59 $USER->editing = $editmode;
62 $PAGE->set_url($workshop->view_url());
63 $PAGE->set_title($workshop->name);
64 $PAGE->set_heading($course->fullname);
66 $output = $PAGE->get_renderer('mod_workshop');
67 $userplan = new workshop_user_plan($workshop, $USER->id);
69 /// Output starts here
71 echo $output->header();
72 echo $output->heading_with_help(format_string($workshop->name), 'userplan', 'workshop');
73 echo $output->render($userplan);
75 switch ($workshop->phase) {
76 case workshop::PHASE_SETUP:
77 if (trim($workshop->intro)) {
78 print_collapsible_region_start('', 'workshop-viewlet-intro', get_string('introduction', 'workshop'));
79 echo $output->box(format_module_intro('workshop', $workshop, $workshop->cm->id), 'generalbox');
80 print_collapsible_region_end();
82 if ($workshop->useexamples and has_capability('mod/workshop:manageexamples', $PAGE->context)) {
83 print_collapsible_region_start('', 'workshop-viewlet-allexamples', get_string('examplesubmissions', 'workshop'));
84 echo $output->box_start('generalbox examples');
85 if ($workshop->grading_strategy_instance()->form_ready()) {
86 if (! $examples = $workshop->get_examples_for_manager()) {
87 echo $output->container(get_string('noexamples', 'workshop'), 'noexamples');
89 foreach ($examples as $example) {
90 $summary = $workshop->prepare_example_summary($example);
91 $summary->editable = true;
92 echo $output->render($summary);
94 $aurl = new moodle_url($workshop->exsubmission_url(0), array('edit' => 'on'));
95 echo $output->single_button($aurl, get_string('exampleadd', 'workshop'), 'get');
96 } else {
97 echo $output->container(get_string('noexamplesformready', 'workshop'));
99 echo $output->box_end();
100 print_collapsible_region_end();
102 break;
103 case workshop::PHASE_SUBMISSION:
104 if (trim($workshop->instructauthors)) {
105 $instructions = file_rewrite_pluginfile_urls($workshop->instructauthors, 'pluginfile.php', $PAGE->context->id,
106 'mod_workshop', 'instructauthors', 0, workshop::instruction_editors_options($PAGE->context));
107 print_collapsible_region_start('', 'workshop-viewlet-instructauthors', get_string('instructauthors', 'workshop'));
108 echo $output->box(format_text($instructions, $workshop->instructauthorsformat, array('overflowdiv'=>true)), array('generalbox', 'instructions'));
109 print_collapsible_region_end();
112 // does the user have to assess examples before submitting their own work?
113 $examplesmust = ($workshop->useexamples and $workshop->examplesmode == workshop::EXAMPLES_BEFORE_SUBMISSION);
115 // is the assessment of example submissions considered finished?
116 $examplesdone = has_capability('mod/workshop:manageexamples', $workshop->context);
117 if ($workshop->assessing_examples_allowed()
118 and has_capability('mod/workshop:submit', $workshop->context)
119 and ! has_capability('mod/workshop:manageexamples', $workshop->context)) {
120 $examples = $userplan->get_examples();
121 $total = count($examples);
122 $left = 0;
123 // make sure the current user has all examples allocated
124 foreach ($examples as $exampleid => $example) {
125 if (is_null($example->assessmentid)) {
126 $examples[$exampleid]->assessmentid = $workshop->add_allocation($example, $USER->id, 0);
128 if (is_null($example->grade)) {
129 $left++;
132 if ($left > 0 and $workshop->examplesmode != workshop::EXAMPLES_VOLUNTARY) {
133 $examplesdone = false;
134 } else {
135 $examplesdone = true;
137 print_collapsible_region_start('', 'workshop-viewlet-examples', get_string('exampleassessments', 'workshop'), false, $examplesdone);
138 echo $output->box_start('generalbox exampleassessments');
139 if ($total == 0) {
140 echo $output->heading(get_string('noexamples', 'workshop'), 3);
141 } else {
142 foreach ($examples as $example) {
143 $summary = $workshop->prepare_example_summary($example);
144 echo $output->render($summary);
147 echo $output->box_end();
148 print_collapsible_region_end();
151 if (has_capability('mod/workshop:submit', $PAGE->context) and (!$examplesmust or $examplesdone)) {
152 print_collapsible_region_start('', 'workshop-viewlet-ownsubmission', get_string('yoursubmission', 'workshop'));
153 echo $output->box_start('generalbox ownsubmission');
154 if ($submission = $workshop->get_submission_by_author($USER->id)) {
155 echo $output->render($workshop->prepare_submission_summary($submission, true));
156 if ($workshop->modifying_submission_allowed($USER->id)) {
157 $btnurl = new moodle_url($workshop->submission_url(), array('edit' => 'on'));
158 $btntxt = get_string('editsubmission', 'workshop');
160 } else {
161 echo $output->container(get_string('noyoursubmission', 'workshop'));
162 if ($workshop->creating_submission_allowed($USER->id)) {
163 $btnurl = new moodle_url($workshop->submission_url(), array('edit' => 'on'));
164 $btntxt = get_string('createsubmission', 'workshop');
167 if (!empty($btnurl)) {
168 echo $output->single_button($btnurl, $btntxt, 'get');
170 echo $output->box_end();
171 print_collapsible_region_end();
174 if (has_capability('mod/workshop:viewallsubmissions', $PAGE->context)) {
175 $shownames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
176 print_collapsible_region_start('', 'workshop-viewlet-allsubmissions', get_string('allsubmissions', 'workshop'));
177 echo $output->box_start('generalbox allsubmissions');
178 if (! $submissions = $workshop->get_submissions('all')) {
179 echo $output->container(get_string('nosubmissions', 'workshop'), 'nosubmissions');
181 foreach ($submissions as $submission) {
182 echo $output->render($workshop->prepare_submission_summary($submission, $shownames));
184 echo $output->box_end();
185 print_collapsible_region_end();
188 break;
190 case workshop::PHASE_ASSESSMENT:
192 $ownsubmissionexists = null;
193 if (has_capability('mod/workshop:submit', $PAGE->context)) {
194 if ($ownsubmission = $workshop->get_submission_by_author($USER->id)) {
195 print_collapsible_region_start('', 'workshop-viewlet-ownsubmission', get_string('yoursubmission', 'workshop'), false, true);
196 echo $output->box_start('generalbox ownsubmission');
197 echo $output->render($workshop->prepare_submission_summary($ownsubmission, true));
198 $ownsubmissionexists = true;
199 } else {
200 print_collapsible_region_start('', 'workshop-viewlet-ownsubmission', get_string('yoursubmission', 'workshop'));
201 echo $output->box_start('generalbox ownsubmission');
202 echo $output->container(get_string('noyoursubmission', 'workshop'));
203 $ownsubmissionexists = false;
204 if ($workshop->creating_submission_allowed($USER->id)) {
205 $btnurl = new moodle_url($workshop->submission_url(), array('edit' => 'on'));
206 $btntxt = get_string('createsubmission', 'workshop');
209 if (!empty($btnurl)) {
210 echo $output->single_button($btnurl, $btntxt, 'get');
212 echo $output->box_end();
213 print_collapsible_region_end();
216 if (has_capability('mod/workshop:viewallassessments', $PAGE->context)) {
217 $page = optional_param('page', 0, PARAM_INT);
218 $sortby = optional_param('sortby', 'lastname', PARAM_ALPHA);
219 $sorthow = optional_param('sorthow', 'ASC', PARAM_ALPHA);
220 $perpage = 10; // todo let the user modify this
221 $groups = ''; // todo let the user choose the group
222 $PAGE->set_url($PAGE->url, compact('sortby', 'sorthow', 'page')); // TODO: this is suspicious
223 $data = $workshop->prepare_grading_report_data($USER->id, $groups, $page, $perpage, $sortby, $sorthow);
224 if ($data) {
225 $showauthornames = has_capability('mod/workshop:viewauthornames', $workshop->context);
226 $showreviewernames = has_capability('mod/workshop:viewreviewernames', $workshop->context);
228 // prepare paging bar
229 $pagingbar = new paging_bar($data->totalcount, $page, $perpage, $PAGE->url, 'page');
231 // grading report display options
232 $reportopts = new stdclass();
233 $reportopts->showauthornames = $showauthornames;
234 $reportopts->showreviewernames = $showreviewernames;
235 $reportopts->sortby = $sortby;
236 $reportopts->sorthow = $sorthow;
237 $reportopts->showsubmissiongrade = false;
238 $reportopts->showgradinggrade = false;
240 echo $output->render($pagingbar);
241 echo $output->render(new workshop_grading_report($data, $reportopts));
242 echo $output->render($pagingbar);
245 if (trim($workshop->instructreviewers)) {
246 $instructions = file_rewrite_pluginfile_urls($workshop->instructreviewers, 'pluginfile.php', $PAGE->context->id,
247 'mod_workshop', 'instructreviewers', 0, workshop::instruction_editors_options($PAGE->context));
248 print_collapsible_region_start('', 'workshop-viewlet-instructreviewers', get_string('instructreviewers', 'workshop'));
249 echo $output->box(format_text($instructions, $workshop->instructreviewersformat, array('overflowdiv'=>true)), array('generalbox', 'instructions'));
250 print_collapsible_region_end();
253 // does the user have to assess examples before assessing other's work?
254 $examplesmust = ($workshop->useexamples and $workshop->examplesmode == workshop::EXAMPLES_BEFORE_ASSESSMENT);
256 // is the assessment of example submissions considered finished?
257 $examplesdone = has_capability('mod/workshop:manageexamples', $workshop->context);
259 // can the examples be assessed?
260 $examplesavailable = true;
262 if (!$examplesdone and $examplesmust and ($ownsubmissionexists === false)) {
263 print_collapsible_region_start('', 'workshop-viewlet-examplesfail', get_string('exampleassessments', 'workshop'));
264 echo $output->box(get_string('exampleneedsubmission', 'workshop'));
265 print_collapsible_region_end();
266 $examplesavailable = false;
269 if ($workshop->assessing_examples_allowed()
270 and has_capability('mod/workshop:submit', $workshop->context)
271 and ! has_capability('mod/workshop:manageexamples', $workshop->context)
272 and $examplesavailable) {
273 $examples = $userplan->get_examples();
274 $total = count($examples);
275 $left = 0;
276 // make sure the current user has all examples allocated
277 foreach ($examples as $exampleid => $example) {
278 if (is_null($example->assessmentid)) {
279 $examples[$exampleid]->assessmentid = $workshop->add_allocation($example, $USER->id, 0);
281 if (is_null($example->grade)) {
282 $left++;
285 if ($left > 0 and $workshop->examplesmode != workshop::EXAMPLES_VOLUNTARY) {
286 $examplesdone = false;
287 } else {
288 $examplesdone = true;
290 print_collapsible_region_start('', 'workshop-viewlet-examples', get_string('exampleassessments', 'workshop'), false, $examplesdone);
291 echo $output->box_start('generalbox exampleassessments');
292 if ($total == 0) {
293 echo $output->heading(get_string('noexamples', 'workshop'), 3);
294 } else {
295 foreach ($examples as $example) {
296 $summary = $workshop->prepare_example_summary($example);
297 echo $output->render($summary);
300 echo $output->box_end();
301 print_collapsible_region_end();
303 if (!$examplesmust or $examplesdone) {
304 print_collapsible_region_start('', 'workshop-viewlet-assignedassessments', get_string('assignedassessments', 'workshop'));
305 if (! $assessments = $workshop->get_assessments_by_reviewer($USER->id)) {
306 echo $output->box_start('generalbox assessment-none');
307 echo $output->heading(get_string('assignedassessmentsnone', 'workshop'), 3);
308 echo $output->box_end();
309 } else {
310 $shownames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
311 foreach ($assessments as $assessment) {
312 $submission = new stdClass();
313 $submission->id = $assessment->submissionid;
314 $submission->title = $assessment->submissiontitle;
315 $submission->timecreated = $assessment->submissioncreated;
316 $submission->timemodified = $assessment->submissionmodified;
317 $submission->authorid = $assessment->authorid;
318 $submission->authorfirstname = $assessment->authorfirstname;
319 $submission->authorlastname = $assessment->authorlastname;
320 $submission->authorpicture = $assessment->authorpicture;
321 $submission->authorimagealt = $assessment->authorimagealt;
322 $submission->authoremail = $assessment->authoremail;
324 // transform the submission object into renderable component
325 $submission = $workshop->prepare_submission_summary($submission, $shownames);
327 if (is_null($assessment->grade)) {
328 $submission->status = 'notgraded';
329 $class = ' notgraded';
330 $buttontext = get_string('assess', 'workshop');
331 } else {
332 $submission->status = 'graded';
333 $class = ' graded';
334 $buttontext = get_string('reassess', 'workshop');
337 echo $output->box_start('generalbox assessment-summary' . $class);
338 echo $output->render($submission);
339 $aurl = $workshop->assess_url($assessment->id);
340 echo $output->single_button($aurl, $buttontext, 'get');
341 echo $output->box_end();
344 print_collapsible_region_end();
346 break;
347 case workshop::PHASE_EVALUATION:
348 if (has_capability('mod/workshop:viewallassessments', $PAGE->context)) {
349 $page = optional_param('page', 0, PARAM_INT);
350 $sortby = optional_param('sortby', 'lastname', PARAM_ALPHA);
351 $sorthow = optional_param('sorthow', 'ASC', PARAM_ALPHA);
352 $perpage = 10; // todo let the user modify this
353 $groups = ''; // todo let the user choose the group
354 $PAGE->set_url($PAGE->url, compact('sortby', 'sorthow', 'page')); // TODO: this is suspicious
355 $data = $workshop->prepare_grading_report_data($USER->id, $groups, $page, $perpage, $sortby, $sorthow);
356 if ($data) {
357 $showauthornames = has_capability('mod/workshop:viewauthornames', $workshop->context);
358 $showreviewernames = has_capability('mod/workshop:viewreviewernames', $workshop->context);
360 if (has_capability('mod/workshop:overridegrades', $PAGE->context)) {
361 // load the grading evaluator
362 $evaluator = $workshop->grading_evaluation_instance();
363 $form = $evaluator->get_settings_form(new moodle_url($workshop->aggregate_url(),
364 compact('sortby', 'sorthow', 'page')));
365 $form->display();
368 // prepare paging bar
369 $pagingbar = new paging_bar($data->totalcount, $page, $perpage, $PAGE->url, 'page');
371 // grading report display options
372 $reportopts = new stdclass();
373 $reportopts->showauthornames = $showauthornames;
374 $reportopts->showreviewernames = $showreviewernames;
375 $reportopts->sortby = $sortby;
376 $reportopts->sorthow = $sorthow;
377 $reportopts->showsubmissiongrade = true;
378 $reportopts->showgradinggrade = true;
380 echo $output->render($pagingbar);
381 echo $output->render(new workshop_grading_report($data, $reportopts));
382 echo $output->render($pagingbar);
385 if (has_capability('mod/workshop:overridegrades', $workshop->context)) {
386 print_collapsible_region_start('', 'workshop-viewlet-cleargrades', get_string('toolbox', 'workshop'), false, true);
387 echo $output->box_start('generalbox toolbox');
389 // Clear aggregated grades
390 $url = new moodle_url($workshop->toolbox_url('clearaggregatedgrades'));
391 $btn = new single_button($url, get_string('clearaggregatedgrades', 'workshop'), 'post');
392 $btn->add_confirm_action(get_string('clearaggregatedgradesconfirm', 'workshop'));
393 echo $output->container_start('toolboxaction');
394 echo $output->render($btn);
395 echo $output->help_icon('clearaggregatedgrades', 'workshop');
396 echo $output->container_end();
397 // Clear assessments
398 $url = new moodle_url($workshop->toolbox_url('clearassessments'));
399 $btn = new single_button($url, get_string('clearassessments', 'workshop'), 'post');
400 $btn->add_confirm_action(get_string('clearassessmentsconfirm', 'workshop'));
401 echo $output->container_start('toolboxaction');
402 echo $output->render($btn);
403 echo $output->help_icon('clearassessments', 'workshop');
404 echo html_writer::empty_tag('img', array('src' => $output->pix_url('i/risk_dataloss'),
405 'title' => get_string('riskdatalossshort', 'admin'),
406 'alt' => get_string('riskdatalossshort', 'admin')));
407 echo $output->container_end();
409 echo $output->box_end();
410 print_collapsible_region_end();
412 if (has_capability('mod/workshop:submit', $PAGE->context)) {
413 print_collapsible_region_start('', 'workshop-viewlet-ownsubmission', get_string('yoursubmission', 'workshop'));
414 echo $output->box_start('generalbox ownsubmission');
415 if ($submission = $workshop->get_submission_by_author($USER->id)) {
416 echo $output->render($workshop->prepare_submission_summary($submission, true));
417 } else {
418 echo $output->container(get_string('noyoursubmission', 'workshop'));
420 echo $output->box_end();
421 print_collapsible_region_end();
423 if ($assessments = $workshop->get_assessments_by_reviewer($USER->id)) {
424 print_collapsible_region_start('', 'workshop-viewlet-assignedassessments', get_string('assignedassessments', 'workshop'));
425 $shownames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
426 foreach ($assessments as $assessment) {
427 $submission = new stdclass();
428 $submission->id = $assessment->submissionid;
429 $submission->title = $assessment->submissiontitle;
430 $submission->timecreated = $assessment->submissioncreated;
431 $submission->timemodified = $assessment->submissionmodified;
432 $submission->authorid = $assessment->authorid;
433 $submission->authorfirstname = $assessment->authorfirstname;
434 $submission->authorlastname = $assessment->authorlastname;
435 $submission->authorpicture = $assessment->authorpicture;
436 $submission->authorimagealt = $assessment->authorimagealt;
437 $submission->authoremail = $assessment->authoremail;
439 if (is_null($assessment->grade)) {
440 $class = ' notgraded';
441 $submission->status = 'notgraded';
442 $buttontext = get_string('assess', 'workshop');
443 } else {
444 $class = ' graded';
445 $submission->status = 'graded';
446 $buttontext = get_string('reassess', 'workshop');
448 echo $output->box_start('generalbox assessment-summary' . $class);
449 echo $output->render($workshop->prepare_submission_summary($submission, $shownames));
450 echo $output->box_end();
452 print_collapsible_region_end();
454 break;
455 case workshop::PHASE_CLOSED:
456 if (has_capability('mod/workshop:viewallassessments', $PAGE->context)) {
457 $page = optional_param('page', 0, PARAM_INT);
458 $sortby = optional_param('sortby', 'lastname', PARAM_ALPHA);
459 $sorthow = optional_param('sorthow', 'ASC', PARAM_ALPHA);
460 $perpage = 10; // todo let the user modify this
461 $groups = ''; // todo let the user choose the group
462 $PAGE->set_url($PAGE->url, compact('sortby', 'sorthow', 'page')); // TODO: this is suspicious
463 $data = $workshop->prepare_grading_report_data($USER->id, $groups, $page, $perpage, $sortby, $sorthow);
464 if ($data) {
465 $showauthornames = has_capability('mod/workshop:viewauthornames', $workshop->context);
466 $showreviewernames = has_capability('mod/workshop:viewreviewernames', $workshop->context);
468 // prepare paging bar
469 $pagingbar = new paging_bar($data->totalcount, $page, $perpage, $PAGE->url, 'page');
471 // grading report display options
472 $reportopts = new stdclass();
473 $reportopts->showauthornames = $showauthornames;
474 $reportopts->showreviewernames = $showreviewernames;
475 $reportopts->sortby = $sortby;
476 $reportopts->sorthow = $sorthow;
477 $reportopts->showsubmissiongrade = true;
478 $reportopts->showgradinggrade = true;
480 print_collapsible_region_start('', 'workshop-viewlet-gradereport', get_string('gradesreport', 'workshop'));
481 echo $output->render($pagingbar);
482 echo $output->render(new workshop_grading_report($data, $reportopts));
483 echo $output->render($pagingbar);
484 print_collapsible_region_end();
487 if (has_capability('mod/workshop:submit', $PAGE->context)) {
488 print_collapsible_region_start('', 'workshop-viewlet-ownsubmission', get_string('yoursubmission', 'workshop'));
489 echo $output->box_start('generalbox ownsubmission');
490 if ($submission = $workshop->get_submission_by_author($USER->id)) {
491 echo $output->render($workshop->prepare_submission_summary($submission, true));
492 } else {
493 echo $output->container(get_string('noyoursubmission', 'workshop'));
495 echo $output->box_end();
497 if (!empty($submission->gradeoverby) and strlen(trim($submission->feedbackauthor)) > 0) {
498 echo $output->render(new workshop_feedback_author($submission));
501 print_collapsible_region_end();
503 if (has_capability('mod/workshop:viewpublishedsubmissions', $workshop->context)) {
504 $shownames = has_capability('mod/workshop:viewauthorpublished', $workshop->context);
505 if ($submissions = $workshop->get_published_submissions()) {
506 print_collapsible_region_start('', 'workshop-viewlet-publicsubmissions', get_string('publishedsubmissions', 'workshop'));
507 foreach ($submissions as $submission) {
508 echo $output->box_start('generalbox submission-summary');
509 echo $output->render($workshop->prepare_submission_summary($submission, $shownames));
510 echo $output->box_end();
512 print_collapsible_region_end();
515 if ($assessments = $workshop->get_assessments_by_reviewer($USER->id)) {
516 print_collapsible_region_start('', 'workshop-viewlet-assignedassessments', get_string('assignedassessments', 'workshop'));
517 $shownames = has_capability('mod/workshop:viewauthornames', $PAGE->context);
518 foreach ($assessments as $assessment) {
519 $submission = new stdclass();
520 $submission->id = $assessment->submissionid;
521 $submission->title = $assessment->submissiontitle;
522 $submission->timecreated = $assessment->submissioncreated;
523 $submission->timemodified = $assessment->submissionmodified;
524 $submission->authorid = $assessment->authorid;
525 $submission->authorfirstname = $assessment->authorfirstname;
526 $submission->authorlastname = $assessment->authorlastname;
527 $submission->authorpicture = $assessment->authorpicture;
528 $submission->authorimagealt = $assessment->authorimagealt;
529 $submission->authoremail = $assessment->authoremail;
531 if (is_null($assessment->grade)) {
532 $class = ' notgraded';
533 $submission->status = 'notgraded';
534 $buttontext = get_string('assess', 'workshop');
535 } else {
536 $class = ' graded';
537 $submission->status = 'graded';
538 $buttontext = get_string('reassess', 'workshop');
540 echo $output->box_start('generalbox assessment-summary' . $class);
541 echo $output->render($workshop->prepare_submission_summary($submission, $shownames));
542 echo $output->box_end();
544 if (strlen(trim($assessment->feedbackreviewer)) > 0) {
545 echo $output->render(new workshop_feedback_reviewer($assessment));
548 print_collapsible_region_end();
550 break;
551 default:
554 echo $output->footer();