docs: def get_context_data(self,**kwargs):
          ''' Pass the initial kwargs, then update with the needed registration info. '''
          context_data = super(RegistrationSummaryView,self).get_context_data(**kwargs)
  
          regSession = self.request.session[REG_VALIDATION_STR]
          reg_id = regSession["temp_reg_id"]
          reg = TemporaryRegistration.objects.get(id=reg_id)
  
          discount_codes = regSession.get('discount_codes',None)
          discount_amount = regSession.get('total_discount_amount',0)
          voucher_names = regSession.get('voucher_names',[])
          total_voucher_amount = regSession.get('total_voucher_amount',0)
          addons = regSession.get('addons',[])
  
          if reg.priceWithDiscount == 0:
              # Create a new Invoice if one does not already exist.
              new_invoice = Invoice.get_or_create_from_registration(reg,status=Invoice.PaymentStatus.paid)
              new_invoice.processPayment(0,0,forceFinalize=True)
              isFree = True
          else:
              isFree = False
  
          context_data.update({
              'registration': reg,
              "totalPrice": reg.totalPrice,
              'subtotal': reg.priceWithDiscount,
              'taxes': reg.addTaxes,
              "netPrice": reg.priceWithDiscountAndTaxes,
              "addonItems": addons,
              "discount_codes": discount_codes,
              "discount_code_amount": discount_amount,
              "voucher_names": voucher_names,
              "total_voucher_amount": total_voucher_amount,
              "total_discount_amount": discount_amount + total_voucher_amount,
              "currencyCode": getConstant('general__currencyCode'),
              'payAtDoor': reg.payAtDoor,
              'is_free': isFree,
          })
  
          if self.request.user:
              door_permission = self.request.user.has_perm('core.accept_door_payments')
              invoice_permission = self.request.user.has_perm('core.send_invoices')
  
              if door_permission or invoice_permission:
                  context_data['form'] = DoorAmountForm(
                      user=self.request.user,
                      doorPortion=door_permission,
                      invoicePortion=invoice_permission,
                      payerEmail=reg.email,
                      discountAmount=max(reg.totalPrice - reg.priceWithDiscount,0),
                  )
  
          return context_data