@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fixed Task Generation

Summary: Ref T2903

Test Plan: Successfully generated tasks with authors and owners.

Reviewers: epriestley, AnhNhan

Reviewed By: epriestley

CC: aran, Korvin, AnhNhan, chad

Maniphest Tasks: T2903

Differential Revision: https://secure.phabricator.com/D5704

authored by

deedydas and committed by
epriestley
1e2f01ef f302751a

+92 -2
+2
src/__phutil_library_map__.php
··· 1089 1089 'PhabricatorMainMenuSearchView' => 'view/page/menu/PhabricatorMainMenuSearchView.php', 1090 1090 'PhabricatorMainMenuView' => 'view/page/menu/PhabricatorMainMenuView.php', 1091 1091 'PhabricatorManiphestConfigOptions' => 'applications/maniphest/config/PhabricatorManiphestConfigOptions.php', 1092 + 'PhabricatorManiphestTaskTestDataGenerator' => 'applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php', 1092 1093 'PhabricatorMarkupCache' => 'applications/cache/storage/PhabricatorMarkupCache.php', 1093 1094 'PhabricatorMarkupEngine' => 'infrastructure/markup/PhabricatorMarkupEngine.php', 1094 1095 'PhabricatorMarkupInterface' => 'infrastructure/markup/PhabricatorMarkupInterface.php', ··· 2793 2794 'PhabricatorMainMenuSearchView' => 'AphrontView', 2794 2795 'PhabricatorMainMenuView' => 'AphrontView', 2795 2796 'PhabricatorManiphestConfigOptions' => 'PhabricatorApplicationConfigOptions', 2797 + 'PhabricatorManiphestTaskTestDataGenerator' => 'PhabricatorTestDataGenerator', 2796 2798 'PhabricatorMarkupCache' => 'PhabricatorCacheDAO', 2797 2799 'PhabricatorMenuItemView' => 'AphrontTagView', 2798 2800 'PhabricatorMenuView' => 'AphrontTagView',
+10
src/applications/lipsum/generator/PhabricatorTestDataGenerator.php
··· 6 6 return; 7 7 } 8 8 9 + public function loadOneRandom($classname) { 10 + try { 11 + return newv($classname, array()) 12 + ->loadOneWhere("1 = 1 ORDER BY RAND() LIMIT 1"); 13 + } catch (PhutilMissingSymbolException $ex) { 14 + throw new PhutilMissingSymbolException( 15 + "Unable to load symbol ".$classname.": this class does not exit."); 16 + } 17 + } 18 + 9 19 }
+15 -2
src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php
··· 19 19 20 20 public function execute(PhutilArgumentParser $args) { 21 21 $admin = PhabricatorUser::getOmnipotentUser(); 22 - $peoplegen = new PhabricatorPeopleTestDataGenerator(); 23 - $object = $peoplegen->generate(); 22 + // $peoplegen = new PhabricatorPeopleTestDataGenerator(); 23 + // $object = $peoplegen->generate(); 24 + // $handle = PhabricatorObjectHandleData::loadOneHandle($object->getPHID(), 25 + // $admin); 26 + // echo "Generated ".$handle->getFullName()."\n"; 27 + 28 + $taskgen = new PhabricatorManiphestTaskTestDataGenerator(); 29 + $object = $taskgen->generate(); 24 30 $handle = PhabricatorObjectHandleData::loadOneHandle($object->getPHID(), 25 31 $admin); 26 32 echo "Generated ".$handle->getFullName()."\n"; 27 33 echo "\nRequested data has been generated."; 34 + 35 + // $taskgen = new PhabricatorRevisionTestDataGenerator(); 36 + // $object = $taskgen->generate(); 37 + // $handle = PhabricatorObjectHandleData::loadOneHandle($object->getPHID(), 38 + // $admin); 39 + // echo "Generated ".$handle->getFullName()."\n"; 40 + // echo "\nRequested data has been generated."; 28 41 } 29 42 30 43 }
+64
src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php
··· 1 + <?php 2 + 3 + final class PhabricatorManiphestTaskTestDataGenerator 4 + extends PhabricatorTestDataGenerator { 5 + 6 + public function generate() { 7 + return id(new ManiphestTask()) 8 + ->setStatus($this->generateTaskStatus()) 9 + ->setPriority($this->generateTaskPriority()) 10 + ->setSubPriority($this->generateTaskSubPriority()) 11 + ->setAuthorPHID($this->loadAuthorPHID()) 12 + ->setTitle($this->generateTitle()) 13 + ->setDescription($this->generateDescription()) 14 + ->setOwnerPHID($this->loadOwnerPHID()) 15 + ->save(); 16 + } 17 + 18 + private function loadPhabrictorUserPHID() { 19 + return $this->loadOneRandom("PhabricatorUser")->getPHID(); 20 + } 21 + 22 + public function loadAuthorPHID() { 23 + return $this->loadPhabrictorUserPHID(); 24 + } 25 + 26 + public function loadOwnerPHID() { 27 + if (rand(0, 3) == 0) { 28 + return null; 29 + } else { 30 + return $this->loadPhabrictorUserPHID(); 31 + } 32 + } 33 + 34 + public function generateTitle() { 35 + return id(new PhutilLipsumContextFreeGrammar()) 36 + ->generate(); 37 + } 38 + 39 + public function generateDescription() { 40 + return id(new PhutilLipsumContextFreeGrammar()) 41 + ->generateSeveral(rand(30, 40)); 42 + } 43 + 44 + public function generateTaskPriority() { 45 + return array_rand(ManiphestTaskPriority::getTaskPriorityMap()); 46 + } 47 + 48 + public function generateTaskSubPriority() { 49 + return rand(2 << 16, 2 << 32); 50 + } 51 + 52 + public function generateTaskStatus() { 53 + $statuses = array_keys(ManiphestTaskStatus::getTaskStatusMap()); 54 + // Make sure 4/5th of all generated Tasks are open 55 + $random = rand(0, 4); 56 + if ($random != 0) { 57 + return ManiphestTaskStatus::STATUS_OPEN; 58 + } else { 59 + return array_rand($statuses); 60 + } 61 + } 62 + 63 + 64 + }
+1
src/applications/people/lipsum/PhabricatorPeopleTestDataGenerator.php
··· 39 39 protected function generateUsername($random_real_name) { 40 40 $name = strtolower($random_real_name); 41 41 $name = preg_replace('/[^a-z]/s' , ' ', $name); 42 + $name = preg_replace('/\s+/', ' ', $name); 42 43 $words = explode(" ", $name); 43 44 $random = rand(0, 4); 44 45 $reduced = "";