Commit f7be1cc6b29aa75dbc43f7a6209293b642512534

Authored by Victor Costa
1 parent e0f36662

rails3: fix sub_organizations plugin

Showing 23 changed files with 214 additions and 209 deletions   Show diff stats
plugins/sub_organizations/controllers/sub_organizations_plugin_myprofile_controller.rb
... ... @@ -5,12 +5,12 @@ class SubOrganizationsPluginMyprofileController < MyProfileController
5 5 protect 'edit_profile', :profile
6 6  
7 7 def index
8   - @children = SubOrganizationsPlugin::Relation.children(profile)
  8 + @children = Organization.children(profile)
9 9 @tokenized_children = prepare_to_token_input(@children)
10   - @pending_children = SubOrganizationsPlugin::ApprovePaternityRelation.pending_children(profile)
  10 + @pending_children = Organization.pending_children(profile)
11 11 if request.post?
12 12 begin
13   - original = SubOrganizationsPlugin::Relation.children(profile)
  13 + original = Organization.children(profile)
14 14 requested = Organization.find(params[:q].split(','))
15 15 added = requested - original
16 16 removed = original - requested
... ... @@ -37,8 +37,8 @@ class SubOrganizationsPluginMyprofileController < MyProfileController
37 37 AND (identifier NOT LIKE ?) AND (id != ?)",
38 38 "%#{params[:q]}%", "%#{params[:q]}%", "%_template", profile.id]).
39 39 select { |organization|
40   - SubOrganizationsPlugin::Relation.children(organization).blank? &&
41   - !SubOrganizationsPlugin::ApprovePaternityRelation.pending_children(profile).include?(organization)
  40 + Organization.children(organization).blank? &&
  41 + !Organization.pending_children(profile).include?(organization)
42 42 }).to_json
43 43 end
44 44  
... ...
plugins/sub_organizations/controllers/sub_organizations_plugin_profile_controller.rb
... ... @@ -4,13 +4,13 @@ class SubOrganizationsPluginProfileController < ProfileController
4 4 before_filter :organizations_only
5 5  
6 6 def children
7   - children = SubOrganizationsPlugin::Relation.children(profile)
  7 + children = Organization.children(profile)
8 8 family_relation(children)
9 9 render 'related_organizations'
10 10 end
11 11  
12 12 def parents
13   - parents = SubOrganizationsPlugin::Relation.parents(profile)
  13 + parents = Organization.parents(profile)
14 14 family_relation(parents)
15 15 render 'related_organizations'
16 16 end
... ...
plugins/sub_organizations/lib/ext/organization.rb
... ... @@ -2,6 +2,8 @@ require_dependency 'organization'
2 2 class Organization
3 3 settings_items :sub_organizations_plugin_parent_to_be
4 4  
  5 + attr_accessible :sub_organizations_plugin_parent_to_be
  6 +
5 7 after_create do |organization|
6 8 if organization.sub_organizations_plugin_parent_to_be.present?
7 9 parent = Organization.find(organization.sub_organizations_plugin_parent_to_be)
... ... @@ -10,4 +12,27 @@ class Organization
10 12 end
11 13  
12 14 FIELDS << 'sub_organizations_plugin_parent_to_be'
  15 +
  16 + scope :children, lambda { |parent|
  17 + options = {
  18 + :joins => "inner join sub_organizations_plugin_relations as relations on profiles.id=relations.child_id",
  19 + :conditions => ["relations.parent_id = ?", parent.id]
  20 + }
  21 + }
  22 +
  23 + scope :parents, lambda { |*children|
  24 + options = {
  25 + :joins => "inner join sub_organizations_plugin_relations as relations on profiles.id=relations.parent_id",
  26 + :conditions => ["relations.child_id in (?)", children.map(&:id)]
  27 + }
  28 + }
  29 +
  30 + scope :pending_children, lambda { |parent|
  31 + options = {
  32 + :select => "distinct profiles.*",
  33 + :joins => "inner join sub_organizations_plugin_approve_paternity_relations as relations on profiles.id=relations.child_id inner join tasks on relations.task_id=tasks.id",
  34 + :conditions => ["relations.parent_id = ? AND tasks.status = 1", parent.id]
  35 + }
  36 + }
  37 +
13 38 end
... ...
plugins/sub_organizations/lib/related_organizations_block.rb
... ... @@ -2,25 +2,29 @@ class RelatedOrganizationsBlock &lt; ProfileListBlock
2 2  
3 3 settings_items :organization_type, :type => :string, :default => 'both'
4 4  
5   - @display_type = {:title => 'related', :action => 'children' }
  5 + attr_accessible :organization_type
6 6  
7 7 def self.description
8   - __("#{@display_type[:title].capitalize} Organizations")
  8 + _("Related Organizations")
  9 + end
  10 +
  11 + def display_type
  12 + @display_type ||= {:title => 'related', :action => 'children' }
