/** * @copydoc GridCategoryRow::getCategoryLabel() */ function getCategoryLabel() { $stageId = $this->getData(); import('lib.pkp.classes.workflow.WorkflowStageDAO'); $stageTranslationKey = WorkflowStageDAO::getTranslationKeyFromId($stageId); return __($stageTranslationKey); }
/** * Get all stages assigned to one user group in one context. * @param $contextId int The context ID. * @param $userGroupId int The user group ID * @return array */ function getAssignedStagesByUserGroupId($contextId, $userGroupId) { $result = $this->retrieve('SELECT stage_id FROM user_group_stage WHERE context_id = ? AND user_group_id = ?', array((int) $contextId, (int) $userGroupId)); $returner = array(); while (!$result->EOF) { $stageId = $result->Fields('stage_id'); $returner[$stageId] = WorkflowStageDAO::getTranslationKeyFromId($stageId); $result->MoveNext(); } return $returner; }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LinkAction instances */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { $submission = $row->getData(); $user = $request->getUser(); switch ($column->getId()) { case 'editor': $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */ $editorAssignments = $stageAssignmentDao->getEditorsAssignedToStage($submission->getId(), $submission->getStageId()); $assignment = current($editorAssignments); if (!$assignment) { return array(); } $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */ $editor = $userDao->getById($assignment->getUserId()); import('lib.pkp.classes.linkAction.request.NullAction'); return array(new LinkAction('editor', new NullAction(), $editor->getInitials(), null, $editor->getFullName())); case 'stage': $stageId = $submission->getStageId(); $stage = null; if ($submission->getSubmissionProgress() > 0) { // Submission process not completed. $stage = __('submissions.incomplete'); } switch ($submission->getStatus()) { case STATUS_DECLINED: $stage = __('submission.status.declined'); break; case STATUS_PUBLISHED: $stage = __('submission.status.published'); break; } if (!$stage) { $stage = __(WorkflowStageDAO::getTranslationKeyFromId($stageId)); } import('lib.pkp.classes.linkAction.request.RedirectAction'); $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment = $reviewAssignmentDao->getLastReviewRoundReviewAssignmentByReviewer($submission->getId(), $user->getId()); if (is_a($reviewAssignment, 'ReviewAssignment') && $reviewAssignment->getStageId() == $stageId) { return array(new LinkAction('itemWorkflow', new RedirectAction($request->getDispatcher()->url($request, ROUTE_PAGE, null, 'reviewer', 'submission', $submission->getId())), $stage)); } return array(new LinkAction('itemWorkflow', new RedirectAction(SubmissionsListGridCellProvider::getUrlByUserRoles($request, $submission)), $stage)); } return parent::getCellActions($request, $row, $column, $position); }
/** * Get cell actions associated with this row/column combination * @param $row GridRow * @param $column GridColumn * @return array an array of LinkAction instances */ function getCellActions($request, $row, $column, $position = GRID_ACTION_POSITION_DEFAULT) { $submission = $row->getData(); $user = $request->getUser(); switch ($column->getId()) { case 'editor': $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */ $editorAssignments = $stageAssignmentDao->getEditorsAssignedToStage($submission->getId(), $submission->getStageId()); $assignment = current($editorAssignments); if (!$assignment) { return array(); } $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */ $editor = $userDao->getById($assignment->getUserId()); import('lib.pkp.classes.linkAction.request.NullAction'); return array(new LinkAction('editor', new NullAction(), $editor->getInitials(), null, $editor->getFullName())); case 'stage': $stageId = $submission->getStageId(); $stage = null; if ($submission->getSubmissionProgress() > 0) { // Submission process not completed. $stage = __('submissions.incomplete'); } switch ($submission->getStatus()) { case STATUS_DECLINED: $stage = __('submission.status.declined'); break; case STATUS_PUBLISHED: $stage = __('submission.status.published'); break; } $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); if (!$stage) { $stage = __(WorkflowStageDAO::getTranslationKeyFromId($stageId)); } $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment = $reviewAssignmentDao->getLastReviewRoundReviewAssignmentByReviewer($submission->getId(), $user->getId()); if (is_a($reviewAssignment, 'ReviewAssignment')) { // Reviewer: Add a review link action. return array($this->_getCellLinkAction($request, 'reviewer', 'submission', $submission, $stage)); } else { // Get the right page and operation (authordashboard or workflow). list($page, $operation) = SubmissionsListGridCellProvider::getPageAndOperationByUserRoles($request, $submission); // Return redirect link action. return array($this->_getCellLinkAction($request, $page, $operation, $submission, $stage)); } } return parent::getCellActions($request, $row, $column, $position); }