@@ -129,9 +129,8 @@ def dispatch(self, request, *args, **kwargs):
129129 if 'recall_result_form_pk' not in request .session :
130130 messages .error (request , _ ("No result form selected for recall." ))
131131 return redirect (
132- 'audit_dashboard' ,
133- tally_id = self .kwargs .get ('tally_id' ),
134- tab = 'recalls' )
132+ self .get_success_url (tally_id = self .kwargs .get ('tally_id' )))
133+
135134 return super ().dispatch (request , * args , ** kwargs )
136135
137136 def get_context_data (self , ** kwargs ):
@@ -174,14 +173,16 @@ def form_valid(self, form):
174173 form .instance .requester = self .request .user .userprofile
175174 form .instance .request_type = RequestType .RECALL_FROM_ARCHIVE
176175
177- response = super ().form_valid (form )
176+ self .object = form .save ()
177+
178178 messages .success (
179179 self .request ,
180180 _ ("Recall request created successfully for barcode {}" ).format (
181181 result_form .barcode ))
182182 # Clean up session
183183 del self .request .session ['recall_result_form_pk' ]
184- return response
184+ # Return the redirect directly
185+ return redirect (self .get_success_url (tally_id = tally_id ))
185186
186187 def get_success_url (self , ** kwargs ):
187188 return reverse (self .success_url_name , kwargs = kwargs ) + '?tab=recalls'
@@ -237,6 +238,7 @@ class RecallRequestDetailView(LoginRequiredMixin,
237238 template_name = 'workflow/recall_request_detail.html'
238239 context_object_name = 'request'
239240 pk_url_kwarg = 'request_pk'
241+ success_url_name = 'audit_dashboard'
240242
241243 def get_queryset (self ):
242244 # Ensure we only get recall requests for the correct tally
@@ -272,7 +274,7 @@ def post(self, request, *args, **kwargs):
272274 messages .warning (
273275 request , _ ("This request has already been actioned." ))
274276 return redirect (
275- 'audit_dashboard' , tally_id = tally_id , tab = 'recalls' )
277+ self . get_success_url ( tally_id = tally_id ) )
276278
277279 form = self .get_form ()
278280 if form .is_valid ():
@@ -286,9 +288,7 @@ def post(self, request, *args, **kwargs):
286288 _ (str ("Form is no longer in ARCHIVED state."
287289 " Cannot approve recall." )))
288290 return redirect (
289- 'audit_dashboard' ,
290- tally_id = tally_id ,
291- tab = 'recalls' )
291+ self .get_success_url (tally_id = tally_id ))
292292
293293 workflow_request .status = RequestStatus .APPROVED
294294 # Move form back to Audit
@@ -325,12 +325,14 @@ def post(self, request, *args, **kwargs):
325325 workflow_request .resolved_date = timezone .now ()
326326 workflow_request .save ()
327327
328- return redirect (reverse (
329- 'audit_dashboard' ,
330- kwargs = {'tally_id' : tally_id }) + '?tab=recalls' )
328+ return redirect (
329+ self .get_success_url (tally_id = tally_id ))
331330 else :
332331 return self .form_invalid (form )
333332
334333 def form_invalid (self , form ):
335334 messages .error (self .request , _ ("Please correct the errors below." ))
336335 return super ().form_invalid (form )
336+
337+ def get_success_url (self , ** kwargs ):
338+ return reverse (self .success_url_name , kwargs = kwargs ) + '?tab=recalls'
0 commit comments