diff --git a/controllers/mpog_software_plugin_myprofile_controller.rb b/controllers/mpog_software_plugin_myprofile_controller.rb index 52468bc..f4aafd3 100644 --- a/controllers/mpog_software_plugin_myprofile_controller.rb +++ b/controllers/mpog_software_plugin_myprofile_controller.rb @@ -56,9 +56,9 @@ class MpogSoftwarePluginMyprofileController < MyProfileController 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 valid_software_info && valid_community && valid_libraries && valid_license && valid_language && valid_database && valid_operating_system - + if valid_software_info && valid_community && valid_libraries && valid_license && valid_language && valid_database && valid_operating_system && valid_software_categories @community = Community.create_after_moderation(user, {:environment => environment}.merge(params[:community]), @software_info, @license_info, @software_categories) unless params[:q].nil? @@ -87,9 +87,11 @@ class MpogSoftwarePluginMyprofileController < MyProfileController @list_operating_systems.each do |os| @errors |= os.errors.full_messages end + @errors |= @community.errors.full_messages @errors |= @software_info.errors.full_messages @errors |= @license_info.errors.full_messages + @errors |= @software_categories.errors.full_messages end end diff --git a/lib/software_categories.rb b/lib/software_categories.rb index 2ced887..e7206f9 100644 --- a/lib/software_categories.rb +++ b/lib/software_categories.rb @@ -7,4 +7,19 @@ class SoftwareCategories < ActiveRecord::Base :security_public_order , :work , :transportation , :urbanism belongs_to :software_info + + validate :verify_blank_fields + + def verify_blank_fields + ignore_list = ["id", "software_info_id"] + + fields = self.attribute_names - ignore_list + + one_is_filled = false + fields.each do |field| + one_is_filled = true if self[field] == true + end + + self.errors.add(:base, _("At last one category must be checked")) unless one_is_filled + end end \ No newline at end of file diff --git a/lib/software_info.rb b/lib/software_info.rb index 18384bf..2082338 100644 --- a/lib/software_info.rb +++ b/lib/software_info.rb @@ -14,8 +14,6 @@ class SoftwareInfo < ActiveRecord::Base has_one :software_categories - validates :software_categories, :presence=>true - validates :features, :objectives, :presence=>true, :length => { -- libgit2 0.21.2