@@ -146,17 +146,14 @@ def edit_engagement(request, eid):
146
146
engagement = Engagement .objects .get (pk = eid )
147
147
is_ci_cd = engagement .engagement_type == "CI/CD"
148
148
jira_epic_form = None
149
- jira_project = jira_helper . get_jira_project ( engagement , use_inheritance = False )
149
+ jira_project = None
150
150
jira_error = False
151
151
152
152
if request .method == 'POST' :
153
153
form = EngForm (request .POST , instance = engagement , cicd = is_ci_cd , product = engagement .product .id , user = request .user )
154
+ jira_project = jira_helper .get_jira_project (engagement , use_inheritance = False )
154
155
155
- jira_project_form = JIRAProjectForm (request .POST , prefix = 'jira-project-form' , instance = jira_project , target = 'engagement' )
156
- jira_epic_form = JIRAEngagementForm (request .POST , prefix = 'jira-epic-form' , instance = engagement )
157
-
158
- if (form .is_valid () and (jira_project_form is None or jira_project_form .is_valid ()) and (jira_epic_form is None or jira_epic_form .is_valid ())):
159
-
156
+ if form .is_valid ():
160
157
# first save engagement details
161
158
new_status = form .cleaned_data .get ('status' )
162
159
engagement = form .save (commit = False )
@@ -170,72 +167,37 @@ def edit_engagement(request, eid):
170
167
t = ", " .join ('"{0}"' .format (w ) for w in tags )
171
168
engagement .tags = t
172
169
173
- # save jira project config
174
- jira_project = jira_project_form .save (commit = False )
175
- jira_project .engagement = engagement
176
- # only check jira project if form is sufficiently populated
177
- if jira_project .jira_instance and jira_project .project_key :
178
- jira_error = not jira_helper .is_jira_project_valid (jira_project )
179
-
180
- if not jira_error :
181
- jira_project .save ()
182
-
183
- messages .add_message (
184
- request ,
185
- messages .SUCCESS ,
186
- 'JIRA Project config added successfully.' ,
187
- extra_tags = 'alert-success' )
188
-
189
- # push epic
190
- if jira_epic_form .cleaned_data .get ('push_to_jira' ):
191
- if jira_helper .push_to_jira (engagement ):
192
- messages .add_message (
193
- request ,
194
- messages .SUCCESS ,
195
- 'Push to JIRA for Epic queued succesfully, check alerts on the top right for errors' ,
196
- extra_tags = 'alert-success' )
197
- else :
198
- jira_error = True
199
-
200
- messages .add_message (
201
- request ,
202
- messages .SUCCESS ,
203
- 'Push to JIRA for Epic failed, check alerts on the top right for errors' ,
204
- extra_tags = 'alert-danger' )
205
-
206
170
messages .add_message (
207
171
request ,
208
172
messages .SUCCESS ,
209
173
'Engagement updated successfully.' ,
210
174
extra_tags = 'alert-success' )
211
175
212
- if not jira_error :
176
+ success , jira_project_form = jira_helper .process_jira_project_form (request , instance = jira_project , engagement = engagement )
177
+ error = not success
178
+
179
+ success , jira_epic_form = jira_helper .process_jira_epic_form (request , engagement = engagement )
180
+ error = error or not success
181
+
182
+ if not error :
213
183
if '_Add Tests' in request .POST :
214
184
return HttpResponseRedirect (
215
185
reverse ('add_tests' , args = (engagement .id , )))
216
186
else :
217
187
return HttpResponseRedirect (
218
188
reverse ('view_engagement' , args = (engagement .id , )))
219
-
220
189
else :
221
- # if forms invalid, page will just reload and show errors
222
- if jira_project_form .errors or jira_epic_form .errors :
223
- messages .add_message (
224
- request ,
225
- messages .ERROR ,
226
- 'Errors in JIRA forms, see below' ,
227
- extra_tags = 'alert-danger' )
190
+ logger .debug (form .errors )
228
191
229
- else :
230
- form = EngForm (initial = {'product' : engagement .product }, instance = engagement , cicd = is_ci_cd , product = engagement .product , user = request .user )
192
+ form = EngForm (initial = {'product' : engagement .product }, instance = engagement , cicd = is_ci_cd , product = engagement .product , user = request .user )
231
193
232
- jira_project_form = None
233
- jira_epic_form = None
234
- if get_system_setting ('enable_jira' ):
235
- jira_project_form = JIRAProjectForm ( prefix = 'jira-project-form' , instance = jira_project , target = ' engagement' , product = engagement . product )
236
- if jira_project :
237
- logger .debug ('showing jira-epic-form' )
238
- jira_epic_form = JIRAEngagementForm (prefix = 'jira-epic-form' , instance = engagement )
194
+ jira_project_form = None
195
+ jira_epic_form = None
196
+ if get_system_setting ('enable_jira' ):
197
+ jira_project = jira_helper . get_jira_project ( engagement , use_inheritance = False )
198
+ jira_project_form = JIRAProjectForm ( instance = jira_project , target = 'engagement' , product = engagement . product )
199
+ logger .debug ('showing jira-epic-form' )
200
+ jira_epic_form = JIRAEngagementForm (instance = engagement )
239
201
240
202
form .initial ['tags' ] = [tag .name for tag in engagement .tags ]
241
203
@@ -248,6 +210,7 @@ def edit_engagement(request, eid):
248
210
'edit' : True ,
249
211
'jira_epic_form' : jira_epic_form ,
250
212
'jira_project_form' : jira_project_form ,
213
+ 'engagement' : engagement ,
251
214
})
252
215
253
216
0 commit comments