@@ -160,21 +160,21 @@ def get_context_data(self, *args, **kwargs):
160160 context ["expenses" ] = Expense .objects .filter (
161161 camp = self .camp ,
162162 creditor__chain = self .get_object (),
163- ).prefetch_related ("responsible_team" , " user" , "creditor" )
163+ ).prefetch_related ("user" , "creditor" )
164164 context ["revenues" ] = Revenue .objects .filter (
165165 camp = self .camp ,
166166 debtor__chain = self .get_object (),
167- ).prefetch_related ("responsible_team" , " user" , "debtor" )
167+ ).prefetch_related ("user" , "debtor" )
168168
169169 # Include past years expenses and revenues for the Chain in context as separate querysets
170170 context ["past_expenses" ] = Expense .objects .filter (
171171 camp__camp__lt = self .camp .camp ,
172172 creditor__chain = self .get_object (),
173- ).prefetch_related ("responsible_team" , " user" , "creditor" )
173+ ).prefetch_related ("user" , "creditor" )
174174 context ["past_revenues" ] = Revenue .objects .filter (
175175 camp__camp__lt = self .camp .camp ,
176176 debtor__chain = self .get_object (),
177- ).prefetch_related ("responsible_team" , " user" , "debtor" )
177+ ).prefetch_related ("user" , "debtor" )
178178
179179 return context
180180
@@ -187,10 +187,10 @@ class CredebtorDetailView(CampViewMixin, EconomyTeamPermissionMixin, DetailView)
187187 def get_context_data (self , * args , ** kwargs ):
188188 context = super ().get_context_data (* args , ** kwargs )
189189 context ["expenses" ] = (
190- self .get_object ().expenses .filter (camp = self .camp ).prefetch_related ("responsible_team" , " user" , "creditor" )
190+ self .get_object ().expenses .filter (camp = self .camp ).prefetch_related ("user" , "creditor" )
191191 )
192192 context ["revenues" ] = (
193- self .get_object ().revenues .filter (camp = self .camp ).prefetch_related ("responsible_team" , " user" , "debtor" )
193+ self .get_object ().revenues .filter (camp = self .camp ).prefetch_related ("user" , "debtor" )
194194 )
195195 return context
196196
@@ -209,7 +209,6 @@ def get_queryset(self, **kwargs):
209209 return queryset .exclude (approved__isnull = True ).prefetch_related (
210210 "creditor" ,
211211 "user" ,
212- "responsible_team" ,
213212 )
214213
215214 def get_context_data (self , ** kwargs ):
@@ -221,7 +220,6 @@ def get_context_data(self, **kwargs):
221220 ).prefetch_related (
222221 "creditor" ,
223222 "user" ,
224- "responsible_team" ,
225223 )
226224 return context
227225
@@ -275,19 +273,36 @@ class ReimbursementUpdateView(
275273):
276274 model = Reimbursement
277275 template_name = "reimbursement_form.html"
278- fields = ["notes" , "paid" ]
276+ fields = ["notes" ]
279277
280278 def get_context_data (self , ** kwargs ):
281279 context = super ().get_context_data (** kwargs )
282- context ["expenses" ] = self .object .expenses .filter (paid_by_bornhack = False )
283- context ["total_amount" ] = context ["expenses" ].aggregate (Sum ("amount" ))
280+ context ["expenses" ] = self .object .covered_expenses .all ()
281+ context ["revenues" ] = self .object .covered_revenues .all ()
282+ context ["total_amount" ] = self .object .amount
284283 context ["reimbursement_user" ] = self .object .reimbursement_user
285284 context ["cancelurl" ] = reverse (
286285 "backoffice:reimbursement_list" ,
287286 kwargs = {"camp_slug" : self .camp .slug },
288287 )
289288 return context
290289
290+ def form_valid (self , form ):
291+ """Backoffice has two submit buttons in this form, 'Just Save', and 'Mark as Paid'."""
292+ if "paid" in form .data :
293+ # mark as paid button was pressed
294+ reimbursement = form .save ()
295+ reimbursement .mark_as_paid ()
296+ messages .success (self .request , "Reimbursement marked as paid, related expenses and revenues payment_status set accordingly" )
297+ elif "save" in form .data :
298+ reimbursement = form .save ()
299+ messages .success (self .request , "Reimbursement notes updated" )
300+ else :
301+ messages .error (self .request , "Unknown submit action" )
302+ return redirect (
303+ reverse ("backoffice:expense_list" , kwargs = {"camp_slug" : self .camp .slug }),
304+ )
305+
291306 def get_success_url (self ):
292307 return reverse (
293308 "backoffice:reimbursement_detail" ,
@@ -299,7 +314,7 @@ class ReimbursementDeleteView(CampViewMixin, EconomyTeamPermissionMixin, DeleteV
299314 model = Reimbursement
300315 template_name = "reimbursement_delete.html"
301316
302- def get (self , request , * args , ** kwargs ):
317+ def dispatch (self , request , * args , ** kwargs ):
303318 if self .get_object ().paid :
304319 messages .error (
305320 request ,
@@ -312,7 +327,7 @@ def get(self, request, *args, **kwargs):
312327 ),
313328 )
314329 # continue with the request
315- return super ().get (request , * args , ** kwargs )
330+ return super ().dispatch (request , * args , ** kwargs )
316331
317332 def get_success_url (self ):
318333 messages .success (
@@ -339,7 +354,6 @@ def get_queryset(self, **kwargs):
339354 return queryset .exclude (approved__isnull = True ).prefetch_related (
340355 "debtor" ,
341356 "user" ,
342- "responsible_team" ,
343357 )
344358
345359 def get_context_data (self , ** kwargs ):
0 commit comments