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 @@
- <%= 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