diff options
| author | cedricnjanga | 2018-04-26 11:31:05 -0700 | 
|---|---|---|
| committer | Johan Van Ryseghem | 2018-05-28 12:48:49 +0200 | 
| commit | 9f988815907182dd9194d546b19ac4911c804d0e (patch) | |
| tree | 5f6838981ce7b4ce55251f688e82230e018f0e20 /app/models | |
| parent | cd3c110893a7b1845e5ff420f7f28d30b0b78825 (diff) | |
| download | chouette-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.rb | 20 | 
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 | 
