Skip to content

Commit

Permalink
CS-5656 - Error in section articles API - languages mixed
Browse files Browse the repository at this point in the history
  • Loading branch information
takeit committed Mar 4, 2015
1 parent f25aa1b commit df845a4
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 26 deletions.
46 changes: 25 additions & 21 deletions newscoop/library/Newscoop/Entity/Repository/ArticleRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
* @copyright 2011 Sourcefabric o.p.s.
* @license http://www.gnu.org/licenses/gpl.txt
*/

namespace Newscoop\Entity\Repository;

use Doctrine\ORM\QueryBuilder;
Expand All @@ -30,7 +29,7 @@ public function getArticles($publication, $type = null, $language = null)
->andWhere('a.publication = :publication')
->setParameters(array(
'workflowStatus' => 'Y',
'publication' => $publication
'publication' => $publication,
));

$countQueryBuilder = $em->getRepository('Newscoop\Entity\Article')
Expand All @@ -40,7 +39,7 @@ public function getArticles($publication, $type = null, $language = null)
->andWhere('a.publication = :publication')
->setParameters(array(
'workflowStatus' => 'Y',
'publication' => $publication
'publication' => $publication,
));

if ($type) {
Expand Down Expand Up @@ -88,7 +87,6 @@ public function getArticle($number, $language = null)
->setParameter('number', $number);

if (!is_null($language)) {

if (!is_numeric($language)) {
$languageObject = $em->getRepository('Newscoop\Entity\Language')
->findOneByCode($language);
Expand Down Expand Up @@ -139,31 +137,37 @@ public function getArticlesForTopic($publication, $topicId, $language = false, $
if ($getResultAndCount) {
return array(
'result' => $query->getResult(),
'count' => $articlesCount
'count' => $articlesCount,
);
}

return $query;
}

public function getArticlesForSection($publication, $sectionNumber)
/**
* Get Articles for chosen section
*
* @param int $publication
* @param int $sectionNumber
* @param Language|null $sectionLanguage
*
* @return \Doctrine\ORM\Query
*/
public function getArticlesForSection($publication, $sectionNumber, $sectionLanguage = null)
{
$em = $this->getEntityManager();

$queryBuilder = $em->getRepository('Newscoop\Entity\Article')
->createQueryBuilder('a')
->select('a')
->where('a.section = :sectionNumber')
->setParameter('sectionNumber', $sectionNumber);

$countQueryBuilder = $em->getRepository('Newscoop\Entity\Article')
->createQueryBuilder('a')
->select('count(a)')
->where('a.section = :sectionNumber')
->setParameter('sectionNumber', $sectionNumber);

$articlesCount = $countQueryBuilder->getQuery()->getSingleScalarResult();
->andWhere('a.language = :sectionLanguage')
->setParameters(array(
'sectionNumber' => $sectionNumber,
'sectionLanguage' => $sectionLanguage,
));

$qbCount = clone $queryBuilder;
$qbCount->select('count(a)');
$articlesCount = $qbCount->getQuery()->getSingleScalarResult();
$query = $queryBuilder->getQuery();
$query->setHint('knp_paginator.count', $articlesCount);

Expand Down Expand Up @@ -207,7 +211,7 @@ public function getArticleTranslations($articleNumber, $languageId)
->andWhere('a.language <> :language')
->setParameters(array(
'number' => $articleNumber,
'language' => $languageId
'language' => $languageId,
));

$query = $queryBuilder->getQuery();
Expand Down Expand Up @@ -278,7 +282,7 @@ public function setIndexedNow(array $articles)
if (!is_null($articles) && count($articles) > 0) {
$articleNumbers = array();

foreach ($articles AS $article) {
foreach ($articles as $article) {
$articleNumbers[] = $article->getNumber();
}

Expand All @@ -302,7 +306,7 @@ public function setIndexedNull(array $articles = null)
if (!is_null($articles) && count($articles) > 0) {
$articleNumbers = array();

foreach ($articles AS $article) {
foreach ($articles as $article) {
$articleNumbers[] = $article->getNumber();
}

Expand Down Expand Up @@ -334,7 +338,7 @@ public function countByAuthor(User $user)
->andWhere('a.workflowStatus = :status')
->setParameters(array(
'user' => $user->getId(),
'status' => Article::STATUS_PUBLISHED
'status' => Article::STATUS_PUBLISHED,
));

$count = $qb->getQuery()->getSingleScalarResult();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
* @copyright 2012 Sourcefabric o.p.s.
* @license http://www.gnu.org/licenses/gpl-3.0.txt
*/

namespace Newscoop\GimmeBundle\Controller;

use FOS\RestBundle\Controller\FOSRestController;
Expand Down Expand Up @@ -48,7 +47,7 @@ public function getSectionsAction(Request $request)

$paginator = $this->get('newscoop.paginator.paginator_service');
$sections = $paginator->paginate($sections, array(
'distinct' => false
'distinct' => false,
));

return $sections;
Expand Down Expand Up @@ -87,19 +86,19 @@ public function getSectionsArticlesAction(Request $request, $number, $language)
->findOneBy(array(
'number' => $number,
'language' => $language,
'publication' => $publication
'publication' => $publication,
));

if (!$section) {
throw new NotFoundHttpException('Result was not found.');
}

$articles = $em->getRepository('Newscoop\Entity\Article')
->getArticlesForSection($publication, $number);
->getArticlesForSection($publication, $number, $language);

$paginator = $this->get('newscoop.paginator.paginator_service');
$articles = $paginator->paginate($articles, array(
'distinct' => false
'distinct' => false,
));

$allItems = array_merge(array(
Expand Down

0 comments on commit df845a4

Please sign in to comment.