From a9df6bdba026bce15db9804b95d0a8ce3d75325f Mon Sep 17 00:00:00 2001 From: Naomi Date: Thu, 3 Apr 2014 13:16:36 -0400 Subject: [PATCH] CC-5762 : Playlist options validation making sure playlist can generate with no criteria options set. --- .../application/models/airtime/Playlist.php | 46 ++++++++++--------- .../models/airtime/PlaylistPeer.php | 2 +- .../models/airtime/PlaylistQuery.php | 2 +- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/airtime_mvc/application/models/airtime/Playlist.php b/airtime_mvc/application/models/airtime/Playlist.php index a712aa3f9..f88f210ec 100644 --- a/airtime_mvc/application/models/airtime/Playlist.php +++ b/airtime_mvc/application/models/airtime/Playlist.php @@ -556,29 +556,31 @@ abstract class Playlist extends BasePlaylist implements \Interface_Playlistable $m = $query->getModelName(); $query->withColumn("({$m}.Cueout - {$m}.Cuein)", "cuelength"); - - $criteriaRules = self::getCriteriaRules($query); - - $conditionAnd = array(); - $conNum = 0; - foreach ($criteria as $andBlock) { - $conditionOr = array(); - - foreach ($andBlock as $orBlock) { - $rule = $criteriaRules[$orBlock["modifier"]]; - - $column = $orBlock["criteria"]; - $condition = $rule($column, $orBlock); - - $conditionOr[] = $condition; + + //only add to where clause if criteria exist. + if (count($criteria) > 0) { + $criteriaRules = self::getCriteriaRules($query); + $conditionAnd = array(); + $conNum = 0; + foreach ($criteria as $andBlock) { + $conditionOr = array(); + + foreach ($andBlock as $orBlock) { + $rule = $criteriaRules[$orBlock["modifier"]]; + + $column = $orBlock["criteria"]; + $condition = $rule($column, $orBlock); + + $conditionOr[] = $condition; + } + + $query->combine($conditionOr, 'or', $conNum); + $conditionAnd[] = $conNum; + $conNum++; } - - $query->combine($conditionOr, 'or', $conNum); - $conditionAnd[] = $conNum; - $conNum++; - } - - $query->where($conditionAnd, 'and'); + + $query->where($conditionAnd, 'and'); + } //order by a chosen column or by random. $order = $ruleSet["order"]; diff --git a/airtime_mvc/application/models/airtime/PlaylistPeer.php b/airtime_mvc/application/models/airtime/PlaylistPeer.php index 65ad7aab8..947b9fdd4 100644 --- a/airtime_mvc/application/models/airtime/PlaylistPeer.php +++ b/airtime_mvc/application/models/airtime/PlaylistPeer.php @@ -6,7 +6,7 @@ use Airtime\MediaItem\om\BasePlaylistPeer; /** - * Skeleton subclass for performing query and update operations on the 'playlist' table. + * Skeleton subclass for performing query and update operations on the 'media_playlist' table. * * * diff --git a/airtime_mvc/application/models/airtime/PlaylistQuery.php b/airtime_mvc/application/models/airtime/PlaylistQuery.php index a3761ae3b..a2129babe 100644 --- a/airtime_mvc/application/models/airtime/PlaylistQuery.php +++ b/airtime_mvc/application/models/airtime/PlaylistQuery.php @@ -6,7 +6,7 @@ use Airtime\MediaItem\om\BasePlaylistQuery; /** - * Skeleton subclass for performing query and update operations on the 'playlist' table. + * Skeleton subclass for performing query and update operations on the 'media_playlist' table. * * *