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