query.rb 867 B

123456789101112131415161718192021222324252627
  1. module Blazer
  2. class Query < ActiveRecord::Base
  3. belongs_to :creator, Blazer::BELONGS_TO_OPTIONAL.merge(class_name: Blazer.user_class.to_s) if Blazer.user_class
  4. has_many :checks, dependent: :destroy
  5. has_many :dashboard_queries, dependent: :destroy
  6. has_many :dashboards, through: :dashboard_queries
  7. has_many :audits
  8. validates :statement, presence: true
  9. scope :named, -> { where("blazer_queries.name <> ''") }
  10. def to_param
  11. [id, name].compact.join("-").gsub("'", "").parameterize
  12. end
  13. def friendly_name
  14. name.to_s.sub(/\A[#\*]/, "").gsub(/\[.+\]/, "").strip
  15. end
  16. def editable?(user)
  17. editable = !persisted? || (name.present? && name.first != "*" && name.first != "#") || user == creator
  18. editable &&= Blazer.query_editable.call(self, user) if Blazer.query_editable
  19. editable
  20. end
  21. end
  22. end