9 13 end
10 14  
11 15 def default_title
12 16 case organization_type
13 17 when 'enterprise'
14   - n__("{#} #{@display_type[:title]} enterprise", "{#} #{@display_type[:title]} enterprises", profile_count)
  18 + n_("{#} #{display_type[:title]} enterprise", "{#} #{display_type[:title]} enterprises", profile_count)
15 19 when 'community'
16   - n__("{#} #{@display_type[:title]} community", "{#} #{@display_type[:title]} communities", profile_count)
  20 + n_("{#} #{display_type[:title]} community", "{#} #{display_type[:title]} communities", profile_count)
17 21 else
18   - n__("{#} #{@display_type[:title]} organization", "{#} #{@display_type[:title]} organizations", profile_count)
  22 + n_("{#} #{display_type[:title]} organization", "{#} #{display_type[:title]} organizations", profile_count)
19 23 end
20 24 end
21 25  
22 26 def help
23   - _("This block displays #{@display_type[:title]} organizations of this organization")
  27 + _("This block displays #{display_type[:title]} organizations of this organization")
24 28 end
25 29  
26 30 def profiles
... ... @@ -38,20 +42,20 @@ class RelatedOrganizationsBlock &lt; ProfileListBlock
38 42 def footer
39 43 profile = self.owner
40 44 type = self.organization_type
41   - params = {:profile => profile.identifier, :controller => 'sub_organizations_plugin_profile', :action => @display_type[:action]}
  45 + params = {:profile => profile.identifier, :controller => 'sub_organizations_plugin_profile', :action => display_type[:action]}
42 46 params[:type] = type if type == 'enterprise' || type == 'community'
43   - lambda do
  47 + proc do
44 48 link_to _('View all'), params.merge(params)
45 49 end
46 50 end
47 51  
48 52 def related_organizations
49 53 profile = self.owner
50   - organizations = SubOrganizationsPlugin::Relation.parents(profile)
  54 + organizations = Organization.parents(profile)
51 55  
52 56 if organizations.blank?
53 57 @display_type = {:title => 'sub', :action => 'children'}
54   - organizations = SubOrganizationsPlugin::Relation.children(profile)
  58 + organizations = Organization.children(profile)
55 59 else
56 60 @display_type = {:title => 'parent', :action => 'parents' }
57 61 organizations
... ...
plugins/sub_organizations/lib/sub_organizations_plugin.rb
... ... @@ -19,7 +19,7 @@ class SubOrganizationsPlugin &lt; Noosfero::Plugin
19 19 end
20 20  
21 21 def control_panel_buttons
22   - if context.profile.organization? && SubOrganizationsPlugin::Relation.parents(context.profile).blank?
  22 + if context.profile.organization? && Organization.parents(context.profile).blank?
23 23 { :title => _('Manage sub-groups'), :icon => 'groups', :url => {:controller => 'sub_organizations_plugin_myprofile'} }
24 24 end
25 25 end
... ... @@ -29,17 +29,17 @@ class SubOrganizationsPlugin &lt; Noosfero::Plugin
29 29 end
30 30  
31 31 def organization_members(organization)
32   - children = SubOrganizationsPlugin::Relation.children(organization)
33   - Person.members_of(children) if children.present?
  32 + children = Organization.children(organization)
  33 + Person.members_of(children.all) if children.present?
34 34 end
35 35  
36 36 def person_memberships(person)
37   - SubOrganizationsPlugin::Relation.parents(*Profile.memberships_of(person))
  37 + Organization.parents(*Profile.memberships_of(person))
38 38 end
39 39  
40 40 def has_permission?(person, permission, target)
41 41 if !target.kind_of?(Environment) && target.organization?
42   - SubOrganizationsPlugin::Relation.parents(target).map do |parent|
  42 + Organization.parents(target).map do |parent|
43 43 person.has_permission_without_plugins?(permission, parent)
44 44 end.include?(true)
45 45 end
... ...
plugins/sub_organizations/lib/sub_organizations_plugin/approve_paternity.rb
... ... @@ -13,7 +13,7 @@ class SubOrganizationsPlugin::ApprovePaternity &lt; Task
13 13 end
14 14  
15 15 def parent
16   - SubOrganizationsPlugin::ApprovePaternityRelation.parent(self)
  16 + SubOrganizationsPlugin::ApprovePaternityRelation.parent_approval(self)
17 17 end
18 18  
19 19 def title
... ...
plugins/sub_organizations/lib/sub_organizations_plugin/approve_paternity_relation.rb
... ... @@ -5,19 +5,12 @@ class SubOrganizationsPlugin::ApprovePaternityRelation &lt; Noosfero::Plugin::Activ
5 5  
6 6 validates_presence_of :task, :parent, :child
7 7  
  8 + attr_accessible :task, :parent, :child
  9 +
8 10 class << self
9   - def parent(task)
  11 + def parent_approval(task)
