Unverified Commit 9fd39385 authored by Stefan Auditor's avatar Stefan Auditor Committed by Stefan Auditor
Browse files

Issue #3282696 by sanduhrs: Port of l10n_community: Add release and release...

Issue #3282696 by sanduhrs: Port of l10n_community: Add release and release parsed count to stats service
parent ef98e2cc
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace Drupal\l10n_community;

use Drupal\Core\Database\Connection;
use Drupal\l10n_server\Entity\L10nServerProjectInterface;
use Drupal\l10n_server\Entity\L10nServerRelease;

/**
 * Service description.
@@ -65,6 +66,46 @@ class L10nStatistics {
    return $query->fetchField();
  }

  /**
   * Get project release count.
   *
   * @param \Drupal\l10n_server\Entity\L10nServerProjectInterface $project
   *   The l10n_server_project entity.
   *
   * @return int
   *   The release count integer.
   */
  public function getProjectReleases(L10nServerProjectInterface $project) {
    $release_ids = \Drupal::entityQuery('l10n_server_release')
      ->condition('pid', $project->id())
      ->execute();
    return count($release_ids);
  }

  /**
   * Get project parsed release count.
   *
   * @param \Drupal\l10n_server\Entity\L10nServerProjectInterface $project
   *   The l10n_server_project entity.
   *
   * @return int
   *   The parsed release count integer.
   */
  public function getProjectReleasesParsed(L10nServerProjectInterface $project) {
    $release_ids = \Drupal::entityQuery('l10n_server_release')
      ->condition('pid', $project->id())
      ->execute();
    $releases = L10nServerRelease::loadMultiple($release_ids);

    $num_parsed = 0;
    foreach ($releases as $release) {
      if ($release->getLastParsed() > 0) {
        $num_parsed++;
      }
    }
    return $num_parsed;
  }

  /**
   * Get summaries based on language codes.
   *