/** * Save review assignment * @param $request PKPRequest */ function execute() { // Get the list of available files for this review. $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); import('lib.pkp.classes.submission.SubmissionFile'); // File constants $submissionFiles = $submissionFileDao->getLatestRevisionsByReviewRound($this->_reviewRound, SUBMISSION_FILE_REVIEW_FILE); $selectedFiles = (array) $this->getData('selectedFiles'); // Revoke all, then grant selected. $reviewFilesDao = DAORegistry::getDAO('ReviewFilesDAO'); $reviewFilesDao->revokeByReviewId($this->_reviewAssignment->getId()); foreach ($submissionFiles as $submissionFile) { if (in_array($submissionFile->getFileId(), $selectedFiles)) { $reviewFilesDao->grant($this->_reviewAssignment->getId(), $submissionFile->getFileId()); } } $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment = $reviewAssignmentDao->getReviewAssignment($this->_reviewRound->getId(), $this->_reviewAssignment->getReviewerId(), $this->_reviewRound->getRound(), $this->_reviewRound->getStageId()); $reviewAssignment->setDateDue($this->getData('reviewDueDate')); $reviewAssignment->setDateResponseDue($this->getData('responseDueDate')); $reviewAssignmentDao->updateObject($reviewAssignment); }