mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 12:33:26 +00:00
PHRAS-1107 Fix order pagination in repository
This commit is contained in:
@@ -61,6 +61,7 @@ class OrderSubscriber extends AbstractNotificationSubscriber
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$notifier = $this->notifierRegistry->getNotifier($event->getOrder()->getNotificationMethod());
|
$notifier = $this->notifierRegistry->getNotifier($event->getOrder()->getNotificationMethod());
|
||||||
|
|
||||||
$notifier->notifyCreation($event->getOrder(), $event->getOrder()->getUser());
|
$notifier->notifyCreation($event->getOrder(), $event->getOrder()->getUser());
|
||||||
|
|
||||||
$notifier = $this->notifierRegistry->getNotifier(Order::NOTIFY_MAIL);
|
$notifier = $this->notifierRegistry->getNotifier(Order::NOTIFY_MAIL);
|
||||||
@@ -87,10 +88,10 @@ class OrderSubscriber extends AbstractNotificationSubscriber
|
|||||||
$notified = false;
|
$notified = false;
|
||||||
$notifier = $this->notifierRegistry->getNotifier($event->getOrder()->getNotificationMethod());
|
$notifier = $this->notifierRegistry->getNotifier($event->getOrder()->getNotificationMethod());
|
||||||
$notificationData = json_encode([
|
$notificationData = json_encode([
|
||||||
'from' => $event->getAdmin()->getId(),
|
'from' => $event->getDelivery()->getAdmin()->getId(),
|
||||||
'to' => $event->getOrder()->getUser()->getId(),
|
'to' => $event->getOrder()->getUser()->getId(),
|
||||||
'ssel_id' => $event->getOrder()->getBasket()->getId(),
|
'ssel_id' => $event->getOrder()->getBasket()->getId(),
|
||||||
'n' => $event->getQuantity(),
|
'n' => $event->getDelivery()->getQuantity()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($this->shouldSendNotificationFor($event->getOrder()->getUser(), 'eventsmanager_notify_orderdeliver')) {
|
if ($this->shouldSendNotificationFor($event->getOrder()->getUser(), 'eventsmanager_notify_orderdeliver')) {
|
||||||
@@ -111,9 +112,9 @@ class OrderSubscriber extends AbstractNotificationSubscriber
|
|||||||
$notified = false;
|
$notified = false;
|
||||||
$notifier = $this->notifierRegistry->getNotifier($event->getOrder()->getNotificationMethod());
|
$notifier = $this->notifierRegistry->getNotifier($event->getOrder()->getNotificationMethod());
|
||||||
$notificationData = json_encode([
|
$notificationData = json_encode([
|
||||||
'from' => $event->getAdmin()->getId(),
|
'from' => $event->getDelivery()->getAdmin()->getId(),
|
||||||
'to' => $event->getOrder()->getUser()->getId(),
|
'to' => $event->getOrder()->getUser()->getId(),
|
||||||
'n' => $event->getQuantity(),
|
'n' => $event->getDelivery()->getQuantity()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
@@ -41,11 +41,13 @@ class OrderRepository extends EntityRepository
|
|||||||
public function listOrders($baseIds, $offsetStart = 0, $perPage = 20, $sort = "created_on")
|
public function listOrders($baseIds, $offsetStart = 0, $perPage = 20, $sort = "created_on")
|
||||||
{
|
{
|
||||||
$qb = $this
|
$qb = $this
|
||||||
->createQueryBuilder('o')
|
->createQueryBuilder('o');
|
||||||
->innerJoin('o.elements', 'e');
|
|
||||||
|
|
||||||
if (!empty($baseIds)) {
|
if (!empty($baseIds)) {
|
||||||
$qb->where($qb->expr()->in('e.baseId', $baseIds));
|
$qb
|
||||||
|
->innerJoin('o.elements', 'e')
|
||||||
|
->where($qb->expr()->in('e.baseId', $baseIds))
|
||||||
|
->groupBy('o.id');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($sort === 'user') {
|
if ($sort === 'user') {
|
||||||
|
@@ -110,7 +110,7 @@ class ProdOrderController extends BaseOrderController
|
|||||||
|
|
||||||
$baseIds = array_keys($this->getAclForUser()->get_granted_base(['order_master']));
|
$baseIds = array_keys($this->getAclForUser()->get_granted_base(['order_master']));
|
||||||
|
|
||||||
$ordersList = $this->getOrderRepository()->listOrders($baseIds, $offsetStart, $perPage, $sort);
|
$ordersList = $this->getOrderRepository()->listOrders($baseIds, $offsetStart * $perPage, $perPage, $sort);
|
||||||
$total = $this->getOrderRepository()->countTotalOrders($baseIds);
|
$total = $this->getOrderRepository()->countTotalOrders($baseIds);
|
||||||
|
|
||||||
return $this->render('prod/orders/order_box.html.twig', [
|
return $this->render('prod/orders/order_box.html.twig', [
|
||||||
|
@@ -19,6 +19,7 @@ use Alchemy\Phrasea\TaskManager\Editor\DefaultEditor;
|
|||||||
use Alchemy\Phrasea\Webhook\EventProcessorFactory;
|
use Alchemy\Phrasea\Webhook\EventProcessorFactory;
|
||||||
use Guzzle\Http\Client as GuzzleClient;
|
use Guzzle\Http\Client as GuzzleClient;
|
||||||
use Guzzle\Batch\BatchBuilder;
|
use Guzzle\Batch\BatchBuilder;
|
||||||
|
use Guzzle\Http\Message\Request;
|
||||||
use Silex\Application;
|
use Silex\Application;
|
||||||
use Guzzle\Common\Event;
|
use Guzzle\Common\Event;
|
||||||
use Guzzle\Plugin\Backoff\BackoffPlugin;
|
use Guzzle\Plugin\Backoff\BackoffPlugin;
|
||||||
@@ -98,26 +99,35 @@ class WebhookJob extends AbstractJob
|
|||||||
}, -254);
|
}, -254);
|
||||||
|
|
||||||
// Set callback which logs success or failure
|
// Set callback which logs success or failure
|
||||||
$subscriber = new CallbackBackoffStrategy(function ($retries, $request, $response, $e) use ($app, $that) {
|
$subscriber = new CallbackBackoffStrategy(function ($retries, Request $request, $response, $e) use ($app, $that) {
|
||||||
$retry = true;
|
$retry = true;
|
||||||
if ($response && (null !== $deliverId = parse_url($request->getUrl(), PHP_URL_FRAGMENT))) {
|
if ($response && (null !== $deliverId = parse_url($request->getUrl(), PHP_URL_FRAGMENT))) {
|
||||||
$delivery = $app['repo.webhook-delivery']->find($deliverId);
|
$delivery = $app['repo.webhook-delivery']->find($deliverId);
|
||||||
|
|
||||||
|
$logContext = [ 'host' => $request->getHost() ];
|
||||||
|
|
||||||
if ($response->isSuccessful()) {
|
if ($response->isSuccessful()) {
|
||||||
$app['manipulator.webhook-delivery']->deliverySuccess($delivery);
|
$app['manipulator.webhook-delivery']->deliverySuccess($delivery);
|
||||||
|
|
||||||
$that->log('info', sprintf('Deliver success event "%d:%s" for app "%s"',
|
$logType = 'info';
|
||||||
|
$logEntry = sprintf('Deliver success event "%d:%s" for app "%s"',
|
||||||
$delivery->getWebhookEvent()->getId(), $delivery->getWebhookEvent()->getName(),
|
$delivery->getWebhookEvent()->getId(), $delivery->getWebhookEvent()->getName(),
|
||||||
$delivery->getThirdPartyApplication()->getName()));
|
$delivery->getThirdPartyApplication()->getName()
|
||||||
|
);
|
||||||
|
|
||||||
$retry = false;
|
$retry = false;
|
||||||
} else {
|
} else {
|
||||||
$app['manipulator.webhook-delivery']->deliveryFailure($delivery);
|
$app['manipulator.webhook-delivery']->deliveryFailure($delivery);
|
||||||
|
|
||||||
$that->log('error', sprintf('Deliver failure event "%d:%s" for app "%s"',
|
$logType = 'error';
|
||||||
|
$logEntry = sprintf('Deliver failure event "%d:%s" for app "%s"',
|
||||||
$delivery->getWebhookEvent()->getId(), $delivery->getWebhookEvent()->getName(),
|
$delivery->getWebhookEvent()->getId(), $delivery->getWebhookEvent()->getName(),
|
||||||
$delivery->getThirdPartyApplication()->getName()));
|
$delivery->getThirdPartyApplication()->getName()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$that->log($logType, $logEntry, $logContext);
|
||||||
|
|
||||||
return $retry;
|
return $retry;
|
||||||
}
|
}
|
||||||
}, true, new CurlBackoffStrategy());
|
}, true, new CurlBackoffStrategy());
|
||||||
|
Reference in New Issue
Block a user