Commit 15a66159b6989ce6eb154fd9deed7160b9b8af12
Committed by
Thiago Ribeiro
1 parent
53ef4b90
Exists in
master
and in
51 other branches
Gov User plugin rating improvements
- Adds message to warn that a rating has an institution with active ratings - Adds one hotspot to insert content on ratings task and another one to ratings container (used on ratings page and ratings block) - Adds number_to_human method to get better visualization for numbers - Makes the software tasks page closer to the prototype (changes in the divs, sizes and aligns). Signed-off-by: Dylan Guedes <djmgguedes@gmail.com> Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com> Signed-off-by: Gustavo Coelho <gust.rod.coelho@gmail.com> Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com> Signed-off-by: Pedro de Lyra <pedrodelyra@gmail.com> Signed-off-by: Tallys Martins <tallysmartins@gmail.com> Signed-off-by: Thiago Ribeiro <thiagitosouza@gmail.com>
Showing
10 changed files
with
113 additions
and
20 deletions
Show diff stats
src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb
... | ... | @@ -111,7 +111,7 @@ class GovUserPluginController < ApplicationController |
111 | 111 | params[:community] ||= {} |
112 | 112 | params[:institutions] ||= {} |
113 | 113 | |
114 | - @show_sisp_field = environment.admins.include?(current_user.person) | |
114 | + @show_sisp_field = user.is_admin? | |
115 | 115 | @governmental_sphere = get_governmental_spheres() |
116 | 116 | @governmental_power = get_governmental_powers() |
117 | 117 | @juridical_nature = get_juridical_natures() |
... | ... | @@ -209,7 +209,7 @@ class GovUserPluginController < ApplicationController |
209 | 209 | |
210 | 210 | def add_environment_admins_to_institution institution |
211 | 211 | edit_page = params[:edit_institution_page] == false |
212 | - if environment.admins.include?(current_user.person) && edit_page | |
212 | + if user.is_admin? && edit_page | |
213 | 213 | environment.admins.each do |adm| |
214 | 214 | institution.community.add_admin(adm) |
215 | 215 | end | ... | ... |
src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb
... | ... | @@ -5,7 +5,7 @@ class GovUserPluginMyprofileController < MyProfileController |
5 | 5 | end |
6 | 6 | |
7 | 7 | def edit_institution |
8 | - @show_sisp_field = environment.admins.include?(current_user.person) | |
8 | + @show_sisp_field = user.is_admin? | |
9 | 9 | @state_list = NationalRegion.find( |
10 | 10 | :all, |
11 | 11 | :conditions => { :national_region_type_id => 2 }, | ... | ... |
src/noosfero-spb/gov_user/features/rate_community.feature
0 → 100644
... | ... | @@ -0,0 +1,61 @@ |
1 | +Feature: rate_community | |
2 | + As an admin | |
3 | + I want to see a warning in the task if a software already has a rating related to an specific institution | |
4 | + So it will be clear when the saved value will be updated | |
5 | + | |
6 | + Background: | |
7 | + Given the environment domain is "localhost" | |
8 | + And "OrganizationRatings" plugin is enabled | |
9 | + And "SoftwareCommunities" plugin is enabled | |
10 | + And "GovUser" plugin is enabled | |
11 | + And I am logged in as mpog_admin | |
12 | + And I go to /admin/plugins | |
13 | + And I check "Organization Ratings" | |
14 | + And I check "GovUserPlugin" | |
15 | + And I check "SoftwareCommunitiesPlugin" | |
16 | + And I press "Save changes" | |
17 | + And the following user | |
18 | + | login | name | | |
19 | + | joaosilva | Joao Silva | | |
20 | + And the following softwares | |
21 | + | name | public_software | finality | | |
22 | + | mycommunity | true | basic software finality | | |
23 | + | anothercommunity | true | basic software finality | | |
24 | + And the following blocks | |
25 | + | owner | type | | |
26 | + | mycommunity | OrganizationRatingsBlock | | |
27 | + And Institutions has initial default values on database | |
28 | + And the following public institutions | |
29 | + | name | acronym | country | state | city | cnpj | juridical_nature | governmental_power | governmental_sphere | corporate_name | | |
30 | + | Ministerio das Cidades | MC | BR | DF | Gama | 58.745.189/0001-21 | Autarquia | Executivo | Federal | Ministerio das Cidades | | |
31 | + | Ministerio do Planejamento | MP | BR | DF | Brasilia | 41.769.591/0001-43 | Autarquia | Judiciario | Federal | Ministerio do Planejamento | | |
32 | + | |
33 | + Scenario: display message on task when a rating with the same institution exists on the same software | |
34 | + Given the following organization ratings | |
35 | + | value | organization_name | user_login | institution_name | task_status | | |
36 | + | 5 | mycommunity | joaosilva | Ministerio das Cidades | 3 | | |
37 | + | 4 | mycommunity | joaosilva | Ministerio das Cidades | 1 | | |
38 | + And I go to mycommunity's control panel | |
39 | + And I follow "Process requests" within ".pending-tasks" | |
40 | + And I choose "Accept" within ".task_decisions" | |
41 | + Then I should see "This instiution already has an accepted rating" in the page | |
42 | + | |
43 | + Scenario: do not display message on task when a rating with the same institution does not exist on the same software | |
44 | + Given the following organization ratings | |
45 | + | value | organization_name | user_login | institution_name | task_status | | |
46 | + | 5 | mycommunity | joaosilva | Ministerio das Cidades | 3 | | |
47 | + | 4 | mycommunity | joaosilva | Ministerio do Planejamento | 1 | | |
48 | + And I go to mycommunity's control panel | |
49 | + And I follow "Process requests" within ".pending-tasks" | |
50 | + And I choose "Accept" within ".task_decisions" | |
51 | + Then I should not see "This instiution already has an accepted rating" within ".task_box" | |
52 | + | |
53 | + Scenario: do not display message on task when a rating with the same institution exist on different softwares | |
54 | + Given the following organization ratings | |
55 | + | value | organization_name | user_login | institution_name | task_status | | |
56 | + | 5 | mycommunity | joaosilva | Ministerio das Cidades | 3 | | |
57 | + | 4 | anothercommunity | joaosilva | Ministerio das Cidades | 1 | | |
58 | + And I go to anothercommunity's control panel | |
59 | + And I follow "Process requests" within ".pending-tasks" | |
60 | + And I choose "Accept" within ".task_decisions" | |
61 | + Then I should not see "This instiution already has an accepted rating" within ".task_box" | ... | ... |
src/noosfero-spb/gov_user/lib/gov_user_plugin.rb
... | ... | @@ -54,9 +54,7 @@ class GovUserPlugin < Noosfero::Plugin |
54 | 54 | def profile_editor_controller_filters |
55 | 55 | block = proc do |
56 | 56 | if request.post? && params[:institution] |
57 | - is_admin = environment.admins.include?(current_user.person) | |
58 | - | |
59 | - unless is_admin | |
57 | + unless user.is_admin? | |
60 | 58 | institution = profile.user.institutions |
61 | 59 | |
62 | 60 | if !params[:institution].blank? && params[:institution].class == Hash && !params[:institution][:sisp].nil? |
... | ... | @@ -241,16 +239,30 @@ class GovUserPlugin < Noosfero::Plugin |
241 | 239 | Proc::new do render :file => 'ratings_extra_field' end |
242 | 240 | end |
243 | 241 | |
244 | - def organization_ratings_plugin_extra_fields_show_data user_rating | |
242 | + def organization_ratings_plugin_task_extra_fields user_rating | |
243 | + gov_user_self = self | |
244 | + | |
245 | + Proc::new { | |
246 | + if logged_in? | |
247 | + is_admin = user.is_admin? || user_rating.organization.is_admin?(user) | |
248 | + | |
249 | + if is_admin and gov_user_self.context.profile.software? | |
250 | + render :file => 'organization_ratings_task_extra_fields_show_institution', | |
251 | + :locals => {:user_rating => user_rating} | |
252 | + end | |
253 | + end | |
254 | + } | |
255 | + end | |
256 | + | |
257 | + def organization_ratings_plugin_container_extra_fields user_rating | |
245 | 258 | gov_user_self = self |
246 | 259 | |
247 | 260 | Proc::new { |
248 | 261 | if logged_in? |
249 | - is_admin = environment.admins.include?(current_user.person) | |
250 | - is_admin ||= user_rating.organization.admins.include?(current_user.person) | |
262 | + is_admin = user.is_admin? || user_rating.organization.is_admin?(user) | |
251 | 263 | |
252 | 264 | if is_admin and gov_user_self.context.profile.software? |
253 | - render :file => 'organization_ratings_extra_fields_show_institution', | |
265 | + render :file => 'organization_ratings_container_extra_fields_show_institution', | |
254 | 266 | :locals => {:user_rating => user_rating} |
255 | 267 | end |
256 | 268 | end | ... | ... |
src/noosfero-spb/gov_user/lib/institution.rb
... | ... | @@ -36,6 +36,14 @@ class Institution < ActiveRecord::Base |
36 | 36 | :verify_institution_type, :validate_format_cnpj |
37 | 37 | |
38 | 38 | |
39 | + def has_accepted_rating? user_rating | |
40 | + rating_ids = OrganizationRating.where(institution_id: self.id, organization_id: user_rating.organization_id).map(&:id) | |
41 | + finished_tasks = CreateOrganizationRatingComment.finished.select {|task| rating_ids.include?(task.organization_rating_id)} | |
42 | + pending_tasks = CreateOrganizationRatingComment.pending.select{|c| c.organization_rating_id == user_rating.id} | |
43 | + | |
44 | + !finished_tasks.empty? && !pending_tasks.empty? | |
45 | + end | |
46 | + | |
39 | 47 | protected |
40 | 48 | |
41 | 49 | def verify_institution_type | ... | ... |
src/noosfero-spb/gov_user/test/functional/gov_user_plugin_controller_test.rb
... | ... | @@ -230,7 +230,7 @@ class GovUserPluginControllerTest < ActionController::TestCase |
230 | 230 | fields[:edit_institution_page] = false |
231 | 231 | post :new_institution, fields |
232 | 232 | |
233 | - assert(Institution.last.community.admins.include?(admin2) ) | |
233 | + assert(Institution.last.community.is_admin?(admin2) ) | |
234 | 234 | end |
235 | 235 | |
236 | 236 | end | ... | ... |
src/noosfero-spb/gov_user/test/functional/profile_editor_controller_test.rb
src/noosfero-spb/gov_user/views/organization_ratings_container_extra_fields_show_institution.html.erb
0 → 100644
src/noosfero-spb/gov_user/views/organization_ratings_extra_fields_show_institution.html.erb
src/noosfero-spb/gov_user/views/organization_ratings_task_extra_fields_show_institution.html.erb
0 → 100644
... | ... | @@ -0,0 +1,13 @@ |
1 | +<% if user_rating.institution %> | |
2 | +<div class="aditional-informations"> | |
3 | + <div class="comments-user-institution"> | |
4 | + <span><%=_("Institution")%> :</span> <%= user_rating.institution.name %> | |
5 | + </div> | |
6 | + | |
7 | + <% if user_rating.institution.has_accepted_rating?(user_rating) %> | |
8 | + <div class=""> | |
9 | + <span><%=_("This instiution already has an accepted rating. Accepting it will automatically update the saved value.") %></span> | |
10 | + </div> | |
11 | + <% end %> | |
12 | +</div> | |
13 | +<% end %> | ... | ... |