@@ -37,18 +37,20 @@ def create_host_platform # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
3737 mark_current_step_as_completed
3838 wizard . reload
3939 determine_wizard_outcome
40- else
41- flash . now [ :alert ] = t ( '.flash.please_address_errors' )
42- render wizard_step_definition . template
40+ return
4341 end
4442 end
45- else
46- flash . now [ :alert ] = t ( '.flash.please_address_errors' )
47- render wizard_step_definition . template
4843 end
44+
45+ # If we get here, validation or save failed
46+ @platform = base_platform
47+ @platform . assign_attributes ( platform_params ) if platform_params . present?
48+ flash . now [ :alert ] = t ( '.flash.please_address_errors' )
49+ render wizard_step_definition . template , status : :unprocessable_entity
4950 rescue ActiveRecord ::RecordInvalid => e
51+ @platform = e . record
5052 flash . now [ :alert ] = e . record . errors . full_messages . to_sentence
51- render wizard_step_definition . template
53+ render wizard_step_definition . template , status : :unprocessable_entity
5254 end
5355 # rubocop:enable Metrics/MethodLength
5456
@@ -73,9 +75,7 @@ def create_admin # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
7375
7476 if @form . validate ( user_params )
7577 ActiveRecord ::Base . transaction do
76- # byebug
7778 user = ::BetterTogether ::User . new ( user_params )
78- user . build_person ( person_params )
7979
8080 if user . save!
8181 helpers . host_platform . person_platform_memberships . create! (
@@ -91,24 +91,24 @@ def create_admin # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
9191 helpers . host_community . creator = user . person
9292 helpers . host_community . save!
9393
94- # If Devise's :confirmable is enabled, this will send a confirmation email
95- user . send_confirmation_instructions ( confirmation_url : user_confirmation_path )
9694 mark_current_step_as_completed
9795 wizard . reload
9896 determine_wizard_outcome
99- else
100- # Handle the case where the user could not be saved
101- flash . now [ :alert ] = user . errors . full_messages . to_sentence
102- render wizard_step_definition . template
97+ return
10398 end
10499 end
105- else
106- flash . now [ :alert ] = t ( '.flash.please_address_errors' )
107- render wizard_step_definition . template
108100 end
101+
102+ # If we get here, validation or save failed
103+ @user = ::BetterTogether ::User . new ( user_params )
104+ @user . build_person unless @user . person
105+ flash . now [ :alert ] = t ( '.flash.please_address_errors' )
106+ render wizard_step_definition . template , status : :unprocessable_entity
109107 rescue ActiveRecord ::RecordInvalid => e
108+ @user = e . record
109+ @user . build_person unless @user . person
110110 flash . now [ :alert ] = e . record . errors . full_messages . to_sentence
111- render wizard_step_definition . template
111+ render wizard_step_definition . template , status : :unprocessable_entity
112112 end
113113 # rubocop:enable Metrics/MethodLength
114114
@@ -134,13 +134,10 @@ def platform_params
134134 params . require ( :platform ) . permit ( :name , :description , :url , :time_zone , :privacy )
135135 end
136136
137- def person_params
138- params . require ( :user ) . require ( :person_attributes ) . permit ( %i[ identifier name description ] )
139- end
140-
141137 def user_params
142138 params . require ( :user ) . permit (
143- :email , :password , :password_confirmation
139+ :email , :password , :password_confirmation ,
140+ person_attributes : %i[ identifier name description ]
144141 )
145142 end
146143
0 commit comments