public function getListJSON(TypeTemplate $template) { /** @var CriteriaTemplate[] $templates */ $templates = $this->createQuery('ct')->where('ct.template_id = ?', $template->id)->execute(); $result = array(); foreach ($templates as $template) { $result[] = $template->getRowData(); } return json_encode($result); }
/** * @param sfWebRequest $request * @return sfView */ public function executeTemplateNew(sfWebRequest $request) { $this->forward404Unless($request->isXmlHttpRequest()); $typeTemplate = new TypeTemplate(); $typeTemplate->type_id = 1; // Generic $typeTemplate->user_id = $this->getUser()->getGuardUser()->getId(); $typeTemplate->save(); $form = new TypeTemplateForm($typeTemplate); $collection_json = CriteriaTemplateTable::getInstance()->getListJSON($typeTemplate); return $this->renderPartial('template_form', array('form' => $form, 'collection_json' => $collection_json)); }
/** * @param sfWebRequest $request */ public function executeDecisionSave(sfWebRequest $request) { $decision_id = $this->getUser()->getAttribute('decision_id', null, 'sfGuardSecurityUser'); if ($decision_id) { $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id); $this->forward404Unless(is_object($decision)); } else { $decision = new Decision(); $decision->type_id = 2; // Product development $type_template = TypeTemplate::getInstance()->createQuery('t')->where('t.user_id is NULL')->andWhere('t.type_id = ?', 2)->andWhere('t.name = ?', 'Default')->execute(); $decision->template_id = $type_template[0]->getId(); // Default template $folder = Folder::getInstance()->createQuery('t')->where('t.user_id = ?', $this->getUser()->getGuardUser()->id)->andWhere('t.deletable = ?', 0)->execute(); if (!empty($folder)) { $decision->setFolderId($folder[0]->getId()); } } $decision->name = $request->getParameter('name'); if ($decision->name == '') { $decision->name = 'New project'; } $decision->save(); $this->getUser()->setAttribute('decision_id', $decision->id, 'sfGuardSecurityUser'); $this->redirect('@wizard\\alternatives?decision_id=' . $decision->id); }
/** * @param sfGuardUser $user */ public function load(sfGuardUser $user) { $data = $this->yml->loadData($this->data_path); $folder = $this->createFolder(); foreach ($data as $decision) { $this->createDecision($decision); $type_template = TypeTemplate::getInstance()->createQuery('t')->where('t.user_id is NULL')->andWhere('t.type_id = ?', $this->decision->type_id)->andWhere('t.name = ?', 'Default')->execute(); $this->decision->template_id = $type_template[0]->getId(); // Default template $this->decision->setAssignedTo($user); $this->decision->setFolder($folder); $user->Decisions->add($this->decision); $user->DecisionGroups->add($folder); } }
/** * @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()))))); }