// store the updated values or re-save the new submission (re-saving needed because URLs are now rewritten)
        $DB->update_record('workshopplus_submissions', $formdata);
        // send submitted content for plagiarism detection
        $fs = get_file_storage();
        $files = $fs->get_area_files($workshopplus->context->id, 'mod_workshopplus', 'submission_attachment', $submission->id);
        $params = array('context' => $workshopplus->context, 'objectid' => $submission->id, 'other' => array('content' => $formdata->content, 'pathnamehashes' => array_keys($files)));
        $event = \mod_workshopplus\event\assessable_uploaded::create($params);
        $event->set_legacy_logdata($logdata);
        $event->trigger();
        redirect($workshopplus->submission_url($formdata->id));
    }
}
// load the form to override grade and/or publish the submission and process the submitted data eventually
if (!$edit and ($canoverride or $canpublish)) {
    $options = array('editable' => true, 'editablepublished' => $canpublish, 'overridablegrade' => $canoverride);
    $feedbackform = $workshopplus->get_feedbackauthor_form($PAGE->url, $submission, $options);
    if ($data = $feedbackform->get_data()) {
        $data = file_postupdate_standard_editor($data, 'feedbackauthor', array(), $workshopplus->context);
        $record = new stdclass();
        $record->id = $submission->id;
        if ($canoverride) {
            $record->gradeover = $workshopplus->raw_grade_value($data->gradeover, $workshopplus->grade);
            $record->gradeoverby = $USER->id;
            $record->feedbackauthor = $data->feedbackauthor;
            $record->feedbackauthorformat = $data->feedbackauthorformat;
        }
        if ($canpublish) {
            $record->published = !empty($data->published);
        }
        $DB->update_record('workshopplus_submissions', $record);
        redirect($workshopplus->view_url());