billing form in settings page
This commit is contained in:
		
					parent
					
						
							
								49cc441fa0
							
						
					
				
			
			
				commit
				
					
						ce1d346bc1
					
				
			
		
					 5 changed files with 48 additions and 55 deletions
				
			
		|  | @ -8,7 +8,7 @@ msgid "" | |||
| msgstr "" | ||||
| "Project-Id-Version: PACKAGE VERSION\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2017-08-29 14:38+0530\n" | ||||
| "POT-Creation-Date: 2017-08-29 17:41+0530\n" | ||||
| "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||||
| "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||||
| "Language-Team: LANGUAGE <LL@li.org>\n" | ||||
|  | @ -343,10 +343,7 @@ msgstr "" | |||
| msgid "Type" | ||||
| msgstr "Kartentyp" | ||||
| 
 | ||||
| msgid "You are not making any payment here." | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Add new Card" | ||||
| msgid "No Cards found for your account." | ||||
| msgstr "" | ||||
| 
 | ||||
| msgid "Add your public SSH key" | ||||
|  |  | |||
|  | @ -271,6 +271,20 @@ | |||
|   margin-top: 15px; | ||||
| } | ||||
| 
 | ||||
| .settings-container .credit-card-details { | ||||
|   padding-bottom: 15px; | ||||
|   border-bottom: 1px solid #eee; | ||||
| } | ||||
| 
 | ||||
| .settings-container .credit-card-details h5 { | ||||
|   font-weight: bold; | ||||
|   font-size: 16px; | ||||
| } | ||||
| 
 | ||||
| .credit-card-form { | ||||
|   max-width: 360px; | ||||
| } | ||||
| 
 | ||||
| .btn-wide { | ||||
|   min-width: 120px; | ||||
| } | ||||
|  | @ -17,6 +17,9 @@ | |||
|                             {% csrf_token %} | ||||
|                             {% bootstrap_field field show_label=False type='fields'%} | ||||
|                         {% endfor %} | ||||
|                         <div class="form-group text-right"> | ||||
|                             <button type="submit" class="btn btn-default btn-custom-delete btn-wide">Save</button> | ||||
|                         </div> | ||||
|                     </form> | ||||
|                 </div> | ||||
|                 <div class="col-sm-7 col-md-6 creditcard-box dcl-creditcard"> | ||||
|  | @ -25,45 +28,14 @@ | |||
|                     <div> | ||||
|                         <div> | ||||
|                             {% if credit_card_data.last4 %} | ||||
|                                 <form role="form" id="payment-form-with-creditcard" novalidate> | ||||
|                                 <div class="credit-card-details"> | ||||
|                                     <h5 class="billing-head">{% trans "Credit Card" %}</h5> | ||||
|                                     <h5 class="membership-lead">{% trans "Last" %} 4: *****{{credit_card_data.last4}}</h5> | ||||
|                                     <h5 class="membership-lead">{% trans "Type" %}: {{credit_card_data.cc_brand}}</h5> | ||||
|                                     <input type="hidden" name="credit_card_needed" value="false"/> | ||||
|                                 </form> | ||||
|                                 <div class="row"> | ||||
|                                     <div class="col-xs-12"> | ||||
|                                             {% if not messages and not form.non_field_errors %} | ||||
|                                                 <p class="card-warning-content card-warning-addtional-margin"> | ||||
|                                                     {% blocktrans %}You are not making any payment here.{% endblocktrans %} | ||||
|                                                 </p> | ||||
|                                             {% endif %} | ||||
|                                             <div id='payment_error'> | ||||
|                                                 {% for message in messages %} | ||||
|                                                     {% if 'failed_payment' or 'make_charge_error' in message.tags %} | ||||
|                                                      <ul class="list-unstyled"><li> | ||||
|                                                          <p class="card-warning-content card-warning-error">{{ message|safe }}</p> | ||||
|                                                     </li></ul> | ||||
|                                                     {% endif %} | ||||
|                                                 {% endfor %} | ||||
|                                                 {% for error in form.non_field_errors %} | ||||
|                                                     <p class="card-warning-content card-warning-error"> | ||||
|                                                         {{ error|escape }} | ||||
|                                                     </p> | ||||
|                                                 {% endfor %} | ||||
|                                             </div> | ||||
|                                         </div> | ||||
|                                     <div class="col-xs-12"> | ||||
|                                         <div class="col-xs-6 pull-right"> | ||||
|                                             <button id="payment_button_with_creditcard" class="btn btn-success stripe-payment-btn" | ||||
|                                                     type="submit"> | ||||
|                                                 {%trans "Submit" %} | ||||
|                                             </button> | ||||
|                                         </div> | ||||
|                                     </div> | ||||
|                                 </div> | ||||
|                             {% else %} | ||||
|                                 <h4>{% trans "Add new Card" %}</h4> | ||||
|                                 <h4>{% trans "No Cards found for your account." %}</h4> | ||||
|                                 {% comment %} | ||||
|                                 <form action="" id="payment-form-new" class="credit-card-form" method="POST"> | ||||
|                                     <input type="hidden" name="token"/> | ||||
|                                     <div class="credit-card-goup"> | ||||
|  | @ -120,6 +92,7 @@ | |||
|                                         <p class="payment-errors"></p> | ||||
|                                     </div> | ||||
|                                 </form> | ||||
|                                 {% endcomment %} | ||||
|                             {% endif %} | ||||
|                         </div> | ||||
|                     </div> | ||||
|  |  | |||
|  | @ -480,22 +480,14 @@ class SettingsView(LoginRequiredMixin, FormView): | |||
|     login_url = reverse_lazy('hosting:login') | ||||
|     form_class = BillingAddressForm | ||||
| 
 | ||||
