jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/334321 )

Change subject: BSReview: Added "delegated to" user to assessors #2833
......................................................................


BSReview: Added "delegated to" user to assessors #2833

=> Needs cherry-pick to REL1_27
* Displayed the user, the review step was delegated to in review overview
* Appended the ridiculous getData() query
* Fixed the know bug: "Review Overviews displays empty brackets"

Change-Id: I196c08f636a1f6768785342f369df6141307ae1b
---
M Review/Review.class.php
M Review/includes/api/BSApiReviewOverviewStore.php
M Review/resources/BS.Review/OverviewPanel.js
3 files changed, 51 insertions(+), 7 deletions(-)

Approvals:
  Robert Vogel: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Review/Review.class.php b/Review/Review.class.php
index 8b493e2..17d3cef 100644
--- a/Review/Review.class.php
+++ b/Review/Review.class.php
@@ -453,7 +453,7 @@
                $tbl_page = $dbr->tableName( 'page' );
                $tbl_user = $dbr->tableName( 'user' );
 
-               $sql = 'SELECT  r.rev_id, r.rev_pid, p.page_title, 
p.page_namespace, u.user_name, u.user_real_name, u.user_id, r.rev_editable, 
r.rev_sequential, r.rev_abortable, rs.revs_status, u2.user_name AS owner_name, 
u2.user_real_name AS owner_real_name, ';
+               $sql = 'SELECT  r.rev_id, r.rev_pid, p.page_title, 
p.page_namespace, u.user_name, u.user_real_name, u.user_id, r.rev_editable, 
r.rev_sequential, r.rev_abortable, rs.revs_status, u2.user_name AS owner_name, 
u2.user_real_name AS owner_real_name, rs.revs_delegate_to AS revs_delegate_to, 
';
                switch ( $wgDBtype ) {
                        case 'postgres' : {
                                $sql .= "        EXTRACT(EPOCH FROM 
TO_TIMESTAMP(r.rev_enddate, 'YYYYMMDDHH24MISS')) AS endtimestamp, 
TO_CHAR(TO_DATE(r.rev_startdate, 'YYYYMMDDHH24MISS'), 'DD.MM.YYYY') AS 
startdate, ";
@@ -480,10 +480,10 @@
                        // if( intval($_GET['user']) )
                        if ( $iUserId ) { // <== getParam returns default 
(false) if INT is expected and param is not numeric
                                //$sql.= 'AND (r.owner="'. $_GET['user'] .'" OR 
"'. $_GET['user'] .'" IN (SELECT hrs.user_id FROM hw_review_steps AS hrs WHERE 
hrs.review_id=r.id)) ';
-                               $sql .= 'AND (r.rev_owner=' . $iUserId . ' OR 
EXISTS (SELECT 1 FROM ' . $tbl_step . ' AS hrs WHERE 
hrs.revs_review_id=r.rev_id AND hrs.revs_user_id = ' . $iUserId . ')) ';
+                               $sql .= 'AND (r.rev_owner=' . $iUserId . ' OR 
EXISTS (SELECT 1 FROM ' . $tbl_step . ' AS hrs WHERE 
hrs.revs_review_id=r.rev_id AND (hrs.revs_user_id = ' . $iUserId . ' OR 
hrs.revs_delegate_to = ' . $iUserId . '))) ';
                        }
                } else {
-                       $sql .= 'AND (r.rev_owner=' . $wgUser->mId . ' OR 
EXISTS (SELECT 1 FROM ' . $tbl_step . ' AS hrs WHERE 
hrs.revs_review_id=r.rev_id AND hrs.revs_user_id = ' . $wgUser->mId . ')) ';
+                       $sql .= 'AND (r.rev_owner=' . $wgUser->mId . ' OR 
EXISTS (SELECT 1 FROM ' . $tbl_step . ' AS hrs WHERE 
hrs.revs_review_id=r.rev_id AND (hrs.revs_user_id = ' . $wgUser->mId . ' OR 
hrs.revs_delegate_to = ' . $wgUser->mId . '))) ';
                }
 
                $sql .= 'ORDER BY r.rev_startdate DESC, rs.revs_sort_id';
@@ -515,17 +515,35 @@
                                        $arrList[ $row[ 'rev_id' ] ][ 'total' ] 
= isset( $arrList[ $row[ 'rev_id' ] ][ 'total' ] ) ? $arrList[ $row[ 'rev_id' ] 
][ 'total' ] + 1 : 1;
                                        break;
                        }
+                       $row[ 'revs_delegate_to_real_name' ]
+                               = $row[ 'revs_delegate_to_name' ]
+                               = '';
 
