From e45cbbf7a5131039e7bbb7d5e6740dee58af8d79 Mon Sep 17 00:00:00 2001 From: Gabriela Navarro Date: Tue, 14 Oct 2014 12:45:54 +0000 Subject: [PATCH] Edit specific software information --- controllers/mpog_software_plugin_myprofile_controller.rb | 81 ++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------- db/migrate/20141013193939_add_repository_link_to_software.rb | 9 +++++++++ lib/software_info.rb | 3 +-- views/mpog_software_plugin_myprofile/_main_software_editor_extras.html.erb | 4 ++-- views/mpog_software_plugin_myprofile/_public_software_info.html.erb | 103 +++++++++++++++++++++++-------------------------------------------------------------------------------- 5 files changed, 83 insertions(+), 117 deletions(-) create mode 100644 db/migrate/20141013193939_add_repository_link_to_software.rb diff --git a/controllers/mpog_software_plugin_myprofile_controller.rb b/controllers/mpog_software_plugin_myprofile_controller.rb index 9f07cf7..ad1ca01 100644 --- a/controllers/mpog_software_plugin_myprofile_controller.rb +++ b/controllers/mpog_software_plugin_myprofile_controller.rb @@ -66,48 +66,63 @@ class MpogSoftwarePluginMyprofileController < MyProfileController end def edit_software - - @list_libraries = LibraryHelper.list_libraries(params[:library]) - @list_languages = SoftwareLanguageHelper.list_language(params[:language]) - @list_databases = DatabaseHelper.list_database(params[:database]) - @software_categories = SoftwareCategories::new params[:software_categories] - @list_operating_systems = OperatingSystemHelper.list_operating_system(params[:operating_system]) - - - if not @list_libraries.nil? - @list_libraries.each do |library| - @software_info.libraries << library + @software_info = @profile.software_info + @list_libraries = @software_info.libraries + @list_databases = @software_info.software_databases + @list_languages = @software_info.software_languages + @list_operating_systems = @software_info.operating_systems + @software_categories = @software_info.software_categories + @software_categories = SoftwareCategories.new if @software_categories.blank? + if request.post? + @software_info = SoftwareInfo.find(Community.where(:name => params[:name]).first.software_info.id) + @license = LicenseInfo.find(params[:license][:license_infos_id]) + @software_info.license_info = @license + @software_info.update_attributes(params[:software]) + + @list_libraries = LibraryHelper.list_libraries(params[:library]) + @list_languages = SoftwareLanguageHelper.list_language(params[:language]) + @list_databases = DatabaseHelper.list_database(params[:database]) + @software_categories = SoftwareCategories::new params[:software_categories] + @list_operating_systems = OperatingSystemHelper.list_operating_system(params[:operating_system]) + + @software_info.software_categories = @software_categories + + if not @list_libraries.nil? + @software_info.libraries.destroy_all + @list_libraries.each do |library| + @software_info.libraries << library + end end - end - if not @list_languages.nil? - @list_languages.each do |language| - @software_info.software_languages << language + if not @list_languages.nil? + @software_info.software_languages.destroy_all + @list_languages.each do |language| + @software_info.software_languages << language + end end - end - if not @list_databases.nil? - @list_databases.each do |database| - @software_info.software_databases << database + if not @list_databases.nil? + @software_info.software_databases.destroy_all + @list_databases.each do |database| + @software_info.software_databases << database + end end - end - if not @list_operating_systems.nil? - @list_operating_systems.each do |operating_system| - @software_info.operating_systems << operating_system + if not @list_operating_systems.nil? + @software_info.operating_systems.destroy_all + @list_operating_systems.each do |operating_system| + @software_info.operating_systems << operating_system + end end - end - valid_libraries = @list_libraries.empty? || LibraryHelper.valid_list_libraries?(@list_libraries) - valid_database = DatabaseHelper.valid_list_database?(@list_databases) - valid_language = SoftwareLanguageHelper.valid_list_language?(@list_languages) - valid_operating_system = OperatingSystemHelper.valid_list_operating_system?(@list_operating_systems) - valid_software_categories = request.post? && @software_categories.valid? + valid_libraries = @list_libraries.empty? || LibraryHelper.valid_list_libraries?(@list_libraries) + valid_database = DatabaseHelper.valid_list_database?(@list_databases) + valid_language = SoftwareLanguageHelper.valid_list_language?(@list_languages) + valid_operating_system = OperatingSystemHelper.valid_list_operating_system?(@list_operating_systems) + valid_software_categories = request.post? && @software_categories.valid? - if request.post? - #@software_info.update_attributes(params[:software]) - #@software_info.save! + @software_info.save! end end -end \ No newline at end of file +end diff --git a/db/migrate/20141013193939_add_repository_link_to_software.rb b/db/migrate/20141013193939_add_repository_link_to_software.rb new file mode 100644 index 0000000..61c557e --- /dev/null +++ b/db/migrate/20141013193939_add_repository_link_to_software.rb @@ -0,0 +1,9 @@ +class AddRepositoryLinkToSoftware < ActiveRecord::Migration + def up + add_column :software_infos, :repository_link, :string + end + + def down + remove_column :software_infos, :repository_link + end +end diff --git a/lib/software_info.rb b/lib/software_info.rb index db97901..2cd03c0 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -1,6 +1,5 @@ class SoftwareInfo < ActiveRecord::Base - # attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, :operating_platform, :demonstration_url, :acronym, :objectives, :features, :license_infos_id, :community_id, :finality - attr_accessible :finality + attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, :operating_platform, :demonstration_url, :acronym, :objectives, :features, :license_infos_id, :community_id, :finality, :repository_link has_many :libraries, :dependent => :destroy has_many :software_databases diff --git a/views/mpog_software_plugin_myprofile/_main_software_editor_extras.html.erb b/views/mpog_software_plugin_myprofile/_main_software_editor_extras.html.erb index e068a5d..2c739b1 100644 --- a/views/mpog_software_plugin_myprofile/_main_software_editor_extras.html.erb +++ b/views/mpog_software_plugin_myprofile/_main_software_editor_extras.html.erb @@ -14,7 +14,7 @@

<%= _("Licenses") %>

- <%= select_tag(:version, options_for_select(LicenseHelper.getListLicenses.collect{|l| [l.version, l.id]}, :selected => @profile.software_info.license_info.id), :onchange => "get_license_link('version')") %> + <%= select_tag("license[license_infos_id]", options_for_select(LicenseHelper.getListLicenses.collect{|l| [l.version, l.id]}, :selected => @profile.software_info.license_info.id), :onchange => "get_license_link('version')") %>

<%= _("License link") %>

@@ -27,6 +27,6 @@
<%= label_tag "repository_url", _("Link to Repository: ") %> - <%= text_field_tag(:reository_url) %> + <%= text_field_tag("software[repository_link]", @profile.software_info.repository_link) %>
diff --git a/views/mpog_software_plugin_myprofile/_public_software_info.html.erb b/views/mpog_software_plugin_myprofile/_public_software_info.html.erb index 31ac58a..fc743b1 100644 --- a/views/mpog_software_plugin_myprofile/_public_software_info.html.erb +++ b/views/mpog_software_plugin_myprofile/_public_software_info.html.erb @@ -1,66 +1,66 @@

<%= _('Edit software') %>

- <%= label_tag("acronym" ,_("Acronym"), :class=>"formlabel") %> - <%= text_field_tag(:acronym) %> + <%= label_tag(:acronym ,_("Acronym"), :class=>"formlabel") %> + <%= text_field_tag("software[acronym]", @software_info.acronym) %>
<%= label_tag _("Adherent to e-PING ?") %> <%= label_tag "e_ping_true", "Yes" %> - <%= radio_button_tag(:e_ping,true)%> + <%= radio_button_tag("software[e_ping]", true, @software_info.e_ping)%> <%= label_tag "e_ping_false", "No"%> - <%= radio_button_tag(:e_ping,false)%> + <%= radio_button_tag("software[e_ping]", false, !@software_info.e_ping)%>
<%= label_tag _("Adherent to e-MAG ?") %> <%= label_tag "e_mag_true", "Yes"%> - <%= radio_button_tag(:e_mag,true)%> + <%= radio_button_tag("software[e_mag]", true, @software_info.e_mag)%> <%= label_tag "e_mag_false", "No"%> - <%= radio_button_tag(:e_mag,false)%> + <%= radio_button_tag("software[e_mag]", false, !@software_info.e_mag)%>
<%= label_tag _("Adherent to ICP-Brasil ?") %> <%= label_tag "icp_brasil_true", "Yes"%> - <%= radio_button_tag(:icp_brasil,true)%> + <%= radio_button_tag("software[icp_brasil]", true, @software_info.icp_brasil)%> <%= label_tag "icp_brasil_false", "No"%> - <%= radio_button_tag(:icp_brasil,false)%> + <%= radio_button_tag("software[icp_brasil]", false, !@software_info.icp_brasil)%>
<%= label_tag _("Adherent to e-ARQ ?") %> <%= label_tag "e_arq_true", "Yes"%> - <%= radio_button_tag(:e_arq,true)%> + <%= radio_button_tag("software[e_arq]", true, @software_info.e_arq)%> <%= label_tag "e_arq_false", "No"%> - <%= radio_button_tag(:e_arq,false)%> + <%= radio_button_tag("software[e_arq]", false, !@software_info.e_arq)%>
<%= label_tag _("Internacionalizable ?") %> <%= label_tag "intern_true", "Yes" %> - <%= radio_button_tag(:intern,true)%> + <%= radio_button_tag("software[intern]", true, @software_info.intern)%> <%= label_tag "intern_false", "No"%> - <%= radio_button_tag(:intern,false)%> + <%= radio_button_tag("software[intern]", false, !@software_info.intern)%>
<%= label_tag "operating_platform", _("Operating Platform: ") %>
- <%= text_area_tag :operating_platform %> + <%= text_area_tag "software[operating_platform]", @software_info.operating_platform %>
<%= label_tag "objectives", _("Objectives: ")%>
- <%= text_area_tag :objectives %> + <%= text_area_tag "software[objectives]", @software_info.objectives%>
<%= label_tag "features", _("Features: ")%>
- <%= text_area_tag :features %> + <%= text_area_tag "software[features]", @software_info.features %>
@@ -94,69 +94,12 @@

