/** * @EXT\Route( * "/note_type/edit", * name="claroline_edit_note_type" * ) * @EXT\Method("POST") * * @param Request $request * * @return JsonResponse */ public function editNoteTypeAction(Request $request) { $this->assertIsAuthenticated(); $response = new JsonResponse(); $noteType = $request->request->get('noteType', false); if ($noteType) { if (array_key_exists('id', $noteType) && !empty($noteType['id'])) { $response->setData('Function not implemented yet'); $response->setStatusCode(422); } else { $newNoteType = new NoteType(); $newNoteType->setName($noteType['name']); foreach ($noteType['field_labels'] as $field) { $f = new FieldLabel(); $f->setName($field['name']); $f->setNoteType($newNoteType); $newNoteType->addFieldLabel($f); } foreach ($noteType['card_types'] as $cardType) { $newCardType = new cardType(); $newCardType->setNoteType($newNoteType); $newCardType->setName($cardType['name']); foreach ($cardType['questions'] as $question) { $newCardType->addQuestion($newNoteType->getFieldLabelFromName($question['name'])); } foreach ($cardType['answers'] as $answer) { $newCardType->addAnswer($newNoteType->getFieldLabelFromName($answer['name'])); } $newNoteType->addCardType($newCardType); } if ($newNoteType->isValid()) { $newNoteType = $this->manager->create($newNoteType); $response->setData($newNoteType->getId()); } else { $response->setData('NoteType is not valid'); $response->setStatusCode(422); } } } else { $response->setData('Field "noteType" is missing'); $response->setStatusCode(422); } return $response; }
/** * {@inheritdoc} */ public function load(ObjectManager $om) { $noteType = new NoteType(); $noteType->setName('Basic'); $om->persist($noteType); $frontField = new FieldLabel(); $frontField->setName('Front'); $frontField->setNoteType($noteType); $om->persist($frontField); $backField = new FieldLabel(); $backField->setName('Back'); $backField->setNoteType($noteType); $om->persist($backField); $cardType = new CardType(); $cardType->setName('Forward'); $cardType->setNoteType($noteType); $cardType->addQuestion($frontField); $cardType->addAnswer($backField); $om->persist($cardType); $om->flush(); }