Aude has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/73175


Change subject: editentity aliases only 1 changeop per change type
......................................................................

editentity aliases only 1 changeop per change type

Previously a changeop was created for each alias
given to wbeditentity. As each changeop is a set
each changeop was overwriting the previous changes
Bug: 50983

Change-Id: Iae7d15467c31bbf09f03acd4b069b3a2199a1509
---
M repo/includes/api/EditEntity.php
1 file changed, 11 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/75/73175/1

diff --git a/repo/includes/api/EditEntity.php b/repo/includes/api/EditEntity.php
index 543b042..8425b82 100644
--- a/repo/includes/api/EditEntity.php
+++ b/repo/includes/api/EditEntity.php
@@ -171,7 +171,6 @@
                $this->addLabelsToResult( $entity->getLabels(), 'entity' );
                $this->addDescriptionsToResult( $entity->getDescriptions(), 
'entity' );
                $this->addAliasesToResult( $entity->getAllAliases(), 'entity' );
-
                // TODO: This is a temporary fix that should be handled 
properly with a
                // serializer class that is specific for the given entity
                if ( $entity->getType() === Item::ENTITY_TYPE ) {
@@ -274,6 +273,8 @@
                        }
                }
 
+               $aliasesChanges = array();
+
                foreach ( $indexedAliases as $langCode => $args ) {
                        foreach ( $args as $arg ) {
                                $status->merge( $this->checkMultilangArgs( 
$arg, $langCode ) );
@@ -282,17 +283,23 @@
                                $language = $arg['language'];
 
                                if ( array_key_exists( 'remove', $arg ) ) {
-                                       $aliasesChangeOps[] = new 
ChangeOpAliases( $language, $alias, 'remove' );
+                                       $aliasesChanges['remove'][$language][] 
= $alias;
                                }
                                elseif ( array_key_exists( 'add', $arg ) ) {
-                                       $aliasesChangeOps[] = new 
ChangeOpAliases( $language, $alias, 'add' );
+                                       $aliasesChanges['add'][$language][] = 
$alias;
                                }
                                else {
-                                       $aliasesChangeOps[] = new 
ChangeOpAliases( $language, $alias, 'set' );
+                                       $aliasesChanges['set'][$language][] = 
$alias;
                                }
                        }
                }
 
+               foreach ( $aliasesChanges as $opType => $aliasChange ) {
+                       foreach ( $aliasChange as $language => $aliasArray ) {
+                               $aliasesChangeOps[] = new ChangeOpAliases( 
$language, $aliasArray, $opType );
+                       }
+               }
+
                if ( !$status->isOk() ) {
                        wfProfileOut( __METHOD__ );
                        $this->dieUsage( "Contained status: $1", 
$status->getWikiText() );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iae7d15467c31bbf09f03acd4b069b3a2199a1509
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: mw1.22-wmf9
Gerrit-Owner: Aude <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to