/**
  * @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();
 }