10 12 find_by_task_id(task.id).parent
11 13 end
12   -
13   - def pending_children(parent)
14   - options = {
15   - :select => "distinct profiles.*",
16   - :joins => "inner join sub_organizations_plugin_approve_paternity_relations as relations on profiles.id=relations.child_id inner join tasks on relations.task_id=tasks.id",
17   - :conditions => ["relations.parent_id = ? AND tasks.status = 1", parent.id]
18   - }
19   - ActiveRecord::NamedScope::Scope.new(Organization, options)
20   - end
21 14 end
22 15  
23 16 end
... ...
plugins/sub_organizations/lib/sub_organizations_plugin/relation.rb
... ... @@ -7,41 +7,25 @@ class SubOrganizationsPlugin::Relation &lt; Noosfero::Plugin::ActiveRecord
7 7 validate :no_cyclical_reference, :if => 'parent.present? && child.present?'
8 8 validate :no_multi_level, :if => 'parent.present? && child.present?'
9 9  
  10 + attr_accessible :parent, :child
  11 +
10 12 def no_self_reference
11 13 errors.add(:child, _('self-reference is not allowed.')) if parent == child
12 14 end
13 15  
14 16 def no_cyclical_reference
15   - if self.class.children(child).include?(parent)
  17 + if Organization.children(child).include?(parent)
16 18 errors.add(:child, _('cyclical reference is not allowed.'))
17 19 end
18 20 end
19 21  
20 22 def no_multi_level
21   - if self.class.parents(parent).present? || self.class.children(child).present?
  23 + if Organization.parents(parent).present? || Organization.children(child).present?
22 24 errors.add(:child, _('multi-level paternity is not allowed.'))
23 25 end
24 26 end
25 27  
26 28 class << self
27   - def children(parent)
28   - options = {
29   - :select => "profiles.*",
30   - :joins => "inner join sub_organizations_plugin_relations as relations on profiles.id=relations.child_id",
31   - :conditions => ["relations.parent_id = ?", parent.id]
32   - }
33   - ActiveRecord::NamedScope::Scope.new(Organization, options)
34   - end
35   -
36   - def parents(*children)
37   - options = {
38   - :select => "profiles.*",
39   - :joins => "inner join sub_organizations_plugin_relations as relations on profiles.id=relations.parent_id",
40   - :conditions => ["relations.child_id in (?)", children.map(&:id)]
41   - }
42   - ActiveRecord::NamedScope::Scope.new(Organization, options)
43   - end
44   -
45 29 def add_children(parent, *children)
46 30 children.each {|child| create!(:parent => parent, :child => child)}
47 31 end
... ...
plugins/sub_organizations/test/functional/sub_organizations_plugin_myprofile_controller_test.rb
... ... @@ -60,7 +60,7 @@ class SubOrganizationsPluginMyprofileControllerTest &lt; ActionController::TestCase
60 60  
61 61 post :index, :profile => organization.identifier, :q => [org2,org3,org4].map(&:id).join(',')
62 62  
63   - children = SubOrganizationsPlugin::Relation.children(organization)
  63 + children = Organization.children(organization)
64 64 assert_not_includes children, org1
65 65 assert_includes children, org2
66 66 assert_not_includes children, org3
... ... @@ -68,7 +68,7 @@ class SubOrganizationsPluginMyprofileControllerTest &lt; ActionController::TestCase
68 68  
69 69 SubOrganizationsPlugin::ApprovePaternity.all.map(&:finish)
70 70  
71   - children = SubOrganizationsPlugin::Relation.children(organization)
  71 + children = Organization.children(organization)
72 72 assert_not_includes children, org1
73 73 assert_includes children, org2
74 74 assert_includes children, org3
... ... @@ -80,10 +80,10 @@ class SubOrganizationsPluginMyprofileControllerTest &lt; ActionController::TestCase
80 80 org2 = fast_create(Organization)
81 81 org2.add_admin(person)
82 82  
83   - assert_difference SubOrganizationsPlugin::ApprovePaternity, :count, 1 do
  83 + assert_difference 'SubOrganizationsPlugin::ApprovePaternity.count', 1 do
84 84 post :index, :profile => organization.identifier, :q => [org1,org2].map(&:id).join(',')
85 85 end
86   - assert_includes SubOrganizationsPlugin::Relation.children(organization), org2
  86 + assert_includes Organization.children(organization), org2
87 87 end
88 88  
89 89 should 'not access index if dont have permission' do
... ... @@ -94,7 +94,7 @@ class SubOrganizationsPluginMyprofileControllerTest &lt; ActionController::TestCase
94 94 get :index, :profile => organization.identifier
95 95  
96 96 assert_response 403
97   - assert_template 'access_denied.rhtml'
  97 + assert_template 'access_denied'
98 98 end
99 99  
100 100 should 'not search organizations if dont have permission' do
... ... @@ -107,7 +107,7 @@ class SubOrganizationsPluginMyprofileControllerTest &lt; ActionController::TestCase
107 107 get :search_organization, :profile => organization.identifier, :q => 'sampl'
108 108  
109 109 assert_response 403
110   - assert_template 'access_denied.rhtml'
  110 + assert_template 'access_denied'