|     def get_form_kwargs(self): | ||||
|         current_billing_address = self.request.user.billing_addresses.first() | ||||
|         form_kwargs = super(SettingsView, self).get_form_kwargs() | ||||
|         if not current_billing_address: | ||||
|             return form_kwargs | ||||
| 
 | ||||
|         form_kwargs.update({ | ||||
|             'initial': { | ||||
|                 'cardholder_name': current_billing_address.cardholder_name, | ||||
|                 'street_address': current_billing_address.street_address, | ||||
|                 'city': current_billing_address.city, | ||||
|                 'postal_code': current_billing_address.postal_code, | ||||
|                 'country': current_billing_address.country, | ||||
|             } | ||||
|         }) | ||||
|         return form_kwargs | ||||
|     def get_form(self, form_class): | ||||
|         """ | ||||
|         Check if the user already saved contact details. If so, then show | ||||
|         the form populated with those details, to let user change them. | ||||
|         """ | ||||
|         return form_class( | ||||
|             instance=self.request.user.billing_addresses.first(), | ||||
|             **self.get_form_kwargs()) | ||||
| 
 | ||||
|     def get_context_data(self, **kwargs): | ||||
|         context = super(SettingsView, self).get_context_data(**kwargs) | ||||
|  | @ -520,6 +512,22 @@ class SettingsView(LoginRequiredMixin, FormView): | |||
| 
 | ||||
|         return context | ||||
| 
 | ||||
|     def post(self, request, *args, **kwargs): | ||||
|         form = self.get_form() | ||||
|         if form.is_valid(): | ||||
|             billing_address_data = form.cleaned_data | ||||
|             billing_address_data.update({ | ||||
|                 'user': self.request.user.id | ||||
|             }) | ||||
|             billing_address_user_form = UserBillingAddressForm( | ||||
|                 instance=self.request.user.billing_addresses.first(), | ||||
|                 data=billing_address_data) | ||||
|             billing_address_user_form.save() | ||||
|             return self.render_to_response(self.get_context_data()) | ||||
|         else: | ||||
|             billing_address_data = form.cleaned_data | ||||
|             return self.form_invalid(form) | ||||
| 
 | ||||
| 
 | ||||
| class PaymentVMView(LoginRequiredMixin, FormView): | ||||
|     template_name = 'hosting/payment.html' | ||||
|  |  | |||
|  | @ -117,6 +117,7 @@ class UserBillingAddressForm(forms.ModelForm): | |||
| 
 | ||||
|     class Meta: | ||||
|         model = UserBillingAddress | ||||
|         # cardholder name not saved | ||||
|         fields = ['street_address', 'city', 'postal_code', 'country', 'user'] | ||||
|         labels = { | ||||
|             'street_address': _('Street Building'), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue