public function create() { $validator = new Planning_RequestValidator($this->planning_factory); if ($validator->isValid($this->request)) { $this->planning_factory->createPlanning($this->group_id, PlanningParameters::fromArray($this->request->get('planning'))); $this->redirect(array('group_id' => $this->group_id)); } else { // TODO: Error message should reflect validation detail $this->addFeedback('error', $GLOBALS['Language']->getText('plugin_agiledashboard', 'planning_all_fields_mandatory')); $this->redirect(array('group_id' => $this->group_id, 'action' => 'new')); } }
public function import() { $this->checkUserIsAdmin(); $xml = $this->request->get('xml_content')->agiledashboard; $xml_validator = new XML_RNGValidator(); $rng_path = realpath(AGILEDASHBOARD_BASE_DIR . '/../www/resources/xml_project_agiledashboard.rng'); $xml_validator->validate($xml, $rng_path); $xml_importer = new AgileDashboard_XMLImporter(); $data = $xml_importer->toArray($xml, $this->request->get('mapping')); $validator = new Planning_RequestValidator($this->planning_factory, $this->kanban_factory); foreach ($data['plannings'] as $planning) { $request_params = array('planning' => $planning, 'group_id' => $this->group_id, 'planning_id' => ''); $request = new Codendi_Request($request_params); if ($validator->isValid($request)) { $this->planning_factory->createPlanning($this->group_id, PlanningParameters::fromArray($planning)); } else { throw new Exception('Planning is not valid: ' . print_r($planning, true)); } } }