111 111 end
112 112  
113 113 end
... ...
plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_relation_test.rb
... ... @@ -13,7 +13,7 @@ class SubOrganizationsPlugin::ApprovePaternityRelationTest &lt; ActiveSupport::Test
13 13 org2 = fast_create(Organization)
14 14 task = SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org2, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name)
15 15  
16   - assert_equal SubOrganizationsPlugin::ApprovePaternityRelation.parent(task), org1
  16 + assert_equal SubOrganizationsPlugin::ApprovePaternityRelation.parent_approval(task), org1
17 17 end
18 18  
19 19 should 'list pending children' do
... ... @@ -25,8 +25,8 @@ class SubOrganizationsPlugin::ApprovePaternityRelationTest &lt; ActiveSupport::Test
25 25 SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org1, :temp_parent_id => organization.id, :temp_parent_type => organization.class.name)
26 26 SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :target => org2, :temp_parent_id => organization.id, :temp_parent_type => organization.class.name)
27 27  
28   - assert_includes SubOrganizationsPlugin::ApprovePaternityRelation.pending_children(organization), org1
29   - assert_includes SubOrganizationsPlugin::ApprovePaternityRelation.pending_children(organization), org2
30   - assert_not_includes SubOrganizationsPlugin::ApprovePaternityRelation.pending_children(organization), org3
  28 + assert_includes Organization.pending_children(organization), org1
  29 + assert_includes Organization.pending_children(organization), org2
  30 + assert_not_includes Organization.pending_children(organization), org3
31 31 end
32 32 end
... ...
plugins/sub_organizations/test/unit/sub_organizations_plugin/approve_paternity_test.rb
... ... @@ -11,7 +11,7 @@ class SubOrganizationsPlugin::ApprovePaternityTest &lt; ActiveSupport::TestCase
11 11 should 'create relation after creation' do
12 12 org1 = fast_create(Organization)
13 13 org2 = fast_create(Organization)
14   - assert_difference SubOrganizationsPlugin::ApprovePaternityRelation, :count, 1 do
  14 + assert_difference 'SubOrganizationsPlugin::ApprovePaternityRelation.count', 1 do
15 15 SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name, :target => org2)
16 16 end
17 17 end
... ... @@ -21,9 +21,9 @@ class SubOrganizationsPlugin::ApprovePaternityTest &lt; ActiveSupport::TestCase
21 21 org2 = fast_create(Organization)
22 22  
23 23 task = SubOrganizationsPlugin::ApprovePaternity.create!(:requestor => requestor, :temp_parent_id => org1.id, :temp_parent_type => org1.class.name, :target => org2)
24   - assert_not_includes SubOrganizationsPlugin::Relation.children(org1), org2
  24 + assert_not_includes Organization.children(org1), org2
25 25  
26 26 task.finish
27   - assert_includes SubOrganizationsPlugin::Relation.children(org1), org2
  27 + assert_includes Organization.children(org1), org2
28 28 end
29 29 end
... ...
plugins/sub_organizations/test/unit/sub_organizations_plugin/ext/organization.rb
... ... @@ -13,11 +13,11 @@ class OrganizationTest &lt; ActiveSupport::TestCase
13 13  
14 14 should 'relate organization with parent if the attribute is set' do
15 15 parent = fast_create(Organization)
16   - organization = Organization.new(:identifier => 'some-org',:name => 'Some Org', :sub_organizations_plugin_parent_to_be => parent.id)
17   - assert_not_includes SubOrganizationsPlugin::Relation.children(parent), organization
  16 + organization = build(Organization, :identifier => 'some-org',:name => 'Some Org', :sub_organizations_plugin_parent_to_be => parent.id)
  17 + assert_not_includes Organization.children(parent), organization
18 18  
19 19 organization.save!
20   - assert_includes SubOrganizationsPlugin::Relation.children(parent), organization
  20 + assert_includes Organization.children(parent), organization
21 21 end
22 22  
23 23 end
... ...
plugins/sub_organizations/test/unit/sub_organizations_plugin/relation_test.rb
... ... @@ -8,12 +8,12 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
8 8  
9 9 relation.parent = org
10 10 relation.valid?
11   - assert relation.errors.invalid?(:child)
  11 + assert relation.errors.include?(:child)
12 12  
13 13 relation.parent = nil
14 14 relation.child = org
15 15 relation.valid?
16   - assert relation.errors.invalid?(:parent)
  16 + assert relation.errors.include?(:parent)
17 17 end
18 18  
19 19 should 'relate two organizations' do
... ... @@ -27,9 +27,9 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
27 27  
28 28 should 'not allow self relation' do
29 29 org = fast_create(Organization)
30   - relation = SubOrganizationsPlugin::Relation.new(:parent_id => org, :child_id => org)
  30 + relation = SubOrganizationsPlugin::Relation.new(:parent => org, :child => org)
31 31 assert !relation.valid?
32   - assert relation.errors.invalid?(:child)
  32 + assert relation.errors.include?(:child)
33 33 end
34 34  
35 35 should 'be able to retrieve parents of an organization' do
... ... @@ -39,8 +39,8 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
39 39 SubOrganizationsPlugin::Relation.create!(:parent => parent1, :child => child)
40 40 SubOrganizationsPlugin::Relation.create!(:parent => parent2, :child => child)
41 41  
42   - assert_includes SubOrganizationsPlugin::Relation.parents(child), parent1
43   - assert_includes SubOrganizationsPlugin::Relation.parents(child), parent2
  42 + assert_includes Organization.parents(child), parent1
  43 + assert_includes Organization.parents(child), parent2
44 44 end
45 45  
46 46 should 'be able to retrieve children of an organization' do
... ... @@ -50,8 +50,8 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
50 50 SubOrganizationsPlugin::Relation.create!(:parent => parent, :child => child1)
51 51 SubOrganizationsPlugin::Relation.create!(:parent => parent, :child => child2)
52 52  
53   - assert_includes SubOrganizationsPlugin::Relation.children(parent), child1
54   - assert_includes SubOrganizationsPlugin::Relation.children(parent), child2
  53 + assert_includes Organization.children(parent), child1
  54 + assert_includes Organization.children(parent), child2
55 55 end
56 56  
57 57 should 'not allow cyclical reference' do
... ... @@ -61,7 +61,7 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
61 61 relation = SubOrganizationsPlugin::Relation.new(:parent => org2, :child => org1)
62 62  
63 63 assert !relation.valid?
64   - assert relation.errors.invalid?(:child)
  64 + assert relation.errors.include?(:child)
65 65 end
66 66  
67 67 should 'not allow multi-level paternity' do
... ... @@ -73,10 +73,10 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
73 73 r2 = SubOrganizationsPlugin::Relation.new(:parent => org3, :child => org1)
74 74  
75 75 assert !r1.valid?
76   - assert r1.errors.invalid?(:child)
  76 + assert r1.errors.include?(:child)
77 77  
78 78 assert !r2.valid?
79   - assert r2.errors.invalid?(:child)
  79 + assert r2.errors.include?(:child)
80 80 end
81 81  
82 82 should 'add children' do
... ... @@ -86,11 +86,11 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
86 86 org4 = fast_create(Organization)
87 87  
88 88 SubOrganizationsPlugin::Relation.add_children(org1,org2)
89   - assert_includes SubOrganizationsPlugin::Relation.children(org1), org2
  89 + assert_includes Organization.children(org1), org2
90 90  
91 91 SubOrganizationsPlugin::Relation.add_children(org1,org3,org4)
92   - assert_includes SubOrganizationsPlugin::Relation.children(org1), org3
93   - assert_includes SubOrganizationsPlugin::Relation.children(org1), org4
  92 + assert_includes Organization.children(org1), org3
  93 + assert_includes Organization.children(org1), org4
94 94 end
95 95  
96 96 should 'remove children' do
... ... @@ -101,10 +101,10 @@ class SubOrganizationsPlugin::RelationTest &lt; ActiveSupport::TestCase
101 101 SubOrganizationsPlugin::Relation.add_children(org1,org2,org3,org4)
102 102  
103 103 SubOrganizationsPlugin::Relation.remove_children(org1,org2)
104   - assert_not_includes SubOrganizationsPlugin::Relation.children(org1), org2
  104 + assert_not_includes Organization.children(org1), org2
105 105  
106 106 SubOrganizationsPlugin::Relation.remove_children(org1,org3,org4)
107   - assert_not_includes SubOrganizationsPlugin::Relation.children(org1), org3
108   - assert_not_includes SubOrganizationsPlugin::Relation.children(org1), org4
  107 + assert_not_includes Organization.children(org1), org3
  108 + assert_not_includes Organization.children(org1), org4
109 109 end
110 110 end
... ...
plugins/sub_organizations/test/unit/sub_organizations_plugin_test.rb
... ... @@ -29,7 +29,7 @@ class SubOrganizationsTest &lt; ActiveSupport::TestCase
29 29  
30 30 org1_members = plugin.organization_members(org1)
31 31  
32   - assert_equal ActiveRecord::NamedScope::Scope, org1_members.class
  32 + assert_equal ActiveRecord::Relation, org1_members.class
33 33 assert_not_includes org1_members, member1
34 34 assert_includes org1_members, member2
35 35 assert_includes org1_members, member3
... ... @@ -59,7 +59,7 @@ class SubOrganizationsTest &lt; ActiveSupport::TestCase
59 59 person1_memberships = plugin.person_memberships(person1)
60 60 person2_memberships = plugin.person_memberships(person2)
61 61  
62   - assert_equal ActiveRecord::NamedScope::Scope, person1_memberships.class
  62 + assert_equal ActiveRecord::Relation, person1_memberships.class
63 63 assert_includes person1_memberships, org1
64 64 assert_not_includes person1_memberships, org2
65 65 assert_not_includes person1_memberships, org3
... ...
plugins/sub_organizations/views/box_organizer/_related_organizations_block.html.erb 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +<div id='edit-related-organizations-block'>
  2 + <label for="block_organization_type"><%= _('Type of organizations to be displayed') %></label><br/>
  3 + <%= select_tag('block[organization_type]', options_for_select([[_('Both'), 'both'], [_('Community'), 'community'], [_('Enterprise'), 'enterprise']], @block.organization_type)) %>
  4 + <%= labelled_form_field _('Limit of items'), text_field(:block, :limit, :size => 3) %>
  5 + <%= check_box(:block, :prioritize_profiles_with_image) %>
  6 + <label for="block_prioritize_profiles_with_image"><%= _('Prioritize profiles with image') %></label>
  7 +</div>
... ...
plugins/sub_organizations/views/box_organizer/_related_organizations_block.rhtml
... ... @@ -1,7 +0,0 @@
1   -<div id='edit-related-organizations-block'>
2   - <label for="block_organization_type"><%= _('Type of organizations to be displayed') %></label><br/>
3   - <%= select_tag('block[organization_type]', options_for_select([[_('Both'), 'both'], [_('Community'), 'community'], [_('Enterprise'), 'enterprise']], @block.organization_type)) %>
4   - <%= labelled_form_field _('Limit of items'), text_field(:block, :limit, :size => 3) %>
5   - <%= check_box(:block, :prioritize_profiles_with_image) %>
6   - <label for="block_prioritize_profiles_with_image"><%= _('Prioritize profiles with image') %></label>
7   -</div>
plugins/sub_organizations/views/sub_organizations_plugin_myprofile/index.html.erb
... ... @@ -9,10 +9,10 @@
9 9 </ul>
10 10 <% end %>
11 11  
12   -<% form_tag do %>
  12 +<%= form_tag do %>
13 13 <% button_bar do %>
14   - <%= button(:add, __('Create a new sub-community'), :controller => 'memberships', :action => 'new_community', :profile => user.identifier, :sub_organizations_plugin_parent_to_be => profile.id) %>
15   - <%= button :add, __('Register a new sub-enterprise'), :controller => 'enterprise_registration', :sub_organizations_plugin_parent_to_be => profile.id if environment.enabled?('enterprise_registration') %>
  14 + <%= button(:add, _('Create a new sub-community'), :controller => 'memberships', :action => 'new_community', :profile => user.identifier, :sub_organizations_plugin_parent_to_be => profile.id) %>
  15 + <%= button :add, _('Register a new sub-enterprise'), :controller => 'enterprise_registration', :sub_organizations_plugin_parent_to_be => profile.id if environment.enabled?('enterprise_registration') %>
16 16 <% end %>
17 17  
18 18 <p><%= _('Fill in the search field to find the groups that should be added as sub-group of this organization:') %></p>
... ...
plugins/sub_organizations/views/sub_organizations_plugin_profile/_full_related_organizations.html.erb 0 → 100644
... ... @@ -0,0 +1,63 @@
  1 +<% extend SubOrganizationsPlugin::SearchHelper %>
  2 +<div class="related-organizations-list-block">
  3 +
  4 + <h1><%= _("#{profile.name}'s sub-#{organization_type.pluralize}") %></h1>
  5 + <ul>
  6 + <% organizations.each do |organization| %>
  7 + <li class="related-organizations-item">
  8 + <div class="related-organizations-item">
  9 + <div class="related-organizations-item-column-left">
  10 + <%= profile_image_link organization, :big, 'div' %>
  11 + </div>
  12 + <div class="related-organizations-item-column-right">
  13 + <%= link_to_homepage(organization.name, organization.identifier, :class => "search-result-title") %>
  14 + <div class="related-organizations-description">
  15 + <% if organization.description %>
  16 + <% body_stripped = strip_tags(organization.description) %>
  17 + <% elsif organization.home_page and organization.home_page.body %>
  18 + <% body_stripped = strip_tags(organization.home_page.body) %>
  19 + <% end %>
  20 + <%= excerpt(body_stripped, body_stripped.first(3), 200) if body_stripped %>
  21 + </div>
  22 + <div class="related-organizations-region">
  23 + <span class="related-organizations-region-label"><%= _("City") %></span>
  24 + <% if organization.region %>
  25 + <span class="related-organizations-region-name"><%= city_with_state(organization.region) %></span>
  26 + <% elsif organization.city and organization.state %>
  27 + <span class="related-organizations-region-name"><%= "#{organization.city}, #{organization.state}" %></span>
  28 + <% end %>
  29 + </div>
  30 +
  31 + <div class="related-organizations-categorization">
  32 + <% organization.top_level_categorization.each do |parent, children| %>
  33 + <div class="related-organizations-category-<%=parent.id%> related-organizations-category">
  34 + <span class="related-organizations-categorization-parent"><%= parent.name %></span>
  35 + <span class="related-organizations-categorization-children">
  36 + <%= children.collect(&:name).join(', ') %>
  37 + </span>
  38 + </div>
  39 + <% end %>
  40 + </div>
  41 + </div>
  42 +
  43 + <br class="clearfix" />
  44 +
  45 + </div>
  46 + </li>
  47 + <% end %>
  48 + </ul>
  49 +
  50 + <div id='pagination-related-organizations'>
  51 + <%= pagination_links(organizations, {:param_name => 'npage', :page_links => true}) %>
  52 + </div>
  53 +
  54 + <% button_bar(:class => "related-organizations-button-bar") do %>
  55 + <%= button :back, _('Go back'), { :controller => 'profile' } %>
  56 + <%= button :add, _("Add a new #{organization_type}"), :controller => 'sub_organizations_plugin_myprofile', :action => 'index' if logged_in? && user.has_permission?(:edit_profile, profile) && !environment.enabled?("disable_asset_#{organization_type.pluralize}") %>
  57 +
  58 + <% if !@full %>
  59 + <%= button :more, _('View all'), { :controller => 'sub_organizations_plugin_profile', :action => params[:action], :type => organization_type } %>
  60 + <% end %>
  61 + <% end %>
  62 +
  63 +</div>
