From 5fa4fc17dbcfac17886bd4ffadf76019eb8c9d8d Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Mon, 3 Nov 2014 17:00:36 -0200 Subject: [PATCH] Change public software form - Only environment admin can change a generic software to a public software - Show Adherent fields only to public software --- controllers/mpog_software_plugin_myprofile_controller.rb | 8 ++++++++ db/migrate/20141103180655_add_public_software_field_validation.rb | 9 +++++++++ lib/software_info.rb | 2 +- views/mpog_software_plugin_myprofile/_public_software_info.html.erb | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------- 4 files changed, 76 insertions(+), 50 deletions(-) create mode 100644 db/migrate/20141103180655_add_public_software_field_validation.rb diff --git a/controllers/mpog_software_plugin_myprofile_controller.rb b/controllers/mpog_software_plugin_myprofile_controller.rb index e3d0c5f..54189c7 100644 --- a/controllers/mpog_software_plugin_myprofile_controller.rb +++ b/controllers/mpog_software_plugin_myprofile_controller.rb @@ -79,7 +79,11 @@ class MpogSoftwarePluginMyprofileController < MyProfileController @list_operating_systems = @software_info.operating_systems @software_categories = @software_info.software_categories @software_categories = SoftwareCategories.new if @software_categories.blank? + + @show_public_software_field = show_public_software_field + if request.post? + params[:software][:public_software] ||= false @software_info = @profile.software_info @license = LicenseInfo.find(params[:license][:license_infos_id]) @software_info.license_info = @license @@ -132,4 +136,8 @@ class MpogSoftwarePluginMyprofileController < MyProfileController end end + def show_public_software_field + environment.admins.include?(current_user.person) + end + end diff --git a/db/migrate/20141103180655_add_public_software_field_validation.rb b/db/migrate/20141103180655_add_public_software_field_validation.rb new file mode 100644 index 0000000..563c2ee --- /dev/null +++ b/db/migrate/20141103180655_add_public_software_field_validation.rb @@ -0,0 +1,9 @@ +class AddPublicSoftwareFieldValidation < ActiveRecord::Migration + def up + add_column :software_infos, :public_software, :boolean, :default => false + end + + def down + remove_column :software_infos, :public_software + end +end diff --git a/lib/software_info.rb b/lib/software_info.rb index 92aaf8f..5729690 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -1,5 +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, :repository_link + 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, :public_software has_many :libraries, :dependent => :destroy has_many :software_databases 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 7265fc7..28caeb8 100644 --- a/views/mpog_software_plugin_myprofile/_public_software_info.html.erb +++ b/views/mpog_software_plugin_myprofile/_public_software_info.html.erb @@ -1,57 +1,12 @@

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

- <%= label_tag _("Adherent to e-PING ?") %> - - <%= label_tag "e_ping_true", "Yes" %> - <%= radio_button_tag("software[e_ping]", true, @software_info.e_ping)%> - <%= label_tag "e_ping_false", "No"%> - <%= 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("software[e_mag]", true, @software_info.e_mag)%> - <%= label_tag "e_mag_false", "No"%> - <%= 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("software[icp_brasil]", true, @software_info.icp_brasil)%> - <%= label_tag "icp_brasil_false", "No"%> - <%= 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("software[e_arq]", true, @software_info.e_arq)%> - <%= label_tag "e_arq_false", "No"%> - <%= radio_button_tag("software[e_arq]", false, !@software_info.e_arq)%> -
- -
- <%= label_tag _("Internacionalizable ?") %> - - <%= label_tag "intern_true", "Yes" %> - <%= radio_button_tag("software[intern]", true, @software_info.intern)%> - <%= label_tag "intern_false", "No"%> - <%= radio_button_tag("software[intern]", false, !@software_info.intern)%> -
- -
- <%= label_tag "operating_platform", _("Operating Platform: ") %>
+

<%= _("Operating Platform") %>

<%= text_area_tag "software[operating_platform]", @software_info.operating_platform, :cols => 40, :rows => 5%>
- <%= label_tag "features", _("Features: ")%>
+

<%= _("Features") %>

<%= text_area_tag "software[features]", @software_info.features, :maxlength=>"4000", :cols => 40, :rows => 5%>
@@ -84,6 +39,60 @@
- <%= label_tag(:demonstration_url ,_("Demonstration url:"), :class=>"formlabel") %> - <%= text_field_tag("software[demonstration_url]", @software_info.demonstration_url) %> +

<%= _("Demonstration url") %>

+ <%= text_field_tag("software[demonstration_url]", @software_info.demonstration_url) %> +
+ +
+ <% if @show_public_software_field %> + <%= check_box_tag("software[public_software]", "true", @software_info.public_software?) %> + <%= label_tag _("Public Software"), _("Is a public software") %> + <% end %> + <% if @software_info.public_software? %> +

<%= _("Public Software") %>

+
+ <%= label_tag _("Adherent to e-PING ?") %> + + <%= label_tag "e_ping_true", "Yes" %> + <%= radio_button_tag("software[e_ping]", true, @software_info.e_ping)%> + <%= label_tag "e_ping_false", "No"%> + <%= 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("software[e_mag]", true, @software_info.e_mag)%> + <%= label_tag "e_mag_false", "No"%> + <%= 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("software[icp_brasil]", true, @software_info.icp_brasil)%> + <%= label_tag "icp_brasil_false", "No"%> + <%= 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("software[e_arq]", true, @software_info.e_arq)%> + <%= label_tag "e_arq_false", "No"%> + <%= radio_button_tag("software[e_arq]", false, !@software_info.e_arq)%> +
+ +
+ <%= label_tag _("Internacionalizable ?") %> + + <%= label_tag "intern_true", "Yes" %> + <%= radio_button_tag("software[intern]", true, @software_info.intern)%> + <%= label_tag "intern_false", "No"%> + <%= radio_button_tag("software[intern]", false, !@software_info.intern)%> +
+<% end %>
-- libgit2 0.21.2