diff --git a/app/helpers/forms_helper.rb b/app/helpers/forms_helper.rb index f0d969b..0f71395 100644 --- a/app/helpers/forms_helper.rb +++ b/app/helpers/forms_helper.rb @@ -7,7 +7,7 @@ module FormsHelper def labelled_check_box( human_name, name, value = "1", checked = false, options = {} ) options[:id] ||= 'checkbox-' + FormsHelper.next_id_number - html = options[:add_hidden] == false ? "" : hidden_field_tag(name, '0') + html = options[:add_hidden] == false ? "".html_safe : hidden_field_tag(name, '0') html += check_box_tag( name, value, checked, options ) + content_tag( 'label', human_name, :for => options[:id] ) diff --git a/app/models/concerns/customizable.rb b/app/models/concerns/customizable.rb index a64a68d..f543ba4 100644 --- a/app/models/concerns/customizable.rb +++ b/app/models/concerns/customizable.rb @@ -115,6 +115,14 @@ module Customizable return_list end + def custom_values_hash + hash = {} + self.custom_field_values.includes(:custom_field).each do |cfv| + hash[cfv.custom_field.name.to_sym] = cfv.value + end + hash + end + def save_custom_values parse_custom_values.each(&:save) end diff --git a/app/models/person.rb b/app/models/person.rb index 828b536..09db51e 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -577,7 +577,8 @@ class Person < Profile # by default, all fields are private def public_fields - self.fields_privacy.nil? ? [] : self.fields_privacy.reject{ |k, v| v != 'public' }.keys.map(&:to_s) + (self.fields_privacy.nil? ? [] : self.fields_privacy.reject{ |k, v| v != 'public' }.keys.map(&:to_s) + + self.custom_field_values.includes(:custom_field).reject{ |c| !c.public }.collect{ |f| f.custom_field.name }) end include Noosfero::Gravatar -- libgit2 0.21.2