Exemple #1
0
 /**
  * @param sfWebRequest $request
  * @return string
  */
 public function executeDecisionModalSave(sfWebRequest $request)
 {
     $decision_id = $this->getUser()->getAttribute('decision_id', null, 'sfGuardSecurityUser');
     if (!empty($decision_id)) {
         $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id);
     }
     if (empty($decision) || !is_object($decision)) {
         if (!DecisionTable::getInstance()->verifyAvailableName($this->getUser()->getGuardUser(), $request->getParameter('name'))) {
             return $this->renderText(json_encode(array('status' => 'error', 'message' => 'A project with that name already exists')));
         }
         $decision = new Decision();
         $folder = FolderTable::getInstance()->getNotDeletableForUser($this->getUser()->getGuardUser(), Folder::TYPE_PROJECT);
         if (!empty($folder)) {
             $decision->setFolderId($folder->getId());
         }
         // Create log
         $log = new Log();
         $log->setAction('project_create');
         $log->setUserId($this->getUser()->getGuardUser()->id);
         $log->setInformation(json_encode(array('decision_name' => $request->getParameter('name'), 'decision_type' => $request->getParameter('type_id'), 'decision_template' => $request->getParameter('template_id'))));
         $log->save();
     }
     $decision->setName($request->getParameter('name', ''));
     $decision->setTypeId($request->getParameter('type_id'));
     $decision->setTemplateId($request->getParameter('template_id'));
     $decision->save();
     $this->getUser()->setAttribute('decision_id', $decision->getId(), 'sfGuardSecurityUser');
     return $this->renderText(json_encode(array('status' => 'success', 'dashboard_url' => $this->generateUrl('dashboard', array('decision_id' => $decision->getId())))));
 }
