aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorcedricnjanga2018-04-26 11:31:05 -0700
committerJohan Van Ryseghem2018-05-28 12:48:49 +0200
commit9f988815907182dd9194d546b19ac4911c804d0e (patch)
tree5f6838981ce7b4ce55251f688e82230e018f0e20 /app/models
parentcd3c110893a7b1845e5ff420f7f28d30b0b78825 (diff)
downloadchouette-core-9f988815907182dd9194d546b19ac4911c804d0e.tar.bz2
Refs #6433 Use ransackable scope for stop area status filter
Diffstat (limited to 'app/models')
-rw-r--r--app/models/chouette/stop_area.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/models/chouette/stop_area.rb b/app/models/chouette/stop_area.rb
index b933e1944..479407469 100644
--- a/app/models/chouette/stop_area.rb
+++ b/app/models/chouette/stop_area.rb
@@ -383,6 +383,26 @@ module Chouette
end
end
+ def self.ransackable_scopes(auth_object = nil)
+ [:by_status]
+ end
+
+
+ def self.by_status(*statuses)
+ return Chouette::StopArea.all if statuses.reject(&:blank?).length == 3 || statuses.reject(&:blank?).empty?
+
+ status = {
+ in_creation: statuses.include?('in_creation'),
+ confirmed: statuses.include?('confirmed'),
+ deactivated: statuses.include?('deactivated'),
+ }
+
+ Chouette::StopArea.where(
+ "confirmed_at #{status[:confirmed] ? "IS NOT NULL" : "IS NULL"}
+ AND deleted_at #{status[:deactivated] ? "IS NOT NULL" : "IS NULL"}"
+ )
+ end
+
def activated?
!!(deleted_at.nil? && confirmed_at)
end