Exemplo n.º 1
0
 public function getTaskEditForm($action)
 {
     $form = new Form('task_edit_form', $action);
     $dictionary = new Dictionary();
     $form->addField((new FieldText('theme', 'Тема'))->addRule(new NotEmpty()))->addField((new FieldTextArea('body', 'Задание'))->addRule(new NotEmpty()))->addField(new FieldTextArea('users', ''))->addField((new FieldTextArea('users_widget', 'Исполнители', array('readonly' => true)))->addRule(new NotEmpty()))->addField(new FieldDateTime('dateLimit', 'Крайний срок'))->addField(new FieldDropDawnList('hardLevel', 'Сложность', $dictionary->taskLevels()->getList()))->addField(new FieldDropDawnList('speedLevel', 'Срочность', $dictionary->taskSpeeds()->getList()))->addField(new FieldSubmit('submit', 'Сохранить', array(), 'Сохранить'));
     return $form;
 }
 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!');
 }
Exemplo n.º 3
0
 public function buildModel()
 {
     $dictonary = new Dictionary();
     $roles = $dictonary->taskRoles();
     $states = $dictonary->taskStates();
     $model = array($roles->CREATOR[0] => array($states->CREATED[0] => array($states->CANCELED[0]), $states->ON_REVIEW[0] => array($states->CANCELED[0], $states->RETURNED[0], $states->COMPLETED[0])), $roles->EXECUTOR[0] => array($states->CREATED[0] => array($states->RUNNING[0]), $states->RUNNING[0] => array($states->ON_REVIEW[0]), $states->RETURNED[0] => array($states->RUNNING[0])));
     return $model;
 }
 private function buildControlsModel($roles, Dictionary $dictionary, Task $task, TaskManager $manager)
 {
     $buttons = array();
     if (in_array($dictionary->taskRoles()->CREATOR[0], $roles)) {
         $url = $this->router->getUrlByRoute('task_edit', array('id' => $task->getId()), false);
         $buttons[] = array('caption' => 'Править', 'url' => $url);
     }
     $states = $dictionary->taskStates();
     $statesList = $states->getList();
     $statesList[$states->COMPLETED[0]] = 'Завершить задвчу';
     $statesList[$states->ON_REVIEW[0]] = 'Отправить на рассмотрение';
     $statesList[$states->CANCELED[0]] = 'Отменить';
     $statesList[$states->RETURNED[0]] = 'Вернуть на доработку';
     $statesList[$states->RUNNING[0]] = 'Начать выполнение';
     $model = $manager->buildModel();
     foreach ($roles as $role) {
         if (!array_key_exists($role, $model)) {
             continue;
         }
         if (!array_key_exists($task->getState(), $model[$role])) {
             continue;
         }
         foreach ($model[$role][$task->getState()] as $rule) {
             $url = $this->router->getUrlByRoute('task_change_state', array('id' => $task->getId(), 'state' => $rule), false);
             $buttons[] = array('caption' => $statesList[$rule], 'url' => $url);
         }
     }
     return $buttons;
 }