<?php
namespace Bidcoz\Bundle\FrontendBundle\Controller\Auction;
use Bidcoz\Bundle\CoreBundle\Controller\CoreController;
use Bidcoz\Bundle\CoreBundle\Entity\Auction\Auction;
use Bidcoz\Bundle\CoreBundle\Entity\Campaign;
use Bidcoz\Bundle\CoreBundle\Entity\Organization;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/{orgSlug}/{campaignSlug}/auction")
* @IsGranted("VIEW", subject="organization")
* @IsGranted("FRONT_END", subject="campaign")
*/
class AuctionController extends CoreController
{
use ItemCatalogQueryTrait;
/**
* @Route("/list", name="auction_catalog")
*/
public function catalogAction(Request $request, Organization $organization, Campaign $campaign, Auction $auction)
{
$qb = $this->getRepository('Auction\Item')->getAuctionQueryBuilder($auction, true, false);
$filterForm = $this->getItemFilterForm($auction);
$hasFilter = $this->applyFilters($request, $filterForm, $qb);
$orderForm = $this->getItemOrderForm();
$hasOrder = $this->applyOrder($request, $orderForm, $qb, true);
$activeTab = $this->applyTabFilter($request, $qb);
$items = $this->getPagination($qb);
return $this->render('@BidcozFrontend/Auction/catalog.html.twig', [
'type' => 'auction',
'title' => 'Auction Catalog',
'organization' => $organization,
'campaign' => $campaign,
'auction' => $auction,
'filterForm' => $filterForm->createView(),
'orderForm' => $orderForm->createView(),
'items' => $items,
'activeTab' => $activeTab,
'hasFilter' => $hasFilter || $hasOrder || 'all' !== $activeTab,
'requireCC' => !$this->isGranted('WITH_CC', $campaign),
// Carried onto every item link so the item page's "More Items"
// carousel can mirror this catalog's sort and filters (CAU-356).
'carryParams' => $this->getCatalogCarryParams($request, $filterForm, $orderForm),
]);
}
}