Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(array $form, FormStateInterface $form_state)
 {
     parent::buildForm($form, $form_state);
     $roles = tmgmt_local_translator_roles();
     if (empty($roles)) {
         drupal_set_message(t('No user role has the "provide translation services" permission. <a href="@url">Configure permissions</a> for the Drupal user module.', array('@url' => URL::fromRoute('user.admin_permissions'))), 'warning');
     }
     $form['tuid'] = array('#title' => t('Assign to'), '#type' => 'select', '#empty_option' => t('- Select user -'), '#options' => tmgmt_local_get_assignees_for_tasks([$this->getEntity()->id()]), '#required' => TRUE);
     $form['actions']['#type'] = 'actions';
     $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Assign tasks'));
     return $form;
 }
Пример #2
0
 /**
  * Test assignee skills.
  */
 public function testAssigneeSkillsForTasks()
 {
     $this->addLanguage('fr');
     $assignee1 = $this->drupalCreateUser($this->localTranslatorPermissions);
     $this->drupalLogin($assignee1);
     $edit = array('tmgmt_translation_skills[0][language_from]' => 'en', 'tmgmt_translation_skills[0][language_to]' => 'de');
     $this->drupalPostForm('user/' . $assignee1->id() . '/edit', $edit, t('Save'));
     $assignee2 = $this->drupalCreateUser($this->localTranslatorPermissions);
     $this->drupalLogin($assignee2);
     $edit = array('tmgmt_translation_skills[0][language_from]' => 'en', 'tmgmt_translation_skills[0][language_to]' => 'de');
     $this->drupalPostForm('user/' . $assignee2->id() . '/edit', $edit, t('Save'));
     $edit = array('tmgmt_translation_skills[1][language_from]' => 'de', 'tmgmt_translation_skills[1][language_to]' => 'en');
     $this->drupalPostForm('user/' . $assignee2->id() . '/edit', $edit, t('Save'));
     $assignee3 = $this->drupalCreateUser($this->localTranslatorPermissions);
     $this->drupalLogin($assignee3);
     $edit = array('tmgmt_translation_skills[0][language_from]' => 'en', 'tmgmt_translation_skills[0][language_to]' => 'de');
     $this->drupalPostForm('user/' . $assignee3->id() . '/edit', $edit, t('Save'));
     $edit = array('tmgmt_translation_skills[1][language_from]' => 'de', 'tmgmt_translation_skills[1][language_to]' => 'en');
     $this->drupalPostForm('user/' . $assignee3->id() . '/edit', $edit, t('Save'));
     $edit = array('tmgmt_translation_skills[2][language_from]' => 'en', 'tmgmt_translation_skills[2][language_to]' => 'fr');
     $this->drupalPostForm('user/' . $assignee3->id() . '/edit', $edit, t('Save'));
     $job1 = $this->createJob('en', 'de');
     $job2 = $this->createJob('de', 'en');
     $job3 = $this->createJob('en', 'fr');
     $local_task1 = LocalTask::create(array('uid' => $job1->getOwnerId(), 'tjid' => $job1->id(), 'title' => 'Task 1'));
     $local_task1->save();
     $local_task2 = LocalTask::create(array('uid' => $job2->getOwnerId(), 'tjid' => $job2->id(), 'title' => 'Task 2'));
     $local_task2->save();
     $local_task3 = LocalTask::create(array('uid' => $job3->getOwnerId(), 'tjid' => $job3->id(), 'title' => 'Task 3'));
     $local_task3->save();
     // Test languages involved in tasks.
     $this->assertEqual(tmgmt_local_tasks_languages(array($local_task1->id(), $local_task2->id(), $local_task3->id())), array('en' => array('de', 'fr'), 'de' => array('en')));
     // Test available translators for task en - de.
     $this->assertEqual(tmgmt_local_get_assignees_for_tasks(array($local_task1->id())), array($assignee1->id() => $assignee1->getUsername(), $assignee2->id() => $assignee2->getUsername(), $assignee3->id() => $assignee3->getUsername()));
     // Test available translators for tasks en - de, de - en.
     $this->assertEqual(tmgmt_local_get_assignees_for_tasks(array($local_task1->id(), $local_task2->id())), array($assignee2->id() => $assignee2->getUsername(), $assignee3->id() => $assignee3->getUsername()));
     // Test available translators for tasks en - de, de - en, en - fr.
     $this->assertEqual(tmgmt_local_get_assignees_for_tasks(array($local_task1->id(), $local_task2->id(), $local_task3->id())), array($assignee3->id() => $assignee3->getUsername()));
 }