+                       if( !empty( $row[ 'revs_delegate_to' ] ) ) {
+                               $oDelegateUser = User::newFromId(
+                                       (int)$row[ 'revs_delegate_to' ]
+                               );
+                               if( !$oDelegateUser->isAnon() ) {
+                                       $row[ 'revs_delegate_to_name' ] = 
$oDelegateUser->getName();
+                                       $row[ 'revs_delegate_to_real_name' ]
+                                               = empty( 
$oDelegateUser->getRealName() )
+                                               ? $oDelegateUser->getName()
+                                               : $oDelegateUser->getRealName()
+                                       ;
+                               }
+                       }
 
                        $arrList[ $row[ 'rev_id' ] ][ 'assessors' ][] = array(
                                'name' => $row[ 'user_name' ],
                                'real_name' => $row[ 'user_real_name' ],
                                'revs_status' => $row[ 'revs_status' ],
-                               'timestamp' => $row[ 'stepdate' ]
+                               'timestamp' => $row[ 'stepdate' ],
+                               'delegate_to' => $row[ 'revs_delegate_to' ],
+                               'delegate_to_real_name' => $row[ 
'revs_delegate_to_real_name' ],
+                               'delegate_to_name' => $row[ 
'revs_delegate_to_name' ],
                        );
 
                }
-
                return $arrList;
        }
 
diff --git a/Review/includes/api/BSApiReviewOverviewStore.php 
b/Review/includes/api/BSApiReviewOverviewStore.php
index 68aff9f..ae922f3 100644
--- a/Review/includes/api/BSApiReviewOverviewStore.php
+++ b/Review/includes/api/BSApiReviewOverviewStore.php
@@ -174,6 +174,10 @@
                $oAssessor->name = $arrAssessor['name'];
                $oAssessor->real_name = $arrAssessor['real_name'];
                $oAssessor->timestamp = false;
+               $oAssessor->delegate_to = $arrAssessor['delegate_to'];
+               $oAssessor->delegate_to_name = $arrAssessor['delegate_to_name'];
+               $oAssessor->delegate_to_real_name
+                       = $arrAssessor['delegate_to_real_name'];
 
                $bTimestap =
                        $arrAssessor['timestamp'] != '00.00'
diff --git a/Review/resources/BS.Review/OverviewPanel.js 
b/Review/resources/BS.Review/OverviewPanel.js
index e9f3883..56fa018 100644
--- a/Review/resources/BS.Review/OverviewPanel.js
+++ b/Review/resources/BS.Review/OverviewPanel.js
@@ -125,7 +125,7 @@
        renderAssessors: function( value, metaData, record, rowIndex, colIndex, 
store ) {
                var ownerName = mw.config.get('bsSpecialReviewUserName', false);
                var table = '<table cellpadding="5">';
-               var row = '<tr><td>{0}</td><td>{1} ({2})</td></tr>';
+               var row = '<tr><td>{0}</td><td>{1} {2}</td><td>{3}</td></tr>';
                var findActive = true;
                var isSequential = record.get( 'rev_sequential' );
 
@@ -169,6 +169,27 @@
                        if(ownerName && ownerName === line.name) {
                                style = 'font-weight:bold';
                        }
+                       var delegate = false;
+                       if( line.delegate_to && line.delegate_to > 0 ) {
+                               var delegatestyle = '';
+                               var delegatetitle = new mw.Title(
+                                       line.delegate_to_name,
+                                       bs.ns.NS_USER
+                               );
+                               if( ownerName && ownerName === 
line.delegate_to_name ) {
+                                       delegatestyle = 'font-weight:bold';
+                               }
+                               delegate = '=> ' + mw.html.element(
+                                       'a',
+                                       {
+                                               'href': delegatetitle.getUrl(),
+                                               'style': delegatestyle,
+                                               'data-bs-username': 
line.delegate_to_name,
+                                               'data-bs-title': 
delegatetitle.getPrefixedText()
+                                       },
+                                       line.delegate_to_real_name || 
line.delegate_to_name
+                               );
+                       }
 
                        table += row.format(
                                status,
@@ -182,7 +203,8 @@
                                        },
                                        content
                                ),
-                               line.timestamp || ''
+                               line.timestamp ? "(" + line.timestamp + ")" : 
'',
+                               delegate || ''
                        );
                }
                table += '</table>';

-- 
To view, visit https://gerrit.wikimedia.org/r/334321
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I196c08f636a1f6768785342f369df6141307ae1b
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Pwirth <wi...@hallowelt.biz>
Gerrit-Reviewer: Dvogel hallowelt <daniel.vo...@hallowelt.com>
Gerrit-Reviewer: Ljonka <l.verhovs...@gmail.com>
Gerrit-Reviewer: Mglaser <gla...@hallowelt.biz>
Gerrit-Reviewer: Robert Vogel <vo...@hallowelt.biz>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to