Commit 6163bab51cfd369e30c85d8c21ae7fd8bff1d561
1 parent
b899b03b
Exists in
master
and in
79 other branches
Alter mpog_software_plugin based on robocop.
Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Showing
1 changed file
with
103 additions
and
99 deletions
Show diff stats
lib/mpog_software_plugin.rb
... | ... | @@ -11,18 +11,18 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
11 | 11 | include Rails.application.routes.url_helpers |
12 | 12 | |
13 | 13 | def self.plugin_name |
14 | - "MpogSoftwarePlugin" | |
14 | + 'MpogSoftwarePlugin' | |
15 | 15 | end |
16 | 16 | |
17 | 17 | def self.plugin_description |
18 | - _("Add Public Software and MPOG features.") | |
18 | + _('Add Public Software and MPOG features.') | |
19 | 19 | end |
20 | 20 | |
21 | 21 | def profile_editor_extras |
22 | 22 | if context.profile.person? |
23 | 23 | expanded_template('person_editor_extras.html.erb') |
24 | 24 | elsif context.profile.respond_to?(:software_info) && |
25 | - !context.profile.software_info.nil? | |
25 | + !context.profile.software_info.nil? | |
26 | 26 | |
27 | 27 | if context.profile.software_info.first_edit? |
28 | 28 | context.profile.software_info.first_edit = false |
... | ... | @@ -33,16 +33,17 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
33 | 33 | end |
34 | 34 | |
35 | 35 | def profile_editor_transaction_extras |
36 | - single_hash_transactions = {:user => "user", :software_info => "software_info", | |
37 | - :version => "license", :language => "language", | |
38 | - :operating_system => "operating_system", | |
39 | - :software_categories => "software_categories", | |
40 | - :instituton => "instituton", :library => "libraries"} | |
41 | - | |
42 | - single_hash_transactions.each do |model,transaction| | |
43 | - call_model_transaction(model,transaction) | |
44 | - end | |
45 | - | |
36 | + single_hash_transactions = { :user => 'user', | |
37 | + :software_info => 'software_info', | |
38 | + :version => 'license', :language => 'language', | |
39 | + :operating_system => 'operating_system', | |
40 | + :software_categories => 'software_categories', | |
41 | + :instituton => 'instituton', | |
42 | + :library => 'libraries' } | |
43 | + | |
44 | + single_hash_transactions.each do |model, transaction| | |
45 | + call_model_transaction(model, transaction) | |
46 | + end | |
46 | 47 | end |
47 | 48 | |
48 | 49 | def profile_editor_controller_filters |
... | ... | @@ -63,8 +64,8 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
63 | 64 | end |
64 | 65 | |
65 | 66 | [{ |
66 | - :type => "before_filter", | |
67 | - :method_name => "validate_institution_sisp_field_access", | |
67 | + :type => 'before_filter', | |
68 | + :method_name => 'validate_institution_sisp_field_access', | |
68 | 69 | :options => { :only => :edit }, |
69 | 70 | :block => block |
70 | 71 | }] |
... | ... | @@ -72,7 +73,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
72 | 73 | |
73 | 74 | def profile_tabs |
74 | 75 | if context.profile.community? |
75 | - return profile_tabs_software if context.profile.software? | |
76 | + profile_tabs_software if context.profile.software? | |
76 | 77 | profile_tabs_institution |
77 | 78 | end |
78 | 79 | end |
... | ... | @@ -89,14 +90,14 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
89 | 90 | |
90 | 91 | def self.extra_blocks |
91 | 92 | { |
92 | - SoftwaresBlock => {:type => [Environment, Person] }, | |
93 | - SoftwareInformationBlock => {:type => [Community] }, | |
94 | - InstitutionsBlock => {:type => [Environment, Person]}, | |
95 | - DownloadBlock => {:type => [Community]}, | |
96 | - RepositoryBlock => {:type => [Community]}, | |
97 | - CategoriesAndTagsBlock => {:type => [Community]}, | |
98 | - CategoriesSoftwareBlock => {:type => [Environment]}, | |
99 | - SearchCatalogBlock => {:type => [Environment]} | |
93 | + SoftwaresBlock => { :type => [Environment, Person] }, | |
94 | + SoftwareInformationBlock => { :type => [Community] }, | |
95 | + InstitutionsBlock => { :type => [Environment, Person] }, | |
96 | + DownloadBlock => { :type => [Community] }, | |
97 | + RepositoryBlock => { :type => [Community] }, | |
98 | + CategoriesAndTagsBlock => { :type => [Community] }, | |
99 | + CategoriesSoftwareBlock => { :type => [Environment] }, | |
100 | + SearchCatalogBlock => { :type => [Environment] } | |
100 | 101 | } |
101 | 102 | end |
102 | 103 | |
... | ... | @@ -105,7 +106,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
105 | 106 | end |
106 | 107 | |
107 | 108 | def js_files |
108 | - %w[ | |
109 | + %w( | |
109 | 110 | jquery.maskedinput.min.js |
110 | 111 | spb-utils.js |
111 | 112 | mpog-software.js |
... | ... | @@ -116,11 +117,11 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
116 | 117 | mpog-search.js |
117 | 118 | software-catalog.js |
118 | 119 | mpog-software-block.js |
119 | - ] | |
120 | + ) | |
120 | 121 | end |
121 | 122 | |
122 | 123 | def add_new_organization_buttons |
123 | - Proc::new do | |
124 | + proc do | |
124 | 125 | button( |
125 | 126 | :add, |
126 | 127 | _('Create a new software'), |
... | ... | @@ -137,34 +138,18 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
137 | 138 | |
138 | 139 | def profile_blocks_extra_content |
139 | 140 | return if context.session[:user].nil? || |
140 | - !context.session[:hide_incomplete_percentage].blank? | |
141 | - | |
142 | - person = Person.where(:user_id=>context.session[:user]).first | |
143 | - | |
144 | - if context.profile && context.profile.person? && !person.nil? | |
145 | - @person = person | |
146 | - @percentege = calc_percentage_registration(person) | |
141 | + !context.session[:hide_incomplete_percentage].blank? | |
147 | 142 | |
148 | - if @percentege >= 0 && @percentege <= 100 | |
149 | - expanded_template('incomplete_registration.html.erb') | |
150 | - end | |
151 | - end | |
143 | + person = Person.where(:user_id => context.session[:user]).first | |
144 | + puts "="*80,person,"="*80 | |
145 | + call_percentage_profile_template(person) | |
152 | 146 | end |
153 | 147 | |
154 | - def custom_user_registration_attributes user | |
155 | - unless context.params[:user][:institution_ids].nil? | |
156 | - context.params[:user][:institution_ids].delete("") | |
148 | + def custom_user_registration_attributes(user) | |
149 | + return if context.params[:user][:institution_ids].nil? | |
150 | + context.params[:user][:institution_ids].delete('') | |
157 | 151 | |
158 | - context.params[:user][:institution_ids].each do |institution_id| | |
159 | - institution = Institution.find institution_id | |
160 | - user.institutions << institution | |
161 | - | |
162 | - if institution.community.admins.blank? | |
163 | - institution.community.add_admin(user.person) | |
164 | - end | |
165 | - end | |
166 | - end | |
167 | - user.save unless user.institution_ids.empty? | |
152 | + update_user_institutions(user) | |
168 | 153 | |
169 | 154 | user.institutions.each do |institution| |
170 | 155 | community = institution.community |
... | ... | @@ -172,12 +157,12 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
172 | 157 | end |
173 | 158 | end |
174 | 159 | |
175 | - def calc_percentage_registration person | |
160 | + def calc_percentage_registration(person) | |
176 | 161 | required_list = profile_required_list |
177 | 162 | empty_fields = profile_required_empty_list person |
178 | 163 | count = required_list[:person_fields].count + |
179 | 164 | required_list[:user_fields].count |
180 | - percentege = 100 - ((empty_fields.count*100)/count) | |
165 | + percentege = 100 - ((empty_fields.count * 100) / count) | |
181 | 166 | person.percentage_incomplete = percentege |
182 | 167 | person.save(validate: false) |
183 | 168 | percentege |
... | ... | @@ -205,36 +190,31 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
205 | 190 | end |
206 | 191 | |
207 | 192 | def profile_required_list |
208 | - fields = Hash.new | |
209 | - fields[:person_fields] = [ | |
210 | - "cell_phone", | |
211 | - "contact_phone", | |
212 | - "comercial_phone", | |
213 | - "country", | |
214 | - "city", | |
215 | - "state", | |
216 | - "organization_website", | |
217 | - "image", | |
218 | - "identifier", | |
219 | - "name" | |
220 | - ] | |
221 | - fields[:user_fields] = ["secondary_email", "email"] | |
193 | + fields = {} | |
194 | + fields[:person_fields] = %w('cell_phone', | |
195 | + 'contact_phone', | |
196 | + 'comercial_phone', | |
197 | + 'country', | |
198 | + 'city', | |
199 | + 'state', | |
200 | + 'organization_website', | |
201 | + 'image', | |
202 | + 'identifier', | |
203 | + 'name') | |
204 | + | |
205 | + fields[:user_fields] = %w('secondary_email', 'email') | |
222 | 206 | fields |
223 | 207 | end |
224 | 208 | |
225 | - def profile_required_empty_list person | |
209 | + def profile_required_empty_list(person) | |
226 | 210 | empty_fields = [] |
227 | 211 | required_list = profile_required_list |
228 | 212 | |
229 | 213 | required_list[:person_fields].each do |field| |
230 | - if person.send(field).blank? | |
231 | - empty_fields << field.sub("_"," ") | |
232 | - end | |
214 | + empty_fields << field.sub('_',' ') if person.send(field).blank? | |
233 | 215 | end |
234 | 216 | required_list[:user_fields].each do |field| |
235 | - if person.user.send(field).blank? | |
236 | - empty_fields << field.sub("_"," ") | |
237 | - end | |
217 | + empty_fields << field.sub('_',' ') if person.user.send(field).blank? | |
238 | 218 | end |
239 | 219 | empty_fields |
240 | 220 | end |
... | ... | @@ -271,7 +251,8 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
271 | 251 | def institution_transaction |
272 | 252 | institution.date_modification = DateTime.now |
273 | 253 | institution.save |
274 | - institution_models = %w(governmental_power governmental_sphere juridical_nature) | |
254 | + institution_models = %w(governmental_power governmental_sphere | |
255 | + juridical_nature) | |
275 | 256 | |
276 | 257 | institution_models.each do |model| |
277 | 258 | call_institution_transaction(model) |
... | ... | @@ -361,10 +342,10 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
361 | 342 | |
362 | 343 | def software_categories_transaction |
363 | 344 | ControlledVocabulary.transaction do |
364 | - context.profile. | |
365 | - software_info. | |
366 | - software_categories. | |
367 | - update_attributes!(context.params[:software_categories]) | |
345 | + context.profile | |
346 | + .software_info | |
347 | + .software_categories | |
348 | + .update_attributes!(context.params[:software_categories]) | |
368 | 349 | end |
369 | 350 | end |
370 | 351 | |
... | ... | @@ -381,7 +362,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
381 | 362 | |
382 | 363 | new_communities = [] |
383 | 364 | unless context.params[:user][:institution_ids].nil? |
384 | - context.params[:user][:institution_ids].delete("") | |
365 | + context.params[:user][:institution_ids].delete('') | |
385 | 366 | |
386 | 367 | context.params[:user][:institution_ids].each do |id| |
387 | 368 | new_communities << Institution.find(id).community |
... | ... | @@ -397,49 +378,49 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
397 | 378 | end |
398 | 379 | |
399 | 380 | def call_model_transaction(model,name) |
400 | - send(name + '_transaction') if context.params.has_key?(model.to_sym) | |
381 | + send(name + '_transaction') if context.params.key?(model.to_sym) | |
401 | 382 | end |
402 | 383 | |
403 | 384 | def call_institution_transaction(model) |
404 | - context.profile.institution.send(model + '_id = ', context.params[model.to_sym]) | |
385 | + context.profile.institution.send(model + '_id = ', | |
386 | + context.params[model.to_sym]) | |
405 | 387 | context.profile.institution.save! |
406 | 388 | end |
407 | 389 | |
408 | - | |
409 | 390 | def software_info_button |
410 | 391 | { |
411 | - :title => _("Software Info"), | |
412 | - :icon => "edit-profile-group control-panel-software-link", | |
392 | + :title => _('Software Info'), | |
393 | + :icon => 'edit-profile-group control-panel-software-link', | |
413 | 394 | :url => { |
414 | - :controller => "mpog_software_plugin_myprofile", | |
415 | - :action => "edit_software" | |
395 | + :controller => 'mpog_software_plugin_myprofile', | |
396 | + :action => 'edit_software' | |
416 | 397 | } |
417 | 398 | } |
418 | 399 | end |
419 | 400 | |
420 | 401 | def create_new_software_button |
421 | 402 | { |
422 | - :title => _("Create a new software"), | |
423 | - :icon => "design-editor", | |
403 | + :title => _('Create a new software'), | |
404 | + :icon => 'design-editor', | |
424 | 405 | :url => { |
425 | - :controller => "mpog_software_plugin_myprofile", | |
426 | - :action => "new_software" | |
406 | + :controller => 'mpog_software_plugin_myprofile', | |
407 | + :action => 'new_software' | |
427 | 408 | } |
428 | 409 | } |
429 | 410 | end |
430 | 411 | |
431 | 412 | def institution_info_button |
432 | 413 | { |
433 | - :title => _("Institution Info"), | |
434 | - :icon => "edit-profile-group control-panel-instituton-link", | |
414 | + :title => _('Institution Info'), | |
415 | + :icon => 'edit-profile-group control-panel-instituton-link', | |
435 | 416 | :url => { |
436 | - :controller => "mpog_software_plugin_myprofile", | |
437 | - :action => "edit_institution" | |
417 | + :controller => 'mpog_software_plugin_myprofile', | |
418 | + :action => 'edit_institution' | |
438 | 419 | } |
439 | 420 | } |
440 | 421 | end |
441 | 422 | |
442 | - def manage_user_institutions(leave_communities,enter_communities) | |
423 | + def manage_user_institutions(leave_communities, enter_communities) | |
443 | 424 | leave_communities = (old_communities - new_communities) |
444 | 425 | enter_communities = (new_communities - old_communities) |
445 | 426 | |
... | ... | @@ -455,17 +436,40 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
455 | 436 | end |
456 | 437 | |
457 | 438 | def profile_tabs_software |
458 | - { :title => _("Software"), | |
439 | + { :title => _('Software'), | |
459 | 440 | :id => 'mpog-fields', |
460 | - :content => Proc::new do render :partial => 'software_tab' end, | |
441 | + :content => proc do render :partial => 'software_tab' end, | |
461 | 442 | :start => true } |
462 | 443 | end |
463 | 444 | |
464 | 445 | def profile_tabs_institution |
465 | - { :title => _("Institution"), | |
446 | + { :title => _('Institution'), | |
466 | 447 | :id => 'mpog-fields', |
467 | 448 | :content => Proc::new do render :partial => 'institution_tab' end, |
468 | 449 | :start => true |
469 | 450 | } |
470 | 451 | end |
452 | + | |
453 | + def call_percentage_profile_template(person) | |
454 | + if context.profile && context.profile.person? && !person.nil? | |
455 | + @person = person | |
456 | + @percentege = calc_percentage_registration(person) | |
457 | + | |
458 | + if @percentege >= 0 && @percentege <= 100 | |
459 | + expanded_template('incomplete_registration.html.erb') | |
460 | + end | |
461 | + end | |
462 | + end | |
463 | + | |
464 | + def update_user_institutions(user) | |
465 | + context.params[:user][:institution_ids].each do |institution_id| | |
466 | + institution = Institution.find institution_id | |
467 | + user.institutions << institution | |
468 | + | |
469 | + if institution.community.admins.blank? | |
470 | + institution.community.add_admin(user.person) | |
471 | + end | |
472 | + end | |
473 | + user.save unless user.institution_ids.empty? | |
474 | + end | |
471 | 475 | end | ... | ... |