Fixed bulk_action success messages

- uptaded Subscriber & Segment routers' test
- moved add/remove segments logic to Subscriber::createOrUpdate
- fixed Router\Segments save not returning errors
This commit is contained in:
Jonathan Labreuille
2016-02-08 13:36:35 +01:00
parent 4b6fa0e760
commit 95b0b39366
8 changed files with 136 additions and 135 deletions

View File

@ -58,7 +58,7 @@ class Subscriber extends Model {
return false;
}
$subscriber = static::createOrUpdate($subscriber_data);
$subscriber = Subscriber::createOrUpdate($subscriber_data);
if($subscriber !== false && $subscriber->id() > 0) {
// restore deleted subscriber
@ -101,7 +101,10 @@ class Subscriber extends Model {
'value' => ''
);
$segment_list[] = array(
'label' => __('Subscribers without a segment'),
'label' => sprintf(
__('Subscribers without a segment (%d)'),
Subscriber::filter('withoutSegments')->count()
),
'value' => 'none'
);
@ -237,17 +240,25 @@ class Subscriber extends Model {
$subscriber = false;
if(isset($data['id']) && (int)$data['id'] > 0) {
$subscriber = static::findOne((int)$data['id']);
$subscriber = Subscriber::findOne((int)$data['id']);
unset($data['id']);
}
if($subscriber === false && !empty($data['email'])) {
$subscriber = static::where('email', $data['email'])->findOne();
$subscriber = Subscriber::where('email', $data['email'])->findOne();
if($subscriber !== false) {
unset($data['email']);
}
}
// segments
$segment_ids = array();
if(isset($data['segments'])) {
$segment_ids = (array)$data['segments'];
unset($data['segments']);
}
// custom fields
$custom_fields = array();
@ -259,7 +270,7 @@ class Subscriber extends Model {
}
if($subscriber === false) {
$subscriber = static::create();
$subscriber = Subscriber::create();
$subscriber->hydrate($data);
} else {
$subscriber->set($data);
@ -271,6 +282,7 @@ class Subscriber extends Model {
$subscriber->setCustomField($custom_field_id, $value);
}
}
$subscriber->addToSegments($segment_ids);
}
return $subscriber;
}