def post(self, request, *args, **kwargs): id_ = request.POST.get('id', None) reimb = models.Reimbursement.objects.get(pk=id_) a_form = forms.AcceptReceiptForm(instance=reimb) r_form = forms.RejectReceiptForm(instance=reimb) if request.POST.get('accept', None): a_form = forms.AcceptReceiptForm(request.POST, instance=reimb) if a_form.is_valid(): a_form.save(commit=False) a_form.instance.accept_receipt(request.user) a_form.save() messages.success(request, 'Receipt accepted') else: c = self.get_context_data() c.update({'reject_form': r_form, 'accept_form': a_form}) return render(request, self.template_name, c) elif request.POST.get('reject', None): r_form = forms.RejectReceiptForm(request.POST, instance=reimb) if r_form.is_valid(): r_form.save(commit=False) m = r_form.instance.reject_receipt(request.user, request) m.send() r_form.save() messages.success(request, 'Receipt rejected') else: c = self.get_context_data() c.update({'reject_form': r_form, 'accept_form': a_form}) return render(request, self.template_name, c) return HttpResponseRedirect(reverse('receipt_review'))
def get_context_data(self, **kwargs): c = super(ReceiptReview, self).get_context_data(**kwargs) reimb = models.Reimbursement.objects.filter( status=models.RE_PEND_APPROVAL).order_by('-update_time').first() c.update({ 'reimb': reimb, 'reject_form': forms.RejectReceiptForm(instance=reimb), 'review': True, 'accept_form': forms.AcceptReceiptForm(instance=reimb) }) return c