Commit b899b03b8b05fee8fb32688263b60e604dac3d5c
1 parent
e999d703
Exists in
master
and in
79 other branches
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 < 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 < 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 < 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 | ... | ... |