Commit b899b03b8b05fee8fb32688263b60e604dac3d5c

Authored by David Silva
1 parent e999d703

Decrease mpog_software_plugin block complexity.

Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Showing 1 changed file with 34 additions and 23 deletions   Show diff stats
lib/mpog_software_plugin.rb
... ... @@ -71,17 +71,9 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
71 71 end
72 72  
73 73 def profile_tabs
74   - if context.profile.community? && context.profile.software?
75   - { :title => _("Software"),
76   - :id => 'mpog-fields',
77   - :content => Proc::new do render :partial => 'software_tab' end,
78   - :start => true }
79   - elsif context.profile.community? && context.profile.institution?
80   - { :title => _("Institution"),
81   - :id => 'mpog-fields',
82   - :content => Proc::new do render :partial => 'institution_tab' end,
83   - :start => true
84   - }
  74 + if context.profile.community?
  75 + return profile_tabs_software if context.profile.software?
  76 + profile_tabs_institution
85 77 end
86 78 end
87 79  
... ... @@ -396,18 +388,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
396 388 end
397 389 end
398 390  
399   - leave_communities = (old_communities - new_communities)
400   - enter_communities = (new_communities - old_communities)
401   -
402   - leave_communities.each do |community|
403   - community.remove_member(user.person)
404   - user.institutions.delete(community.institution)
405   - end
406   -
407   - enter_communities.each do |community|
408   - community.add_member(user.person)
409   - user.institutions << community.institution
410   - end
  391 + manage_user_institutions(user, leave_communities, enter_communities)
411 392 end
412 393  
413 394 def show_sisp_field
... ... @@ -457,4 +438,34 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
457 438 }
458 439 }
459 440 end
  441 +
  442 + def manage_user_institutions(leave_communities,enter_communities)
  443 + leave_communities = (old_communities - new_communities)
  444 + enter_communities = (new_communities - old_communities)
  445 +
  446 + leave_communities.each do |community|
  447 + community.remove_member(user.person)
  448 + user.institutions.delete(community.institution)
  449 + end
  450 +
  451 + enter_communities.each do |community|
  452 + community.add_member(user.person)
  453 + user.institutions << community.institution
  454 + end
  455 + end
  456 +
  457 + def profile_tabs_software
  458 + { :title => _("Software"),
  459 + :id => 'mpog-fields',
  460 + :content => Proc::new do render :partial => 'software_tab' end,
  461 + :start => true }
  462 + end
  463 +
  464 + def profile_tabs_institution
  465 + { :title => _("Institution"),
  466 + :id => 'mpog-fields',
  467 + :content => Proc::new do render :partial => 'institution_tab' end,
  468 + :start => true
  469 + }
  470 + end
460 471 end
... ...