protected function execute(InputInterface $input, OutputInterface $output) { /** * @var EntityManager $em */ $em = (new OrmProvider())->getEntityManager(); /** * @var GroupRepository $groupRepository */ $groupRepository = $em->getRepository('LW\\Model\\Entity\\Group'); $dict = new Dictionary(); $users['director'] = $this->generateUser('ivanov_vu', 'ivanov_vu@test', 'ivanov_vu', $dict->userRoles()->ROLE_BOSS[0], 'Иванов', 'Василий', 'Юрьевич', 'Директор'); $users['department_chief'] = $this->generateUser('vasiliev_va', 'vasiliev_va@test', 'vasiliev_va', $dict->userRoles()->ROLE_BOSS[0], 'Васильев', 'Владимир', 'Алексеевич', 'Начальник отдела рекламы'); $users['designer'] = $this->generateUser('rasstrelnikov_sv', 'rasstrelnikov_sv@test', 'rasstrelnikov_sv', $dict->userRoles()->ROLE_WORKER[0], 'Расстрельников', 'Сергей', 'Викторович', 'Дизайнер'); $users['copywriter'] = $this->generateUser('tverskaya_aa', 'tverskaya_aa@test', 'tverskaya_aa', $dict->userRoles()->ROLE_WORKER[0], 'Тверская', 'Алена', 'Александровна', 'Копирайтер'); $users['system_administrator'] = $this->generateUser('admin', 'kolelov_in@test', '_admin_', $dict->userRoles()->ROLE_WORKER[0], 'Колелов', 'Иван', 'Николаевич', 'Системный администратор'); $groups['organisation'] = $this->generateGroup('ООО Наша фирма'); $groups['chief'] = $this->generateGroup('Директор'); $groups['department_advertising'] = $this->generateGroup('Отдел рекламы'); $groups['chief_department'] = $this->generateGroup('Начальник отдела'); $groups['worker_department'] = $this->generateGroup('Работники'); foreach ($users as $user) { $em->persist($user); } foreach ($groups as $group) { $group->setInnerOrder($groupRepository->getNextNumberByOwner(0)); $em->persist($group); } $em->flush(); $request = new Request(); $router = new Router($request); $manager = new Manager($em, $router); $manager->addUsersToGroup($groups['chief']->getId(), array($users['director']->getId())); $manager->addUsersToGroup($groups['chief_department']->getId(), array($users['department_chief']->getId())); $manager->addUsersToGroup($groups['worker_department']->getId(), array($users['copywriter']->getId(), $users['designer']->getId())); $manager->moveNode($groups['chief']->getId(), $groups['organisation']->getId(), 1); $manager->moveNode($groups['department_advertising']->getId(), $groups['chief']->getId(), 1); $manager->moveNode($groups['chief_department']->getId(), $groups['department_advertising']->getId(), 1); $manager->moveNode($groups['worker_department']->getId(), $groups['chief_department']->getId(), 1); $output->writeln('Successful!'); }
public function moveAction() { $formProvider = new FormProvider(); $url = $this->router->getUrlByRoute('admin_group_move', array(), false); $form = $formProvider->getGroupMoveForm($url); $form->writeFromRequest($this->request); $this->response->prepareForJson(); $returnedValue = $this->createReturnedArray('move'); $manager = new Manager($this->dataProvider->getEntityManager(), $this->router); if ($form->isValid()) { $moveNodes = json_decode($form->getField('moves_data')->getValue()); foreach ($moveNodes as $moveNode) { $manager->moveNode($moveNode->node, $moveNode->owner, $moveNode->position); } } else { $entityMoved = $manager->getGroup($form->get('movedId')->getData()); $returnedValue['status'] = 'failed'; $returnedValue['view'] = sprintf('Перемещение группы <b>%s</b> не было сохранено', $entityMoved->getName()); } return $this->acceptSolutionFlushToResponse(json_encode($returnedValue)); }