/**
  * @copydoc GridCategoryRow::getCategoryLabel()
  */
 function getCategoryLabel()
 {
     $stageId = $this->getData();
     import('lib.pkp.classes.workflow.WorkflowStageDAO');
     $stageTranslationKey = WorkflowStageDAO::getTranslationKeyFromId($stageId);
     return __($stageTranslationKey);
 }
コード例 #2
0
    /**
     * 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);
 }
コード例 #4
0
 /**
  * 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);
 }