<%= _("Software Categories:") %>

- <%= check_box_tag :administration %> - <%= label_tag :administration, _("Administration") %>
+ <% @software_categories.attributes.each do |k, v| %> + <% if not k == "id" and not k == "software_info_id" %> + <%= check_box_tag "software_categories[#{k}]", "true", !v.blank? %> + <%= label_tag k.to_sym, _("#{k.gsub("_", " ").capitalize}") %>
+ <% puts "="*80, v%> + <% end %> + <% end %> - <%= check_box_tag :agriculture %> - <%= label_tag :agriculture, _("Agriculture") %>
- - <%= check_box_tag :business_and_services %> - <%= label_tag :business_and_services, _("Business_and Services") %>
- - <%= check_box_tag :communication %> - <%= label_tag :communication, _("Communication") %>
- - <%= check_box_tag :culture %> - <%= label_tag :culture, _("Culture") %>
- - <%= check_box_tag :national_defense %> - <%= label_tag :national_defense, _("National Defense") %>
- - <%= check_box_tag :economy_and_finances %> - <%= label_tag :economy_and_finances, _("Economy and Finances") %>
- - <%= check_box_tag :education %> - <%= label_tag :education, _("Education") %>
- - <%= check_box_tag :energy %> - <%= label_tag :energy, _("Energy") %>
- - <%= check_box_tag :sports %> - <%= label_tag :sports, _("Sports") %>
- - <%= check_box_tag :habitation %> - <%= label_tag :habitation, _("Habitation") %>
- - <%= check_box_tag :industry %> - <%= label_tag :industry, _("Industry") %>
- - <%= check_box_tag :environment %> - <%= label_tag :environment, _("Environment") %>
- - <%= check_box_tag :research_and_development %> - <%= label_tag :research_and_development, _("Research and Development") %>
- - <%= check_box_tag :social_security %> - <%= label_tag :social_security, _("Social Security") %>
- - <%= check_box_tag :social_protection %> - <%= label_tag :social_protection, _("Social Protection") %>
- - <%= check_box_tag :sanitation %> - <%= label_tag :sanitation, _("Sanitation") %>
- - <%= check_box_tag :health %> - <%= label_tag :health, _("Health") %>
- - <%= check_box_tag :security_public_order %> - <%= label_tag :security_public_order, _("Security and Public Order") %>
- - <%= check_box_tag :work %> - <%= label_tag :work, _("Work") %>
- - <%= check_box_tag :transportation %> - <%= label_tag :transportation, _("Transportation") %>
- - <%= check_box_tag :urbanism %> - <%= label_tag :urbanism, _("Urbanism") %>
-
\ No newline at end of file +
-- libgit2 0.21.2