jenkins-bot has submitted this change and it was merged.
Change subject: Algorithm for prioritizing projects
......................................................................
Algorithm for prioritizing projects
While displaying in main page we display
active projects first
Change-Id: I480cf26c76c61dc5ab426352db774bfd213f62c1
---
M MainPage/ProjectHandler.php
M MainPage/specials/SpecialTwnMainPage.php
2 files changed, 31 insertions(+), 0 deletions(-)
Approvals:
Santhosh: Verified; Looks good to me, approved
jenkins-bot: Verified
diff --git a/MainPage/ProjectHandler.php b/MainPage/ProjectHandler.php
index 5969596..b5c3163 100644
--- a/MainPage/ProjectHandler.php
+++ b/MainPage/ProjectHandler.php
@@ -26,6 +26,35 @@
return $projects;
}
+ /**
+ * Sort the projects by to be determined algorithm. Like most sorting
+ * functions in PHP this modifies passed list in place.
+ * @param MessageGroup[] $groups
+ * @param string $language Language code.
+ */
+ public static function sortByPriority( &$groups, $language ) {
+ foreach ( $groups as $index => $g ) {
+ $supported = $g->getTranslatableLanguages();
+ if ( is_array( $supported ) && !isset(
$supported[$language] ) ) {
+ unset( $groups[$index] );
+ }
+ }
+
+ usort( $groups, function ( $a, $b ) use ( $language ) {
+ $aStats = MessageGroupStats::forItem( $a->getId(),
$language );
+ $bStats = MessageGroupStats::forItem( $b->getId(),
$language );
+
+ $aVal = $aStats[MessageGroupStats::PROOFREAD];
+ $bVal = $aStats[MessageGroupStats::PROOFREAD];
+
+ if ( $aVal === $bVal ) {
+ return 0;
+ } else {
+ return ($aVal > $bVal) ? -1 : 1;
+ }
+ } );
+ }
+
// @todo FIXME: This is duplicate code Translate -
ApiQueryMessageGroup. We can avoid
// duplication if we make getIcon of that API public static.
public static function getIcon( MessageGroup $g, $size ) {
diff --git a/MainPage/specials/SpecialTwnMainPage.php
b/MainPage/specials/SpecialTwnMainPage.php
index 34c8873..7074a8b 100644
--- a/MainPage/specials/SpecialTwnMainPage.php
+++ b/MainPage/specials/SpecialTwnMainPage.php
@@ -95,6 +95,8 @@
$out .= Html::openElement( 'div', array( 'class' => 'row
twn-mainpage-project-tiles' ) );
$projects = ProjectHandler::getProjects();
+ ProjectHandler::sortByPriority( $projects,
$this->getLanguage()->getCode() );
+
foreach ( $projects as $group ) {
$urls = ProjectHandler::getIcon( $group, 100 );
if ( isset( $urls['vector'] ) ) {
--
To view, visit https://gerrit.wikimedia.org/r/56132
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I480cf26c76c61dc5ab426352db774bfd213f62c1
Gerrit-PatchSet: 3
Gerrit-Project: translatewiki
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>
Gerrit-Reviewer: Santhosh <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits