organization_ratings_plugin.rb
1.57 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
class OrganizationRatingsPlugin < Noosfero::Plugin
include Noosfero::Plugin::HotSpot
def self.plugin_name
"Organization Ratings"
end
def self.plugin_description
_("A plugin that allows you to rate a organization and comment about it.")
end
module Hotspots
def organization_ratings_plugin_comments_extra_fields
nil
end
def organization_ratings_title
nil
end
def organization_ratings_plugin_star_message
nil
end
def organization_ratings_plugin_extra_fields_show_data user_rating
nil
end
end
# Plugin Hotspot to display the average rating
def display_organization_average_rating organization
unless organization.nil?
average_rating = OrganizationRating.average_rating organization.id
Proc::new {
render :file => 'blocks/display_organization_average_rating',
:locals => {
:profile_identifier => organization.identifier,
:average_rating => average_rating
}
}
end
end
def more_comments_count owner
if owner.kind_of?(Environment) then
owner.profiles.sum(:comments_count)
elsif owner.kind_of?(Profile) then
owner.comments_count
else
0
end
end
def self.extra_blocks
{
OrganizationRatingsBlock => {:type => [Enterprise, Community], :position => ['1']},
AverageRatingBlock => {:type => [Enterprise, Community]}
}
end
def stylesheet?
true
end
def js_files
%w(
public/rate.js
public/organization_rating_management.js
)
end
end