From b899b03b8b05fee8fb32688263b60e604dac3d5c Mon Sep 17 00:00:00 2001 From: David Carlos Date: Thu, 18 Dec 2014 10:29:24 -0200 Subject: [PATCH] Decrease mpog_software_plugin block complexity. --- lib/mpog_software_plugin.rb | 57 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/lib/mpog_software_plugin.rb b/lib/mpog_software_plugin.rb index 9161691..353dfee 100644 --- a/lib/mpog_software_plugin.rb +++ b/lib/mpog_software_plugin.rb @@ -71,17 +71,9 @@ class MpogSoftwarePlugin < Noosfero::Plugin end def profile_tabs - if context.profile.community? && context.profile.software? - { :title => _("Software"), - :id => 'mpog-fields', - :content => Proc::new do render :partial => 'software_tab' end, - :start => true } - elsif context.profile.community? && context.profile.institution? - { :title => _("Institution"), - :id => 'mpog-fields', - :content => Proc::new do render :partial => 'institution_tab' end, - :start => true - } + if context.profile.community? + return profile_tabs_software if context.profile.software? + profile_tabs_institution end end @@ -396,18 +388,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin end end - leave_communities = (old_communities - new_communities) - enter_communities = (new_communities - old_communities) - - leave_communities.each do |community| - community.remove_member(user.person) - user.institutions.delete(community.institution) - end - - enter_communities.each do |community| - community.add_member(user.person) - user.institutions << community.institution - end + manage_user_institutions(user, leave_communities, enter_communities) end def show_sisp_field @@ -457,4 +438,34 @@ class MpogSoftwarePlugin < Noosfero::Plugin } } end + + def manage_user_institutions(leave_communities,enter_communities) + leave_communities = (old_communities - new_communities) + enter_communities = (new_communities - old_communities) + + leave_communities.each do |community| + community.remove_member(user.person) + user.institutions.delete(community.institution) + end + + enter_communities.each do |community| + community.add_member(user.person) + user.institutions << community.institution + end + end + + def profile_tabs_software + { :title => _("Software"), + :id => 'mpog-fields', + :content => Proc::new do render :partial => 'software_tab' end, + :start => true } + end + + def profile_tabs_institution + { :title => _("Institution"), + :id => 'mpog-fields', + :content => Proc::new do render :partial => 'institution_tab' end, + :start => true + } + end end -- libgit2 0.21.2