... ...
plugins/sub_organizations/views/sub_organizations_plugin_profile/_full_related_organizations.rhtml
... ... @@ -1,63 +0,0 @@
1   -<% extend SubOrganizationsPlugin::SearchHelper %>
2   -<div class="related-organizations-list-block">
3   -
4   - <h1><%= __("#{profile.name}'s sub-#{organization_type.pluralize}") %></h1>
5   - <ul>
6   - <% organizations.each do |organization| %>
7   - <li class="related-organizations-item">
8   - <div class="related-organizations-item">
9   - <div class="related-organizations-item-column-left">
10   - <%= profile_image_link organization, :big, 'div' %>
11   - </div>
12   - <div class="related-organizations-item-column-right">
13   - <%= link_to_homepage(organization.name, organization.identifier, :class => "search-result-title") %>
14   - <div class="related-organizations-description">
15   - <% if organization.description %>
16   - <% body_stripped = strip_tags(organization.description) %>
17   - <% elsif organization.home_page and organization.home_page.body %>
18   - <% body_stripped = strip_tags(organization.home_page.body) %>
19   - <% end %>
20   - <%= excerpt(body_stripped, body_stripped.first(3), 200) if body_stripped %>
21   - </div>
22   - <div class="related-organizations-region">
23   - <span class="related-organizations-region-label"><%= _("City") %></span>
24   - <% if organization.region %>
25   - <span class="related-organizations-region-name"><%= city_with_state(organization.region) %></span>
26   - <% elsif organization.city and organization.state %>
27   - <span class="related-organizations-region-name"><%= "#{organization.city}, #{organization.state}" %></span>
28   - <% end %>
29   - </div>
30   -
31   - <div class="related-organizations-categorization">
32   - <% organization.top_level_categorization.each do |parent, children| %>
33   - <div class="related-organizations-category-<%=parent.id%> related-organizations-category">
34   - <span class="related-organizations-categorization-parent"><%= parent.name %></span>
35   - <span class="related-organizations-categorization-children">
36   - <%= children.collect(&:name).join(', ') %>
37   - </span>
38   - </div>
39   - <% end %>
40   - </div>
41   - </div>
42   -
43   - <br class="clearfix" />
44   -
45   - </div>
46   - </li>
47   - <% end %>
48   - </ul>
49   -
50   - <div id='pagination-related-organizations'>
51   - <%= pagination_links(organizations, {:param_name => 'npage', :page_links => true}) %>
52   - </div>
53   -
54   - <% button_bar(:class => "related-organizations-button-bar") do %>
55   - <%= button :back, _('Go back'), { :controller => 'profile' } %>
56   - <%= button :add, __("Add a new #{organization_type}"), :controller => 'sub_organizations_plugin_myprofile', :action => 'index' if logged_in? && user.has_permission?(:edit_profile, profile) && !environment.enabled?("disable_asset_#{organization_type.pluralize}") %>
57   -
58   - <% if !@full %>
59   - <%= button :more, _('View all'), { :controller => 'sub_organizations_plugin_profile', :action => params[:action], :type => organization_type } %>
60   - <% end %>
61   - <% end %>
62   -
63   -</div>
plugins/sub_organizations/views/sub_organizations_plugin_profile/_related_organizations.html.erb 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +<div class="common-profile-list-block">
  2 + <h1><%= _("#{profile.name}'s sub-#{organization_type.pluralize}") %></h1>
  3 +
  4 + <ul class='profile-list'>
  5 + <% organizations.each do |organization| %>
  6 + <%= profile_image_link(organization)%>
  7 + <% end %>
  8 + </ul>
  9 + <% if organizations.length == 0 %>
  10 + <li><%= _("There are no sub-#{organization_type.pluralize} yet. " ) %></li>
  11 + <% end %>
  12 + <% button_bar(:class => "related-organizations-button-bar") do %>
  13 + <%= button :back, _('Go back'), { :controller => 'profile' } %>
  14 + <%= button :add, _("Add a new #{organization_type}"), :controller => 'sub_organizations_plugin_myprofile', :action => 'index' if logged_in? && user.has_permission?(:edit_profile, profile) && !environment.enabled?("disable_asset_#{organization_type.pluralize}") %>
  15 +
  16 + <% if !@full %>
  17 + <%= button :more, _('View all'), { :controller => 'sub_organizations_plugin_profile', :action => params[:action], :type => organization_type } %>
  18 + <% end %>
  19 + <% end %>
  20 +</div>
  21 +<% if @full %>
  22 + <div id='pagination-profiles'>
  23 + <%= pagination_links(organizations, {:param_name => 'npage', :page_links => true}) %>
  24 + </div>
  25 +<% end %>
  26 +<!-- fim class="common-profile-list-block" -->
