Avoid master queries on deletion form view
authorAaron Schulz <aschulz@wikimedia.org>
Thu, 24 Mar 2016 20:53:55 +0000 (13:53 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Thu, 24 Mar 2016 20:53:55 +0000 (13:53 -0700)
Bug: T92357
Change-Id: I9c785e8e541f0e4fb7fa0f11cab2d33c26f7fb3a

includes/page/Article.php

index d57d3fd..7592017 100644 (file)
@@ -1644,6 +1644,7 @@ class Article implements Page {
                $title = $this->getTitle();
                $context = $this->getContext();
                $user = $context->getUser();
                $title = $this->getTitle();
                $context = $this->getContext();
                $user = $context->getUser();
+               $request = $context->getRequest();
 
                # Check permissions
                $permissionErrors = $title->getUserPermissionsErrors( 'delete', $user );
 
                # Check permissions
                $permissionErrors = $title->getUserPermissionsErrors( 'delete', $user );
@@ -1657,7 +1658,9 @@ class Article implements Page {
                }
 
                # Better double-check that it hasn't been deleted yet!
                }
 
                # Better double-check that it hasn't been deleted yet!
-               $this->mPage->loadPageData( 'fromdbmaster' );
+               $this->mPage->loadPageData(
+                       $request->wasPosted() ? WikiPage::READ_LATEST : WikiPage::READ_NORMAL
+               );
                if ( !$this->mPage->exists() ) {
                        $deleteLogPage = new LogPage( 'delete' );
                        $outputPage = $context->getOutput();
                if ( !$this->mPage->exists() ) {
                        $deleteLogPage = new LogPage( 'delete' );
                        $outputPage = $context->getOutput();
@@ -1677,7 +1680,6 @@ class Article implements Page {
                        return;
                }
 
                        return;
                }
 
-               $request = $context->getRequest();
                $deleteReasonList = $request->getText( 'wpDeleteReasonList', 'other' );
                $deleteReason = $request->getText( 'wpReason' );
 
                $deleteReasonList = $request->getText( 'wpDeleteReasonList', 'other' );
                $deleteReason = $request->getText( 'wpReason' );