Filters newsletters by type and, if available, type group

This commit is contained in:
Vlad
2018-04-06 21:26:11 -04:00
parent ce45c8c553
commit f019eaf38e

View File

@ -591,6 +591,7 @@ class Newsletter extends Model {
static function filters($data = array()) { static function filters($data = array()) {
$type = isset($data['params']['type']) ? $data['params']['type'] : null; $type = isset($data['params']['type']) ? $data['params']['type'] : null;
$group = (isset($data['params']['group'])) ? $data['params']['group'] : null;
// newsletter types without filters // newsletter types without filters
if(in_array($type, array( if(in_array($type, array(
@ -608,7 +609,7 @@ class Newsletter extends Model {
foreach($segments as $segment) { foreach($segments as $segment) {
$newsletters = $segment->newsletters() $newsletters = $segment->newsletters()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('groupBy', $data); ->filter('groupBy', $data);
$newsletters_count = $newsletters->count(); $newsletters_count = $newsletters->count();
@ -691,6 +692,7 @@ class Newsletter extends Model {
static function groups($data = array()) { static function groups($data = array()) {
$type = isset($data['params']['type']) ? $data['params']['type'] : null; $type = isset($data['params']['type']) ? $data['params']['type'] : null;
$group = (isset($data['params']['group'])) ? $data['params']['group'] : null;
// newsletter types without groups // newsletter types without groups
if(in_array($type, array( if(in_array($type, array(
@ -704,7 +706,7 @@ class Newsletter extends Model {
'name' => 'all', 'name' => 'all',
'label' => __('All', 'mailpoet'), 'label' => __('All', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->count() ->count()
) )
); );
@ -716,7 +718,7 @@ class Newsletter extends Model {
'name' => self::STATUS_DRAFT, 'name' => self::STATUS_DRAFT,
'label' => __('Draft', 'mailpoet'), 'label' => __('Draft', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('filterStatus', self::STATUS_DRAFT) ->filter('filterStatus', self::STATUS_DRAFT)
->count() ->count()
), ),
@ -724,7 +726,7 @@ class Newsletter extends Model {
'name' => self::STATUS_SCHEDULED, 'name' => self::STATUS_SCHEDULED,
'label' => __('Scheduled', 'mailpoet'), 'label' => __('Scheduled', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('filterStatus', self::STATUS_SCHEDULED) ->filter('filterStatus', self::STATUS_SCHEDULED)
->count() ->count()
), ),
@ -732,7 +734,7 @@ class Newsletter extends Model {
'name' => self::STATUS_SENDING, 'name' => self::STATUS_SENDING,
'label' => __('Sending', 'mailpoet'), 'label' => __('Sending', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('filterStatus', self::STATUS_SENDING) ->filter('filterStatus', self::STATUS_SENDING)
->count() ->count()
), ),
@ -740,7 +742,7 @@ class Newsletter extends Model {
'name' => self::STATUS_SENT, 'name' => self::STATUS_SENT,
'label' => __('Sent', 'mailpoet'), 'label' => __('Sent', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('filterStatus', self::STATUS_SENT) ->filter('filterStatus', self::STATUS_SENT)
->count() ->count()
) )
@ -755,7 +757,7 @@ class Newsletter extends Model {
'name' => self::STATUS_ACTIVE, 'name' => self::STATUS_ACTIVE,
'label' => __('Active', 'mailpoet'), 'label' => __('Active', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('filterStatus', self::STATUS_ACTIVE) ->filter('filterStatus', self::STATUS_ACTIVE)
->count() ->count()
), ),
@ -763,7 +765,7 @@ class Newsletter extends Model {
'name' => self::STATUS_DRAFT, 'name' => self::STATUS_DRAFT,
'label' => __('Not active', 'mailpoet'), 'label' => __('Not active', 'mailpoet'),
'count' => Newsletter::getPublished() 'count' => Newsletter::getPublished()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->filter('filterStatus', self::STATUS_DRAFT) ->filter('filterStatus', self::STATUS_DRAFT)
->count() ->count()
) )
@ -775,7 +777,7 @@ class Newsletter extends Model {
'name' => 'trash', 'name' => 'trash',
'label' => __('Trash', 'mailpoet'), 'label' => __('Trash', 'mailpoet'),
'count' => Newsletter::getTrashed() 'count' => Newsletter::getTrashed()
->filter('filterType', $type) ->filter('filterType', $type, $group)
->count() ->count()
); );