OSDN Git Service

create provider
[pettanr/pettanr.git] / app / models / provider_status.rb
1 class ProviderStatus < ActiveRecord::Base
2   has_one :provider
3   
4 #  validates :token
5   validates :receive_hour1, :numericality => {:allow_blank => true}
6   validates :receive_hour2, :numericality => {:allow_blank => true}
7 #  validates :received_at
8 #  validates :stopped_at
9   
10   def supply_default
11   end
12   
13   def overwrite
14   end
15   
16   def own? ad
17     return false unless ad
18     ad.is_a?(Admin)
19   end
20   
21   def visible? ad
22     return false unless ad
23     ad.is_a?(Admin)
24   end
25   
26   def status
27     self.token.blank? ? 0 : 1
28   end
29   
30   def self.default_page_size
31     25
32   end
33   
34   def self.max_page_size
35     100
36   end
37   
38   def self.default_panel_size
39     30
40   end
41   
42   def self.max_panel_size
43     200
44   end
45   
46   def self.page prm = nil
47     page = prm.to_i
48     page = 1 if page < 1
49     page
50   end
51   
52   def self.page_size prm = self.default_page_size
53     page_size = prm.to_i
54     page_size = self.max_page_size if page_size > self.max_page_size
55     page_size = self.default_page_size if page_size < 1
56     page_size
57   end
58   
59   def self.list page = 1, page_size = self.default_page_size
60     opt = {}
61     opt.merge!(ProviderStatus.list_opt)
62     opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
63     opt.merge!({:order => 'providers.name'})
64     ProviderStatus.find(:all, opt)
65   end
66   
67   def self.available_list page = 1, page_size = self.default_page_size
68     opt = {}
69     opt.merge!(ProviderStatus.list_opt)
70     opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
71     opt.merge!({:conditions => ['provider_statuses.token is null'], :order => 'providers.name'})
72     ProviderStatus.find(:all, opt)
73   end
74   
75   def self.list_opt
76     {:include => {:provider => {}} }
77   end
78   
79   def self.list_json_opt
80     {:include => {:provider => {}} }
81   end
82   
83   def self.show pid, ad
84     opt = {}
85     opt.merge!(ProviderStatus.show_opt)
86     res = ProviderStatus.find(pid, opt)
87     raise ActiveRecord::Forbidden unless res.visible?(ad)
88     res
89   end
90   
91   def self.edit pid, ad
92     opt = {}
93     opt.merge!(ProviderStatus.show_opt)
94     res = ProviderStatus.find(pid, opt)
95     raise ActiveRecord::Forbidden unless res.own?(ad)
96     res
97   end
98   
99   def self.show_opt
100     {:include => {:provider => {}} }
101   end
102   
103   def self.show_json_opt
104     {:include => {:provider => {}} }
105   end
106   
107 end