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 56 valid_database = DatabaseHelper.valid_list_database?(@list_databases)
57 57 valid_language = SoftwareLanguageHelper.valid_list_language?(@list_languages)
58 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 62 @community = Community.create_after_moderation(user, {:environment => environment}.merge(params[:community]), @software_info, @license_info, @software_categories)
63 63  
64 64 unless params[:q].nil?
... ... @@ -87,9 +87,11 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
87 87 @list_operating_systems.each do |os|
88 88 @errors |= os.errors.full_messages
89 89 end
  90 +
90 91 @errors |= @community.errors.full_messages
91 92 @errors |= @software_info.errors.full_messages
92 93 @errors |= @license_info.errors.full_messages
  94 + @errors |= @software_categories.errors.full_messages
93 95 end
94 96 end
95 97  
... ...
lib/software_categories.rb
... ... @@ -7,4 +7,19 @@ class SoftwareCategories &lt; ActiveRecord::Base
7 7 :security_public_order , :work , :transportation , :urbanism
8 8  
9 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 25 end
11 26 \ No newline at end of file
... ...
lib/software_info.rb
... ... @@ -14,8 +14,6 @@ class SoftwareInfo &lt; ActiveRecord::Base
14 14  
15 15 has_one :software_categories
16 16  
17   - validates :software_categories, :presence=>true
18   -
19 17 validates :features, :objectives,
20 18 :presence=>true,
21 19 :length => {
... ...