/** * Edit (or add) database page */ public function assignLibrarianAction() { $category_id = $this->request->requireParam('category', 'Request did not include category id'); $librarian_id = $this->request->requireParam('librarian', 'Request did not include subcategory id'); $category = $this->knowledgebase->getCategoryById($category_id); $librarian = $this->knowledgebase->getLibrarian($librarian_id); $librarian_sequence = new LibrarianSequence(); $librarian_sequence->setLibrarian($librarian); $category->addLibrarianSequence($librarian_sequence); $this->knowledgebase->update($category); $params = array('controller' => $this->request->getParam('controller'), 'action' => 'subject', 'id' => $category_id); return $this->redirectTo($params); }
/** * @param Subcategory $subcategory */ public function addLibrarianSequence(LibrarianSequence $sequence) { // check to make sure the librarian isn't already assigned foreach ($this->librarian_sequences as $librarian_sequence) { if ($librarian_sequence->getLibrarian()->getId() == $sequence->getLibrarian()->getId()) { return null; // don't add it } } $sequence->setCategory($this); $sequence->setOwner($this->owner); $this->librarian_sequences[] = $sequence; }