Making WordPress.org


Ignore:
Timestamp:
03/24/2019 05:14:26 PM (6 years ago)
Author:
ocean90
Message:

Translate: Extend contributors table for locale projects with a toggle to view per-project stats.

Fixes #3613.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-routes/inc/routes/class-locale.php

    r8496 r8497  
    503503        }
    504504
     505        $projects = [];
     506
    505507        // Get the names of the contributors.
    506508        foreach ( $contributors as $contributor ) {
     
    516518                $locale_contributors['contributors'][ $contributor->user_id ]->waiting_count += $contributor->waiting_count;
    517519                $locale_contributors['contributors'][ $contributor->user_id ]->fuzzy_count   += $contributor->fuzzy_count;
     520
     521                if ( ! isset( $projects[ $contributor->project_id ] ) ) {
     522                    $projects[ $contributor->project_id ] = GP::$project->get( $contributor->project_id );
     523                }
     524
     525                $locale_contributors['contributors'][ $contributor->user_id ]->detailed[ $contributor->project_id ] = (object) [
     526                    'total_count'   => $contributor->total_count,
     527                    'current_count' => $contributor->current_count,
     528                    'waiting_count' => $contributor->waiting_count,
     529                    'fuzzy_count'   => $contributor->fuzzy_count,
     530                    'project'       => $projects[ $contributor->project_id ],
     531                ];
     532
    518533                continue;
    519534            }
     
    524539            }
    525540
     541            if ( ! isset( $projects[ $contributor->project_id ] ) ) {
     542                $projects[ $contributor->project_id ] = GP::$project->get( $contributor->project_id );
     543            }
     544
    526545            $locale_contributors['contributors'][ $contributor->user_id ] = (object) array(
     546                'login'         => $user->user_login,
    527547                'nicename'      => $user->user_nicename,
    528548                'display_name'  => $this->_encode( $user->display_name ),
     
    533553                'waiting_count' => $contributor->waiting_count,
    534554                'fuzzy_count'   => $contributor->fuzzy_count,
     555                'detailed'      => [
     556                    $contributor->project_id => (object) [
     557                        'total_count'   => $contributor->total_count,
     558                        'current_count' => $contributor->current_count,
     559                        'waiting_count' => $contributor->waiting_count,
     560                        'fuzzy_count'   => $contributor->fuzzy_count,
     561                        'project'       => $projects[ $contributor->project_id ],
     562                    ],
     563                ],
    535564                'is_editor'     => in_array( $user->ID, $editor_ids ),
    536565            );
     
    557586            SELECT
    558587                `t`.`user_id` as `user_id`,
     588                `o`.`project_id` as `project_id`,
    559589                MAX( `t`.`date_added` ) AS `last_update`,
    560590                COUNT( * ) as `total_count`,
     
    569599                AND `t`.`user_id` IS NOT NULL AND `t`.`user_id` != 0
    570600                AND `t`.`status` IN( 'current', 'waiting', 'fuzzy' )
    571                 AND `t`.`date_modified` > %s
    572601            GROUP BY `t`.`user_id`
    573         ", $translation_set->id, date( 'Y-m-d', time() - YEAR_IN_SECONDS ) ) );
     602        ", $translation_set->id ) );
    574603
    575604        return $contributors;
Note: See TracChangeset for help on using the changeset viewer.