Browse Source

Update user custom field handling

Angus McLeod 7 years ago
parent
commit
ce1cbd5e8c

+ 2 - 1
assets/javascripts/discourse/templates/components/wizard-custom-action.hbs

@@ -180,6 +180,7 @@
                           valueContent=profileFields
                           keyContent=availableFields
                           noneValue='admin.wizard.action.update_profile.profile_field'
-                          optionalCustom=true}}      
+                          optionalCustom=true
+                          inputValue='admin.wizard.action.update_profile.custom_field'}}      
   </div>
 {{/if}}

+ 1 - 0
config/locales/client.en.yml

@@ -105,6 +105,7 @@ en:
           update_profile:
             label: "Update Profile"
             profile_field: "Profile Field"
+            custom_field: "User Custom Field"
           post_builder:
             checkbox: "Post Builder"
             label: "Builder"

+ 4 - 6
lib/builder.rb

@@ -82,8 +82,7 @@ class CustomWizard::Builder
                       attribute = update['value']
                       custom_field = update['value_custom']
                       if custom_field
-                        name = custom_field.split('.').try(:last) || nil
-                        params[:value] = UserCustomField.where(user_id: @wizard.user.id, name: name).pluck(:value)
+                        params[:value] = UserCustomField.where(user_id: @wizard.user.id, name: custom_field).pluck(:value)
                       elsif UserProfile.column_names.include? attribute
                         params[:value] = UserProfile.find_by(user_id: @wizard.user.id).send(attribute)
                       elsif User.column_names.include? attribute
@@ -294,12 +293,11 @@ class CustomWizard::Builder
 
                   a['profile_updates'].each do |pu|
                     value = pu['value']
-                    custom_value = pu['value_custom']
+                    custom_field = pu['value_custom']
                     key = pu['key']
 
-                    if custom_value
-                      name = custom_value.split('.').try(:last) || nil
-                      custom_fields[name] = data[key]
+                    if custom_field
+                      custom_fields[custom_field] = data[key]
                     else
                       attributes[value.to_sym] = data[key]
                     end