Remove old model from Segments admin page
[MAILPOET-4339]
This commit is contained in:
@@ -4,6 +4,7 @@ namespace MailPoet\AdminPages\Pages;
|
||||
|
||||
use MailPoet\AdminPages\PageRenderer;
|
||||
use MailPoet\API\JSON\ResponseBuilders\CustomFieldsResponseBuilder;
|
||||
use MailPoet\API\JSON\ResponseBuilders\NewslettersResponseBuilder;
|
||||
use MailPoet\Cache\TransientCache;
|
||||
use MailPoet\Config\Installer;
|
||||
use MailPoet\Config\ServicesChecker;
|
||||
@@ -11,7 +12,7 @@ use MailPoet\CustomFields\CustomFieldsRepository;
|
||||
use MailPoet\Entities\DynamicSegmentFilterData;
|
||||
use MailPoet\Entities\SegmentEntity;
|
||||
use MailPoet\Listing\PageLimit;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Segments\SegmentDependencyValidator;
|
||||
use MailPoet\Segments\SegmentsRepository;
|
||||
use MailPoet\Services\Bridge;
|
||||
@@ -60,6 +61,12 @@ class Segments {
|
||||
/** @var SegmentsRepository */
|
||||
private $segmentsRepository;
|
||||
|
||||
/** @var NewslettersRepository */
|
||||
private $newslettersRepository;
|
||||
|
||||
/** @var NewslettersResponseBuilder */
|
||||
private $newslettersResponseBuilder;
|
||||
|
||||
/** @var TrackingConfig */
|
||||
private $trackingConfig;
|
||||
|
||||
@@ -75,6 +82,8 @@ class Segments {
|
||||
CustomFieldsResponseBuilder $customFieldsResponseBuilder,
|
||||
SegmentDependencyValidator $segmentDependencyValidator,
|
||||
SegmentsRepository $segmentsRepository,
|
||||
NewslettersRepository $newslettersRepository,
|
||||
NewslettersResponseBuilder $newslettersResponseBuilder,
|
||||
TrackingConfig $trackingConfig,
|
||||
TransientCache $transientCache
|
||||
) {
|
||||
@@ -90,7 +99,9 @@ class Segments {
|
||||
$this->customFieldsResponseBuilder = $customFieldsResponseBuilder;
|
||||
$this->transientCache = $transientCache;
|
||||
$this->segmentsRepository = $segmentsRepository;
|
||||
$this->newslettersRepository = $newslettersRepository;
|
||||
$this->trackingConfig = $trackingConfig;
|
||||
$this->newslettersResponseBuilder = $newslettersResponseBuilder;
|
||||
}
|
||||
|
||||
public function render() {
|
||||
@@ -131,10 +142,7 @@ class Segments {
|
||||
];
|
||||
}, array_keys($wpRoles), $wpRoles);
|
||||
|
||||
$data['newsletters_list'] = Newsletter::select(['id', 'subject', 'sent_at'])
|
||||
->whereNull('deleted_at')
|
||||
->where('type', Newsletter::TYPE_STANDARD)
|
||||
->orderByExpr('ISNULL(sent_at) DESC, sent_at DESC')->findArray();
|
||||
$data['newsletters_list'] = $this->newslettersResponseBuilder->buildForListing($this->newslettersRepository->getStandardNewsletterList());
|
||||
|
||||
$data['static_segments_list'] = [];
|
||||
$criteria = new Criteria();
|
||||
|
@@ -422,6 +422,24 @@ class NewslettersRepository extends Repository {
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns standard newsletters ordered by sentAt
|
||||
* @return NewsletterEntity[]
|
||||
*/
|
||||
public function getStandardNewsletterList(): array {
|
||||
return $this->entityManager->createQueryBuilder()
|
||||
->select('n')
|
||||
->addSelect('CASE WHEN n.sentAt IS NULL THEN 1 ELSE 0 END as HIDDEN sent_at_is_null')
|
||||
->from(NewsletterEntity::class, 'n')
|
||||
->where('n.type = :typeStandard')
|
||||
->andWhere('n.deletedAt IS NULL')
|
||||
->orderBy('sent_at_is_null', 'DESC')
|
||||
->addOrderBy('n.sentAt', 'DESC')
|
||||
->setParameter('typeStandard', NewsletterEntity::TYPE_STANDARD)
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function prefetchOptions(array $newsletters) {
|
||||
$this->entityManager->createQueryBuilder()
|
||||
->select('PARTIAL n.{id}, o, opf')
|
||||
|
Reference in New Issue
Block a user