aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/info_request.rb
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2012-11-12 15:06:46 +0000
committerLouise Crow <louise.crow@gmail.com>2012-11-12 15:06:46 +0000
commita1ca0f9123a3aea843ba35508a97d5a4fd5cb0db (patch)
treeb9d3c1390f6b9c8b201e47507f26829b239f2773 /app/models/info_request.rb
parent8271b2c664f04d1b68a8b4d4fdb801f5c6b00b8c (diff)
parentc96b27c301023a6a1f50c12f0c387205b0255836 (diff)
Merge remote-tracking branch 'origin/release/0.6.8'0.6.8
Conflicts: locale/cs/app.po locale/sl/app.po locale/sq/app.po locale/tr/app.po locale/uk/app.po
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r--app/models/info_request.rb23
1 files changed, 12 insertions, 11 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 85168e6d4..89893a396 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -47,10 +47,12 @@ class InfoRequest < ActiveRecord::Base
has_many :track_things, :order => 'created_at desc'
has_many :comments, :order => 'created_at'
has_many :censor_rules, :order => 'created_at desc'
- has_many :exim_logs, :order => 'exim_log_done_id'
+ has_many :mail_server_logs, :order => 'mail_server_log_done_id'
has_tag_string
+ named_scope :visible, :conditions => {:prominence => "normal"}
+
# user described state (also update in info_request_event, admin_request/edit.rhtml)
validate :must_be_valid_state
@@ -582,12 +584,11 @@ public
# waiting_classification
# waiting_response_overdue
# waiting_response_very_overdue
- def calculate_status
- if @@custom_states_loaded
- return self.theme_calculate_status
- else
- self.base_calculate_status
+ def calculate_status(cached_value_ok=false)
+ if cached_value_ok && @cached_calculated_status
+ return @cached_calculated_status
end
+ @cached_calculated_status = @@custom_states_loaded ? self.theme_calculate_status : self.base_calculate_status
end
def base_calculate_status
@@ -869,8 +870,8 @@ public
end
end
- def display_status
- InfoRequest.get_status_description(self.calculate_status)
+ def display_status(cached_value_ok=false)
+ InfoRequest.get_status_description(self.calculate_status(cached_value_ok))
end
# Completely delete this request and all objects depending on it
@@ -884,8 +885,8 @@ public
info_request_event.track_things_sent_emails.each { |a| a.destroy }
info_request_event.destroy
end
- self.exim_logs.each do |exim_log|
- exim_log.destroy
+ self.mail_server_logs.each do |mail_server_log|
+ mail_server_log.destroy
end
self.outgoing_messages.each { |a| a.destroy }
self.incoming_messages.each { |a| a.destroy }
@@ -1138,7 +1139,7 @@ public
before_save :purge_in_cache
def purge_in_cache
- if !Configuration::varnish_host.nil? && !self.id.nil?
+ if !Configuration::varnish_host.blank? && !self.id.nil?
# we only do this for existing info_requests (new ones have a nil id)
path = url_for(:controller => 'request', :action => 'show', :url_title => self.url_title, :only_path => true, :locale => :none)
req = PurgeRequest.find_by_url(path)