Commit decf285d73fd880934034f6c3eec342525d59a10

Authored by Fabio Teixeira
Committed by Gabriela Navarro
1 parent 45943dde
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

Added errors messages from software categories on new software page

(correcoes_aderencia)

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
controllers/mpog_software_plugin_myprofile_controller.rb
@@ -56,9 +56,9 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController @@ -56,9 +56,9 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
56 valid_database = DatabaseHelper.valid_list_database?(@list_databases) 56 valid_database = DatabaseHelper.valid_list_database?(@list_databases)
57 valid_language = SoftwareLanguageHelper.valid_list_language?(@list_languages) 57 valid_language = SoftwareLanguageHelper.valid_list_language?(@list_languages)
58 valid_operating_system = OperatingSystemHelper.valid_list_operating_system?(@list_operating_systems) 58 valid_operating_system = OperatingSystemHelper.valid_list_operating_system?(@list_operating_systems)
  59 + valid_software_categories = request.post? && @software_categories.valid?
59 60
60 - if valid_software_info && valid_community && valid_libraries && valid_license && valid_language && valid_database && valid_operating_system  
61 - 61 + if valid_software_info && valid_community && valid_libraries && valid_license && valid_language && valid_database && valid_operating_system && valid_software_categories
62 @community = Community.create_after_moderation(user, {:environment => environment}.merge(params[:community]), @software_info, @license_info, @software_categories) 62 @community = Community.create_after_moderation(user, {:environment => environment}.merge(params[:community]), @software_info, @license_info, @software_categories)
63 63
64 unless params[:q].nil? 64 unless params[:q].nil?
@@ -87,9 +87,11 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController @@ -87,9 +87,11 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
87 @list_operating_systems.each do |os| 87 @list_operating_systems.each do |os|
88 @errors |= os.errors.full_messages 88 @errors |= os.errors.full_messages
89 end 89 end
  90 +
90 @errors |= @community.errors.full_messages 91 @errors |= @community.errors.full_messages
91 @errors |= @software_info.errors.full_messages 92 @errors |= @software_info.errors.full_messages
92 @errors |= @license_info.errors.full_messages 93 @errors |= @license_info.errors.full_messages
  94 + @errors |= @software_categories.errors.full_messages
93 end 95 end
94 end 96 end
95 97
lib/software_categories.rb
@@ -7,4 +7,19 @@ class SoftwareCategories &lt; ActiveRecord::Base @@ -7,4 +7,19 @@ class SoftwareCategories &lt; ActiveRecord::Base
7 :security_public_order , :work , :transportation , :urbanism 7 :security_public_order , :work , :transportation , :urbanism
8 8
9 belongs_to :software_info 9 belongs_to :software_info
  10 +
  11 + validate :verify_blank_fields
  12 +
  13 + def verify_blank_fields
  14 + ignore_list = ["id", "software_info_id"]
  15 +
  16 + fields = self.attribute_names - ignore_list
  17 +
  18 + one_is_filled = false
  19 + fields.each do |field|
  20 + one_is_filled = true if self[field] == true
  21 + end
  22 +
  23 + self.errors.add(:base, _("At last one category must be checked")) unless one_is_filled
  24 + end
10 end 25 end
11 \ No newline at end of file 26 \ No newline at end of file
lib/software_info.rb
@@ -14,8 +14,6 @@ class SoftwareInfo &lt; ActiveRecord::Base @@ -14,8 +14,6 @@ class SoftwareInfo &lt; ActiveRecord::Base
14 14
15 has_one :software_categories 15 has_one :software_categories
16 16
17 - validates :software_categories, :presence=>true  
18 -  
19 validates :features, :objectives, 17 validates :features, :objectives,
20 :presence=>true, 18 :presence=>true,
21 :length => { 19 :length => {