getEntity($objectId); // Init the date range filter form $dateRangeValues = ['date_from' => $dateFrom, 'date_to' => $dateTo]; $action = $this->generateUrl('mautic_email_action', ['objectAction' => 'view', 'objectId' => $objectId]); $dateRangeForm = $formFactory->create(DateRangeType::class, $dateRangeValues, ['action' => $action]); if (null === $email || !$security->hasEntityAccess( 'email:emails:viewown', 'email:emails:viewother', $email->getCreatedBy() )) { throw new AccessDeniedHttpException(); } // get A/B test information [$parent, $children] = $email->getVariants(); // get related translations [$translationParent, $translationChildren] = $email->getTranslations(); // Prepare stats for bargraph if ($chartStatsSource = $request->query->get('stats', false)) { $includeVariants = ('all' === $chartStatsSource); } else { $includeVariants = (($email->isVariant() && $parent === $email) || ($email->isTranslation() && $translationParent === $email)); } $dateFromObject = new \DateTime($dateFrom); $dateToObject = new \DateTime($dateTo); if ('template' === $email->getEmailType()) { $stats = $model->getEmailGeneralStats( $email, $includeVariants, null, $dateFromObject, $dateToObject ); } else { $stats = $model->getEmailListStats( $email, $includeVariants, $dateFromObject, $dateToObject ); } $statsDevices = $model->getEmailDeviceStats( $email, $includeVariants, $dateFromObject, $dateToObject ); return $this->render( '@MauticEmail/Email/graph.html.twig', [ 'email' => $email, 'stats' => $stats, 'statsDevices' => $statsDevices, 'showAllStats' => $includeVariants, 'dateRangeForm' => $dateRangeForm->createView(), 'isVariant' => $isVariant, ] ); } }