organization.rb
1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Represents any organization of the system and has an organization_info object to hold its info
class Organization < Profile
  has_one :organization_info
  belongs_to :region
  has_one :validation_info
  has_many :validations, :class_name => 'CreateEnterprise', :foreign_key => :target_id
  after_create do |org|
      OrganizationInfo.create!(:organization_id => org.id)
  end
  def contact_email
    self.organization_info ? self.organization_info.contact_email : nil
  end
  def validation_methodology
    self.validation_info ? self.validation_info.validation_methodology : nil
  end
  def validation_restrictions
    self.validation_info ? self.validation_info.restrictions : nil
  end
  def pending_validations
    validations.pending
  end
  def find_pending_validation(code)
    validations.pending.find { |pending| pending.code == code }
  end
  def processed_validations
    validations.finished
  end
  def find_processed_validation(code)
    validations.finished.find { |pending| pending.code == code }
  end
  def is_validation_entity?
    !self.validation_info.nil?
  end
  def info
    organization_info
  end
  # Yes, organizations have members.
  #
  # Returns <tt>true</tt>.
  def has_members?
    true
  end
  hacked_after_create :create_default_set_of_blocks_for_organization
  def create_default_set_of_blocks_for_organization
    # "main" area
    self.boxes[0].blocks << MainBlock.new
    
    # "left" area
    self.boxes[1].blocks << ProfileInfoBlock.new
    self.boxes[1].blocks << RecentDocumentsBlock.new
    # "right" area
    self.boxes[2].blocks << MembersBlock.new
    self.boxes[2].blocks << TagsBlock.new
  end
end