Exemple #2
0
 public function getProjectCreateResponse(sfGuardUser $user)
 {
     /** @var sfWebRequest $request */
     $request = $this->getRequest();
     $decision = new Decision();
     $decision->User = $user;
     $decision->name = $request->getParameter('name', 'New project (API)');
     $decision->objective = $request->getParameter('description', '');
     $decision->type_id = 1;
     $decision->template_id = 1;
     try {
         $decision->save();
         $result = array('status' => 'success', 'result' => $decision->getAPIData());
     } catch (sfException $ex) {
         $result = array('status' => 'error', 'error' => $ex->getMessage());
     }
     return $result;
 }
 /**
  * Test getWinner returns winner
  */
 public function testGetWinner()
 {
     $decision = new Decision($this->getScores());
     $scores = array_flip($this->getScoresTotalled());
     $this->assertEquals(array_shift($scores), $decision->getWinner());
 }
 public function getMeetingAssumptions($meeting_id)
 {
     return $this->model->ForMeeting($meeting_id)->get();
 }
        $errors[] = 'AC_ERROR_INVALID_WEB_SERVICE_ID';
    } else {
        $user_id = $user_row['user_id'];
    }
}
if (!is_array($decisions)) {
    $errors[] = 'AC_ERROR_SEQUENCEID_NOT_GIVEN';
}
// return errors
if (is_array($errors)) {
    if ($output == 'rest') {
        echo RESTWebServiceOutput::generateErrorRpt($errors);
    } else {
        echo HTMLRpt::generateErrorRpt($errors);
    }
    exit;
}
// make decisions
$decision = new Decision($user_id, $uri, $output, $session_id);
if ($decision->hasError()) {
    $decision_error = $decision->getErrorRpt();
    // displays in checker_input_form.tmpl.php
} else {
    // make decsions
    $decision->makeDecisions($decisions);
    if ($output == 'rest') {
        echo RESTWebServiceOutput::generateSuccessRpt();
    } else {
        echo HTMLRpt::generateSuccessRpt();
    }
}
 /**
  * @param PHPPowerPoint_Slide $currentSlide
  * @param Decision $decision
  */
 private function buildSlide(PHPPowerPoint_Slide $currentSlide, Decision $decision)
 {
     // Title
     $shape = $currentSlide->createRichTextShape();
     $shape->setHeight(30);
     $shape->setWidth(600);
     $shape->setOffsetX(180);
     $shape->setOffsetY(50);
     $shape->createText($decision->getName());
     $shape->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER);
     // Other info
     $shape = $currentSlide->createRichTextShape();
     $shape->setHeight(500);
     $shape->setWidth(920);
     $shape->setOffsetX(20);
     $shape->setOffsetY(80);
     $shape->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT);
     $textRun = $shape->createTextRun('Start/End date');
     $textRun->getFont()->setBold(true);
     $shape->createTextRun(': ');
     if ($decision->getStartDate()) {
         $shape->createTextRun(DateTime::createFromFormat('Y-m-d H:i:s', $decision->getStartDate())->format('j M Y'));
     } else {
         $textRun = $shape->createTextRun('not set');
         $textRun->getFont()->setItalic(true);
     }
     $shape->createTextRun(' - ');
     if ($decision->getEndDate()) {
         $shape->createTextRun(DateTime::createFromFormat('Y-m-d H:i:s', $decision->getEndDate())->format('j M Y'));
     } else {
         $textRun = $shape->createTextRun('not set');
         $textRun->getFont()->setItalic(true);
     }
     $shape->createBreak();
     $textRun = $shape->createTextRun('Status');
     $textRun->getFont()->setBold(true);
     $shape->createTextRun(': ' . $decision->getStatus());
     $shape->createBreak();
     $tags = array();
     foreach ($decision->getTagDecision() as $tag_decision) {
         $tags[] = $tag_decision->getTag()->getName();
     }
     $textRun = $shape->createTextRun('Tags');
     $textRun->getFont()->setBold(true);
     $shape->createTextRun(': ' . implode(', ', $tags));
     $shape->createBreak();
     $shape->createBreak();
     $shape->createTextRun(strip_tags($decision->getObjective()));
     if ($this->roadmap->getShowReleases() && count($decision->getProjectRelease())) {
         $shape->createBreak();
         $shape->createBreak();
         $textRun = $shape->createTextRun('Releases');
         $textRun->getFont()->setSize(14);
         $shape->createBreak();
         foreach ($decision->getProjectRelease() as $project_release) {
             /** @var ProjectRelease $project_release */
             $textRun = $shape->createTextRun('    ' . $project_release->getName());
             $textRun->getFont()->setSize(12);
             $shape->createBreak();
             if ($this->roadmap->getShowItems()) {
                 foreach ($project_release->getProjectReleaseAlternative() as $project_release_alternative) {
                     /** @var ProjectReleaseAlternative $project_release_alternative */
                     $shape->createTextRun('        ' . $project_release_alternative->getAlternative()->getName());
                     $shape->createBreak();
                 }
             }
         }
     }
     if ($this->roadmap->getShowDependencies()) {
         $alternative_relations_text = '';
         $alternative_relations = array();
         $related_decisions = array();
         foreach ($decision->getAlternative() as $alternative) {
             /** @var $alternative Alternative */
             if (count($alternative->getAlternativeRelation())) {
                 $alternative_relations[$alternative->getId()]['alternative'] = $alternative;
                 foreach ($alternative->getAlternativeRelation() as $relation) {
                     /** @var $relation AlternativeRelation */
                     $related_decisions[$relation->getAlternativeTo()->getDecisionId()] = $relation->getAlternativeTo()->getDecision()->getName();
                     $alternative_relations[$alternative->getId()]['relations'][$relation->getAlternativeTo()->getDecisionId()]['decision'] = $relation->getAlternativeTo()->getDecision();
                     $alternative_relations[$alternative->getId()]['relations'][$relation->getAlternativeTo()->getDecisionId()]['linked_alternatives'][] = $relation->getAlternativeTo();
                 }
             }
         }
         if (count($alternative_relations)) {
             $shape->createBreak();
             $shape->createTextRun('This project has dependency to project(s) ' . implode(', ', $related_decisions))->getFont()->setBold(true);
             foreach ($alternative_relations as $alternative_relation) {
                 foreach ($alternative_relation['relations'] as $relation) {
                     $temp_linked_alternatives = array();
                     foreach ($relation['linked_alternatives'] as $linked_alternative) {
                         $temp_linked_alternatives[] .= $linked_alternative->getName();
                     }
                     $shape->createBreak();
                     $shape->createTextRun(' - ' . $alternative_relation['alternative']->getName() . " has dependency to " . implode(', ', $temp_linked_alternatives) . " in project " . $relation['decision']->getName());
                 }
             }
         }
     }
 }
