Commit decf285d73fd880934034f6c3eec342525d59a10

Authored by Fabio Teixeira
Committed by Gabriela Navarro
1 parent 45943dde

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 => {