Commit 3b4ec38ffa0cc4c3875bc124c881645204c54a66

Authored by David Silva
1 parent 1eecb40a
Exists in master and in 79 other branches add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

Creates constroy_software method in mpog_software_plugin_myprofile_controller.

  - Create private methods to use it in
    mpog_software_plugin_myprofile_controller actions.

Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
controllers/mpog_software_plugin_myprofile_controller.rb
... ... @@ -6,24 +6,22 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
6 6  
7 7 def edit_institution
8 8 @show_sisp_field = environment.admins.include?(current_user.person)
9   - @state_list = NationalRegion.find(:all, :conditions => { :national_region_type_id => 2 }, :order => 'name')
  9 + @state_list = NationalRegion.find(:all, :conditions =>
  10 + { :national_region_type_id => 2 },
  11 + :order => 'name')
10 12 @institution = @profile.institution
11 13 update_institution if request.post?
12 14 end
13 15  
14 16 def new_software
15   - software_template = Community['software']
16   - if !software_template.blank? && software_template.is_template
17   - params["community"]["template_id"] = software_template.id unless params["community"].blank?
18   - end
19   -
  17 + set_software_as_template
20 18 @community = Community.new(params[:community])
21 19 @community.environment = environment
22 20 @software_info = SoftwareInfo.new(params[:software_info])
23 21 @license_info = if params[:license_info].nil?
24 22 LicenseInfo.new
25 23 else
26   - LicenseInfo.find(:first, :conditions =>["version = ?","#{params[:license_info][:version]}"])
  24 + LicenseInfo.find(:first, :conditions => ["version = ?","#{params[:license_info][:version]}"])
27 25 end
28 26 control_software_creation
29 27 end
... ... @@ -38,7 +36,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
38 36 update_software_atributes
39 37  
40 38 return unless request.post?
41   - constroy_software
  39 + @software_info = constroy_software
42 40 software_info_insert_models.call(@list_libraries, 'libraries')
43 41 software_info_insert_models.call(@list_languages, 'software_languages')
44 42 software_info_insert_models.call(@list_operating_systems, 'operating_systems')
... ... @@ -49,6 +47,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
49 47 redirect_to :controller => 'profile_editor', :action => 'edit'
50 48 else
51 49 redirect_to :controller => 'profile_editor', :action => 'index'
  50 + session[:notice] = _('Software updated sucessefuly')
52 51 end
53 52 rescue ActiveRecord::RecordInvalid => invalid
54 53 end
... ... @@ -117,6 +116,14 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
117 116 @software_info.license_info = @license
118 117 @software_info.update_attributes(params[:software])
119 118  
  119 + create_list_model_helpers
  120 +
  121 + @software_categories = SoftwareCategories::new params[:software_categories]
  122 + @software_info.software_categories = @software_categories unless params[:software_categories].nil?
  123 + @software_info
  124 + end
  125 +
  126 + def create_list_model_helpers
120 127 @list_libraries = LibraryHelper.list_libraries(params[:library])
121 128 @list_languages = SoftwareLanguageHelper.list_language(params[:language])
122 129 @list_databases = DatabaseHelper.list_database(params[:database])
... ... @@ -129,15 +136,10 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
129 136 :environment => environment,
130 137 :name => params[:community][:name],
131 138 :license_info => @license_info }))
132   - unless params[:q].nil?
133   - admins = params[:q].split(/,/).map{ |n| environment.people.find n.to_i }
134 139  
135   - admins.each do |admin|
136   - @community.add_member(admin)
137   - @community.add_admin(admin)
138   - end
139   - end
140   - if !environment.admins.include?(current_user.person)
  140 + add_admin_to_community
  141 +
  142 + if !environment.admins.include?(current_user.person)
141 143 session[:notice] = _('Your new software request will be evaluated by an'\
142 144 'administrator. You will be notified.')
143 145 redirect_to user.admin_url
... ... @@ -156,4 +158,22 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
156 158 @list_operating_systems = @software_info.operating_systems
157 159 @disabled_public_software_field = disabled_public_software_field
158 160 end
  161 +
  162 + def set_software_as_template
  163 + software_template = Community['software']
  164 + software_valid = !software_template.blank? && software_template.is_template && !params['community'].blank?
  165 + if software_valid
  166 + params['community']['template_id'] = software_template.id if software_valid
  167 + end
  168 + end
  169 +
  170 + def add_admin_to_community
  171 + unless params[:q].nil?
  172 + admins = params[:q].split(/,/).map{ |n| environment.people.find n.to_i }
  173 + admins.each do |admin|
  174 + @community.add_member(admin)
  175 + @community.add_admin(admin)
  176 + end
  177 + end
  178 + end
159 179 end
... ...
lib/mpog_software_plugin.rb
... ... @@ -21,7 +21,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
21 21 def profile_editor_extras
22 22 if context.profile.person?
23 23 expanded_template('person_editor_extras.html.erb')
24   - elsif context.profile.respond_to? :software_info &&
  24 + elsif context.profile.respond_to?(:software_info) &&
25 25 !context.profile.software_info.nil?
26 26  
27 27 if context.profile.software_info.first_edit?
... ...