Exemple #7
0
include_once AC_INCLUDE_PATH . 'classes/Utility.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/GuidelinesDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/ChecksDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/DAO/UserLinksDAO.class.php';
include_once AC_INCLUDE_PATH . 'classes/Decision.class.php';
global $starttime;
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
// input_form - array in session that contains latest user request (needed for file export)
unset($_SESSION['input_form']);
$guidelinesDAO = new GuidelinesDAO();
// process to make decision
if (isset($_POST['make_decision']) || isset($_POST['reverse'])) {
    $decision = new Decision($_SESSION['user_id'], $_POST['uri'], $_POST['output'], $_POST['jsessionid']);
    if ($decision->hasError()) {
        $decision_error = $decision->getErrorRpt();
        // displays in checker_input_form.tmpl.php
    } else {
        // make decsions
        if (isset($_POST['make_decision'])) {
            $decision->makeDecisions($_POST['d']);
        }
        // reverse decision
        if (isset($_POST['reverse'])) {
            foreach ($_POST['reverse'] as $sequenceID => $garbage) {
                $decision->makeDecisions(array($sequenceID => AC_NO_DECISION));
            }
        }
    }
Exemple #8
0
 /**
  * @param sfWebRequest $request
  * @return sfView
  */
 public function executeImportFromTrello(sfWebRequest $request)
 {
     $this->forward404Unless($request->isXmlHttpRequest());
     if (!DecisionTable::getInstance()->verifyAvailableName($this->getUser()->getGuardUser(), $request->getParameter('board_name'))) {
         return $this->renderText(json_encode(array('status' => 'error', 'message' => 'A project with that name already exists')));
     }
     $decision = new Decision();
     $decision->setName($request->getParameter('board_name'));
     $decision->setUserId($this->getUser()->getGuardUser()->getId());
     $decision->setExternalId($request->getParameter('board_id'));
     $decision->setTypeId(2);
     $type_template = TypeTemplate::getInstance()->createQuery('t')->where('t.user_id is NULL')->andWhere('t.type_id = ?', 2)->andWhere('t.name = ?', 'Default')->fetchOne();
     $decision->setTemplateId($type_template->getId());
     // Default template
     $decision->setFolderId(FolderTable::getInstance()->getNotDeletableForUser($this->getUser()->getGuardUser(), Folder::TYPE_PROJECT)->getId());
     $decision->save();
     $dashboard_role = $decision->getDashboardRole();
     foreach (json_decode($request->getParameter('cards', '{}')) as $card) {
         $alternative = new Alternative();
         $alternative->setName($card->name);
         $alternative->setDecisionId($decision->getId());
         $alternative->setAdditionalInfo($card->desc);
         $alternative->setNotes($card->notes);
         $alternative->setExternalId($card->id);
         $alternative->setCreatedBy($request->getParameter('full_name') . ' (via Trello)');
         $alternative->setUpdatedBy($request->getParameter('full_name') . ' (via Trello)');
         if ($card->due) {
             $date = DateTime::createFromFormat('Y-m-d\\TH:i:s.000Z', $card->due);
             $alternative->setDueDate($date->format('Y-m-d H:i:s'));
             $alternative->setNotifyDate($date->format('Y-m-d H:i:s'));
         }
         $alternative->save();
         foreach ($card->labels as $label) {
             Tag::newTag($this->getUser()->getGuardUser(), $alternative->getId(), $label, 'alternative');
         }
         if ($dashboard_role) {
             foreach ($decision->getCriterion() as $criterion) {
                 $planned_alternative_measurement = new PlannedAlternativeMeasurement();
                 $planned_alternative_measurement->setAlternative($alternative);
                 $planned_alternative_measurement->setCriterion($criterion);
                 $dashboard_role->PlannedAlternativeMeasurement->add($planned_alternative_measurement);
             }
         }
     }
     $dashboard_role->PlannedAlternativeMeasurement->save();
     if ($request->getParameter('wizard')) {
         $user = $this->getUser()->getGuardUser();
         $user->setWizard(false);
         $user->save();
     }
     // Create log
     $log = new Log();
     $log->setAction('project_create');
     $log->setUserId($this->getUser()->getGuardUser()->id);
     $log->setInformation(json_encode(array('decision_name' => $decision->getName(), 'decision_type' => $decision->getTypeId(), 'decision_template' => $decision->getTemplateId(), 'imported' => 'Trello')));
     $log->save();
     return $this->renderText(json_encode(array('status' => 'success', 'dashboard_url' => $this->generateUrl('dashboard', array('decision_id' => $decision->getId())))));
 }