... ...
plugins/sub_organizations/views/sub_organizations_plugin_profile/_related_organizations.rhtml
... ... @@ -1,27 +0,0 @@
1   -<% extend SubOrganizationsPlugin::ApplicationHelper %>
2   -<div class="common-profile-list-block">
3   - <h1><%= __("#{profile.name}'s sub-#{organization_type.pluralize}") %></h1>
4   -
5   - <ul class='profile-list'>
6   - <% organizations.each do |organization| %>
7   - <%= profile_image_link(organization)%>
8   - <% end %>
9   - </ul>
10   - <% if organizations.length == 0 %>
11   - <li><%= __("There are no sub-#{organization_type.pluralize} yet. " ) %></li>
12   - <% end %>
13   - <% button_bar(:class => "related-organizations-button-bar") do %>
14   - <%= button :back, _('Go back'), { :controller => 'profile' } %>
15   - <%= button :add, __("Add a new #{organization_type}"), :controller => 'sub_organizations_plugin_myprofile', :action => 'index' if logged_in? && user.has_permission?(:edit_profile, profile) && !environment.enabled?("disable_asset_#{organization_type.pluralize}") %>
16   -
17   - <% if !@full %>
18   - <%= button :more, _('View all'), { :controller => 'sub_organizations_plugin_profile', :action => params[:action], :type => organization_type } %>
19   - <% end %>
20   - <% end %>
21   -</div>
22   -<% if @full %>
23   - <div id='pagination-profiles'>
24   - <%= pagination_links(organizations, {:param_name => 'npage', :page_links => true}) %>
25   - </div>
26   -<% end %>
27   -<!-- fim class="common-profile-list-block" -->
plugins/sub_organizations/views/sub_organizations_plugin_profile/related_organizations.html.erb 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +<% extend SubOrganizationsPlugin::SearchHelper %>
  2 +<% extend SubOrganizationsPlugin::RelationHelper %>
  3 +
  4 +<div id="search-actions">
  5 + <%= display_selectors(params[:display]) %>
  6 +</div>
  7 +
  8 +<% if params[:type] == 'community' %>
  9 + <%= display_relation(@communities,params[:type],params[:display]) %>
  10 +<% end %>
  11 +
  12 +<% if params[:type] == 'enterprise' %>
  13 + <%= display_relation(@enterprises,params[:type],params[:display]) %>
  14 +<% end %>
  15 +
  16 +<% if ["full"].include?(params[:display]) and !params[:type] %>
  17 + <%= display_relation(@total,"organizations",params[:display]) %>
  18 +<% elsif !params[:type] %>
  19 + <%= display_relation(@communities,"community",params[:display]) %>
  20 + <%= display_relation(@enterprises,"enterprise",params[:display]) %>
  21 +<% end %>
... ...
plugins/sub_organizations/views/sub_organizations_plugin_profile/related_organizations.rhtml
... ... @@ -1,21 +0,0 @@
1   -<% extend SubOrganizationsPlugin::SearchHelper %>
2   -<% extend SubOrganizationsPlugin::RelationHelper %>
3   -
4   -<div id="search-actions">
5   - <%= display_selectors(params[:display]) %>
6   -</div>
7   -
8   -<% if params[:type] == 'community' %>
9   - <%= display_relation(@communities,params[:type],params[:display]) %>
10   -<% end %>
11   -
12   -<% if params[:type] == 'enterprise' %>
13   - <%= display_relation(@enterprises,params[:type],params[:display]) %>
14   -<% end %>
15   -
16   -<% if ["full"].include?(params[:display]) and !params[:type] %>
17   - <%= display_relation(@total,"organizations",params[:display]) %>
18   -<% elsif !params[:type] %>
19   - <%= display_relation(@communities,"community",params[:display]) %>
20   - <%= display_relation(@enterprises,"enterprise",params[:display]) %>
21   -<% end %>