def confirmreg_forreal(self, request, tl, one, two, module, extra, prog, new_reg): """ The page that is shown once the user saves their student reg, giving them the option of printing a confirmation """ self.request = request from esp.program.modules.module_ext import DBReceipt iac = IndividualAccountingController(prog, request.user) context = {} context['one'] = one context['two'] = two context['itemizedcosts'] = iac.get_transfers() user = ESPUser(request.user) context['finaid'] = user.hasFinancialAid(prog) if user.appliedFinancialAid(prog): context['finaid_app'] = user.financialaidrequest_set.filter( program=prog).order_by('-id')[0] else: context['finaid_app'] = None context['balance'] = iac.amount_due() context['owe_money'] = (context['balance'] != Decimal("0.0")) if prog.isFull() and not user.canRegToFullProgram( prog) and not self.program.isConfirmed(user): raise ESPError( log=False ), "This program has filled! It can't accept any more students. Please try again next session." modules = prog.getModules(request.user, tl) completedAll = True for module in modules: if hasattr(module, 'onConfirm'): module.onConfirm(request) if not module.isCompleted() and module.required: completedAll = False context = module.prepare(context) if completedAll: if new_reg: rec = Record.objects.create(user=user, event="reg_confirmed", program=prog) else: raise ESPError( False ), "You must finish all the necessary steps first, then click on the Save button to finish registration." cfe = ConfirmationEmailController() cfe.send_confirmation_email(request.user, self.program) try: receipt_text = DBReceipt.objects.get(program=self.program, action='confirm').receipt context["request"] = request context["program"] = prog return HttpResponse( Template(receipt_text).render( Context(context, autoescape=False))) except DBReceipt.DoesNotExist: try: receipt = 'program/receipts/' + str( prog.id) + '_custom_receipt.html' return render_to_response(receipt, request, context) except: receipt = 'program/receipts/default.html' return render_to_response(receipt, request, context)
def confirmreg_forreal(self, request, tl, one, two, module, extra, prog, new_reg): """ The page that is shown once the user saves their student reg, giving them the option of printing a confirmation """ self.request = request from esp.program.modules.module_ext import DBReceipt try: invoice = Document.get_invoice(request.user, prog.anchor, LineItemType.objects.filter(anchor=GetNode(prog.anchor.get_uri()+'/LineItemTypes/Required')), dont_duplicate=True, get_complete=True) except: invoice = Document.get_invoice(request.user, prog.anchor, LineItemType.objects.filter(anchor=GetNode(prog.anchor.get_uri()+'/LineItemTypes/Required')), dont_duplicate=True) # Why is get_complete false? receipt = Document.get_receipt(request.user, prog.anchor, [], get_complete=False) context = {} context['one'] = one context['two'] = two context['itemizedcosts'] = invoice.get_items() user = ESPUser(request.user) context['finaid'] = user.hasFinancialAid(prog.anchor) if user.appliedFinancialAid(prog): context['finaid_app'] = user.financialaidrequest_set.filter(program=prog).order_by('-id')[0] else: context['finaid_app'] = None try: context['balance'] = Decimal("%0.2f" % invoice.cost()) except EmptyTransactionException: context['balance'] = Decimal("0.0") context['owe_money'] = ( context['balance'] != Decimal("0.0") ) if prog.isFull() and not user.canRegToFullProgram(prog) and not self.program.isConfirmed(user): raise ESPError(log = False), "This program has filled! It can't accept any more students. Please try again next session." modules = prog.getModules(request.user, tl) completedAll = True for module in modules: if hasattr(module, 'onConfirm'): module.onConfirm(request) if not module.isCompleted() and module.required: completedAll = False context = module.prepare(context) if completedAll: if new_reg: bit = UserBit.objects.create(user=user, verb=GetNode("V/Flags/Public"), qsc=GetNode("/".join(prog.anchor.tree_encode()) + "/Confirmation")) else: raise ESPError(False), "You must finish all the necessary steps first, then click on the Save button to finish registration." cfe = ConfirmationEmailController() cfe.send_confirmation_email(request.user, self.program) try: receipt_text = DBReceipt.objects.get(program=self.program, action='confirm').receipt context["request"] = request context["program"] = prog return HttpResponse( Template(receipt_text).render( Context(context, autoescape=False) ) ) except DBReceipt.DoesNotExist: try: receipt = 'program/receipts/'+str(prog.id)+'_custom_receipt.html' return render_to_response(receipt, request, (prog, tl), context) except: receipt = 'program/receipts/default.html' return render_to_response(receipt, request, (prog, tl), context)