diff --git a/typo3/sysext/core/Classes/DataHandling/DataHandler.php b/typo3/sysext/core/Classes/DataHandling/DataHandler.php index b4a871a13591ea5cf6b24fc359a5310485ebc79e..4d1872724fa4133abe225dd7d58568ff2b27a16d 100644 --- a/typo3/sysext/core/Classes/DataHandling/DataHandler.php +++ b/typo3/sysext/core/Classes/DataHandling/DataHandler.php @@ -3880,6 +3880,17 @@ class DataHandler implements LoggerAwareInterface ) ); + // Never copy the actual move placeholders around, as the newly copied records are + // Always created as new record / new placeholder pairs + if (BackendUtility::isTableWorkspaceEnabled($table)) { + $queryBuilder->andWhere( + $queryBuilder->expr()->notIn( + 't3ver_state', + [VersionState::MOVE_PLACEHOLDER, VersionState::DELETE_PLACEHOLDER] + ) + ); + } + // If $destPid is < 0, get the pid of the record with uid equal to abs($destPid) $tscPID = BackendUtility::getTSconfig_pidValue($table, $uid, $destPid); // Get the localized records to be copied diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/AbstractActionTestCase.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/AbstractActionTestCase.php index b3d82c34e213570b39de51c4b4042d66ab3126b0..35bd6a691d3046c3351dabda38ee063062c7d6dd 100644 --- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/AbstractActionTestCase.php +++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/AbstractActionTestCase.php @@ -237,7 +237,8 @@ abstract class AbstractActionTestCase extends \TYPO3\CMS\Core\Tests\Functional\D */ public function changeContentSortingAndCopyDraftPage() { - $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, -self::VALUE_ContentIdSecond); + $newTableIds = $this->actionService->moveRecord(self::TABLE_Content, self::VALUE_ContentIdFirst, -self::VALUE_ContentIdSecond); + $this->recordIds['newContentId'] = $newTableIds[self::TABLE_Content][0]; $newTableIds = $this->actionService->copyRecord(self::TABLE_Page, self::VALUE_PageId, self::VALUE_PageIdTarget); $this->recordIds['copiedPageId'] = $newTableIds[self::TABLE_Page][self::VALUE_PageId]; } diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Modify/DataSet/changeContentSortingAndCopyDraftPage.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Modify/DataSet/changeContentSortingAndCopyDraftPage.csv index 6b6deec3765004b26c11ed75d7a72e3895d76c36..0dd6f93d8e46aa7a843cb2fdc73597817bb655b9 100644 --- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Modify/DataSet/changeContentSortingAndCopyDraftPage.csv +++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Modify/DataSet/changeContentSortingAndCopyDraftPage.csv @@ -26,6 +26,7 @@ ,325,89,448,0,2,321,301,302,1,4,0,302,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" ,326,89,544,0,2,297,0,0,1,3,0,0,302,"[MOVE-TO PLACEHOLDER for #302, WS#1]" ,327,91,256,0,0,0,0,299,1,1,0,0,0,"Regular Element #3" +# @todo: Sorting is not correct here: should be Element 2 then Element 1 then Element 3 ,328,91,256,0,0,0,0,299,1,-1,0,327,0,"Regular Element #3" ,329,91,128,0,1,327,327,300,1,1,0,0,0,"[Translate to Dansk:] Regular Element #3" ,330,91,128,0,1,327,327,300,1,-1,0,329,0,"[Translate to Dansk:] Regular Element #3" @@ -35,12 +36,8 @@ ,334,91,32,0,0,0,0,297,1,-1,0,333,0,"Regular Element #1" ,335,91,16,0,1,333,333,301,1,1,0,0,0,"[Translate to Dansk:] Regular Element #1" ,336,91,16,0,1,333,333,301,1,-1,0,335,0,"[Translate to Dansk:] Regular Element #1" -,337,91,8,0,1,333,333,324,1,1,0,0,0,"[Translate to Dansk:] Regular Element #1" -,338,91,8,0,1,333,333,324,1,-1,0,337,0,"[Translate to Dansk:] Regular Element #1" -,339,91,4,0,2,333,335,302,1,1,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" -,340,91,4,0,2,333,335,302,1,-1,0,339,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" -,341,91,2,0,2,333,333,326,1,1,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" -,342,91,2,0,2,333,333,326,1,-1,0,341,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +,337,91,8,0,2,333,335,302,1,1,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +,338,91,8,0,2,333,335,302,1,-1,0,337,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" "sys_refindex",,,,,,,,,,,,,, ,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,, ,"25426f92d44dd2ccf416108462b446e3","sys_workspace",1,"custom_stages",0,0,0,"sys_workspace_stage",1,,,,, @@ -51,5 +48,3 @@ ,"893ed65ba064539a74c6c86b2dd3a9ed","tt_content",330,"l18n_parent",0,0,1,"tt_content",327,,,,, ,"7d48ba6e36389495b8eb362a9f8f8d78","tt_content",336,"l18n_parent",0,0,1,"tt_content",333,,,,, ,"3f864e649c25f88940bd245f6895b5cf","tt_content",338,"l18n_parent",0,0,1,"tt_content",333,,,,, -,"23f10bd36507a7b73454ccc0c18e2b51","tt_content",340,"l18n_parent",0,0,1,"tt_content",333,,,,, -,"3c2f50596b3c6b13d5d36b22223357fd","tt_content",342,"l18n_parent",0,0,1,"tt_content",333,,,,, diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/ActionTest.php b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/ActionTest.php index 29cf28f17e3d4ec4ede49093ab6e17148512985b..b56a07cfe341dc5bea64ac0b7235c27022a4eed5 100644 --- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/ActionTest.php +++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/ActionTest.php @@ -568,6 +568,19 @@ class ActionTest extends AbstractActionTestCase ->setTable(self::TABLE_Page)->setField('title')->setValues('Target', 'Testing #1', 'DataHandlerTest')); } + /** + * @test + * @group not-postgres + * @group not-mssql + * @todo Analyze PostgreSQL issues further, which is a generic issue + */ + public function changeContentSortingAndCopyDraftPage() + { + parent::changeContentSortingAndCopyDraftPage(); + $this->actionService->publishRecord(self::TABLE_Content, self::VALUE_ContentIdFirst); + $this->assertAssertionDataSet('changeContentSortingAndCopyDraftPage'); + } + /** * @test */ diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/DataSet/changeContentSortingAndCopyDraftPage.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/DataSet/changeContentSortingAndCopyDraftPage.csv new file mode 100644 index 0000000000000000000000000000000000000000..5ffa7da31865bc7b904734155b613546f3aafc6e --- /dev/null +++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/Publish/DataSet/changeContentSortingAndCopyDraftPage.csv @@ -0,0 +1,48 @@ +"pages",,,,,,,,,,,,,, +,"uid","pid","sorting","deleted","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","title",,, +,1,0,256,0,0,0,0,0,0,0,"FunctionalTest",,, +,88,1,256,0,0,0,0,0,0,0,"DataHandlerTest",,, +,89,88,256,0,0,0,0,0,0,0,"Relations",,, +,90,88,512,0,0,0,0,0,0,0,"Target",,, +,91,90,256,0,89,1,1,0,0,0,"Relations",,, +,92,90,256,0,89,1,-1,0,91,0,"Relations",,, +"tt_content",,,,,,,,,,,,,, +,"uid","pid","sorting","deleted","sys_language_uid","l18n_parent","l10n_source","t3_origuid","t3ver_wsid","t3ver_state","t3ver_stage","t3ver_oid","t3ver_move_id","header" +,296,88,256,0,0,0,0,0,0,0,0,0,0,"Regular Element #0" +,297,89,640,0,0,0,0,297,0,0,0,0,0,"Regular Element #1" +,298,89,512,0,0,0,0,0,0,0,0,0,0,"Regular Element #2" +,299,89,768,0,0,0,0,0,0,0,0,0,0,"Regular Element #3" +,300,89,1024,0,1,299,299,299,0,0,0,0,0,"[Translate to Dansk:] Regular Element #3" +,301,89,384,0,1,297,297,297,0,0,0,0,0,"[Translate to Dansk:] Regular Element #1" +,302,89,448,0,2,297,301,301,0,0,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +,310,90,256,0,0,0,0,0,0,0,0,0,0,"Regular Element #10" +,311,90,512,0,1,0,310,310,0,0,0,0,0,"[Translate to Dansk:] Regular Element #10" +,312,90,768,0,2,0,311,311,0,0,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #10" +,320,89,512,0,0,0,0,298,2,2,0,298,0,"Regular Element #2" +,323,89,384,0,1,321,297,301,1,4,0,301,0,"[Translate to Dansk:] Regular Element #1" +,324,89,576,0,1,297,0,0,1,3,0,0,301,"[MOVE-TO PLACEHOLDER for #301, WS#1]" +,325,89,448,0,2,321,301,302,1,4,0,302,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +,326,89,544,0,2,297,0,0,1,3,0,0,302,"[MOVE-TO PLACEHOLDER for #302, WS#1]" +,327,91,256,0,0,0,0,299,1,1,0,0,0,"Regular Element #3" +# @todo: Sorting is not correct here: should be Element 2 then Element 1 then Element 3 +,328,91,256,0,0,0,0,299,1,-1,0,327,0,"Regular Element #3" +,329,91,128,0,1,327,327,300,1,1,0,0,0,"[Translate to Dansk:] Regular Element #3" +,330,91,128,0,1,327,327,300,1,-1,0,329,0,"[Translate to Dansk:] Regular Element #3" +,331,91,64,0,0,0,0,298,1,1,0,0,0,"Regular Element #2" +,332,91,64,0,0,0,0,298,1,-1,0,331,0,"Regular Element #2" +,333,91,32,0,0,0,0,297,1,1,0,0,0,"Regular Element #1" +,334,91,32,0,0,0,0,297,1,-1,0,333,0,"Regular Element #1" +,335,91,16,0,1,333,333,301,1,1,0,0,0,"[Translate to Dansk:] Regular Element #1" +,336,91,16,0,1,333,333,301,1,-1,0,335,0,"[Translate to Dansk:] Regular Element #1" +,337,91,8,0,2,333,335,302,1,1,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +,338,91,8,0,2,333,335,302,1,-1,0,337,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +"sys_refindex",,,,,,,,,,,,,, +,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,, +,"25426f92d44dd2ccf416108462b446e3","sys_workspace",1,"custom_stages",0,0,0,"sys_workspace_stage",1,,,,, +,"01a3ce8c4e3b2bb1aa439dc29081f996","sys_workspace_stage",1,"responsible_persons",0,0,0,"be_users",3,,,,, +,"1b70a8e25c22645f7a49a79f57f3cf3f","sys_category",31,"parent",0,0,0,"sys_category",28,,,,, +,"cd92ab3ab5798dc139f98107e7c28cb7","tt_content",323,"l18n_parent",0,0,1,"tt_content",321,,,,, +,"1c8013278ae997181374e3c76322e114","tt_content",325,"l18n_parent",0,0,1,"tt_content",321,,,,, +,"893ed65ba064539a74c6c86b2dd3a9ed","tt_content",330,"l18n_parent",0,0,1,"tt_content",327,,,,, +,"7d48ba6e36389495b8eb362a9f8f8d78","tt_content",336,"l18n_parent",0,0,1,"tt_content",333,,,,, +,"3f864e649c25f88940bd245f6895b5cf","tt_content",338,"l18n_parent",0,0,1,"tt_content",333,,,,, diff --git a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/PublishAll/DataSet/changeContentSortingAndCopyDraftPage.csv b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/PublishAll/DataSet/changeContentSortingAndCopyDraftPage.csv index de2a1a93fcb4ea3da8d505e3ffb2227b5aa3707b..07a002bf6c31a22f018e815ecbf3e9885ebf0bbb 100644 --- a/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/PublishAll/DataSet/changeContentSortingAndCopyDraftPage.csv +++ b/typo3/sysext/workspaces/Tests/Functional/DataHandling/Regular/PublishAll/DataSet/changeContentSortingAndCopyDraftPage.csv @@ -18,14 +18,13 @@ ,311,90,512,0,1,0,310,310,0,0,0,0,0,"[Translate to Dansk:] Regular Element #10" ,312,90,768,0,2,0,311,311,0,0,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #10" ,320,89,512,0,0,0,0,298,2,2,0,298,0,"Regular Element #2" +# @todo: Sorting is not correct here: should be Element 2 then Element 1 then Element 3 ,327,91,256,0,0,0,0,299,0,0,0,0,0,"Regular Element #3" ,329,91,128,0,1,327,327,300,0,0,0,0,0,"[Translate to Dansk:] Regular Element #3" ,331,91,64,0,0,0,0,298,0,0,0,0,0,"Regular Element #2" ,333,91,32,0,0,0,0,297,0,0,0,0,0,"Regular Element #1" ,335,91,16,0,1,333,333,301,0,0,0,0,0,"[Translate to Dansk:] Regular Element #1" -,337,91,8,0,1,333,333,324,0,0,0,0,0,"[Translate to Dansk:] Regular Element #1" -,339,91,4,0,2,333,335,302,0,0,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" -,341,91,2,0,2,333,333,326,0,0,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" +,337,91,8,0,2,333,335,302,0,0,0,0,0,"[Translate to Deutsch:] [Translate to Dansk:] Regular Element #1" "sys_refindex",,,,,,,,,,,,,, ,"hash","tablename","recuid","field","sorting","deleted","workspace","ref_table","ref_uid",,,,, ,"25426f92d44dd2ccf416108462b446e3","sys_workspace",1,"custom_stages",0,0,0,"sys_workspace_stage",1,,,,, @@ -34,7 +33,5 @@ ,"691bd3ea92e56cae98fbcd3320abab16","tt_content",329,"l18n_parent",0,0,0,"tt_content",327,,,,, ,"29336c6601631206b91ab727e3afd3ab","tt_content",335,"l18n_parent",0,0,0,"tt_content",333,,,,, ,"06ef094e3198da6562845ccf7264c617","tt_content",337,"l18n_parent",0,0,0,"tt_content",333,,,,, -,"89e509472052635bae64551256ad2719","tt_content",339,"l18n_parent",0,0,0,"tt_content",333,,,,, -,"2d556167d00accc4b89015a39314dc08","tt_content",341,"l18n_parent",0,0,0,"tt_content",333,,,,, ,"eb360eb09940bbb656509c7f6fda9b05","tt_content",301,"l18n_parent",0,0,0,"tt_content",297,,,,, ,"b6e55a3d99888c9a7007226ad685306c","tt_content",302,"l18n_parent",0,0,0,"tt_content",297,,,,,