Merge remote-tracking branch 'mainRepo/master' into task/3774/update_stripe_subscription_on_vm_delete
This commit is contained in:
commit
f0be6d6d7f
12 changed files with 110 additions and 139 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
Next Release
|
||||||
|
* #3785: [hosting] update 'my bills' page design
|
||||||
|
* Bugfix: [hosting] card details input form alignment fix
|
||||||
|
* #3823: [hosting] favicon link fixed
|
||||||
1.2.4: 2017-10-02
|
1.2.4: 2017-10-02
|
||||||
* #3780: [hosting] Store VM details locally
|
* #3780: [hosting] Store VM details locally
|
||||||
* #3764: [hosting] Show cancelled VMs' invoices
|
* #3764: [hosting] Show cancelled VMs' invoices
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-10-01 22:13+0000\n"
|
"POT-Creation-Date: 2017-10-03 18:13+0530\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -360,9 +360,6 @@ msgstr ""
|
||||||
"Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst ausgelöst, "
|
"Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst ausgelöst, "
|
||||||
"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast."
|
"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast."
|
||||||
|
|
||||||
msgid "Submit"
|
|
||||||
msgstr "Absenden"
|
|
||||||
|
|
||||||
msgid "Card Number"
|
msgid "Card Number"
|
||||||
msgstr "Kreditkartennummer"
|
msgstr "Kreditkartennummer"
|
||||||
|
|
||||||
|
@ -515,6 +512,9 @@ msgstr ""
|
||||||
"Deine VM ist gleich bereit. Wir senden Dir eine Bestätigungsemail, sobald Du "
|
"Deine VM ist gleich bereit. Wir senden Dir eine Bestätigungsemail, sobald Du "
|
||||||
"auf sie zugreifen kannst."
|
"auf sie zugreifen kannst."
|
||||||
|
|
||||||
|
#~ msgid "Submit"
|
||||||
|
#~ msgstr "Absenden"
|
||||||
|
|
||||||
#~ msgid "Date"
|
#~ msgid "Date"
|
||||||
#~ msgstr "Datum"
|
#~ msgstr "Datum"
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,11 @@
|
||||||
<div id='payment_error'>
|
<div id='payment_error'>
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
|
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
|
||||||
<ul class="list-unstyled"><li>
|
<ul class="list-unstyled">
|
||||||
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
|
<li>
|
||||||
</li></ul>
|
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for error in form.non_field_errors %}
|
{% for error in form.non_field_errors %}
|
||||||
|
@ -116,7 +118,7 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<button id="payment_button_with_creditcard" class="btn btn-success btn-vm-contact" type="submit">{%trans "Submit" %}</button>
|
<button id="payment_button_with_creditcard" class="btn btn-vm-contact" type="submit">{%trans "SUBMIT" %}</button>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<form action="" id="payment-form-new" method="POST">
|
<form action="" id="payment-form-new" method="POST">
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-10-01 22:12+0000\n"
|
"POT-Creation-Date: 2017-10-03 18:13+0530\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -436,15 +436,10 @@ msgid "Billing Address"
|
||||||
msgstr "Rechnungsadresse"
|
msgstr "Rechnungsadresse"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"Please fill in your credit card information below. We are using <a href="
|
||||||
" Please fill in your credit card information "
|
"\"https://stripe.com\" target=\"_blank\">Stripe</a> for payment and do not "
|
||||||
"below. We are using <a\n"
|
"store your information in our database."
|
||||||
" href=\"https://stripe.com\" target="
|
|
||||||
"\"_blank\">Stripe</a> for payment and do not store\n"
|
|
||||||
" your information in our database.\n"
|
|
||||||
" "
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
|
||||||
"Bitte füll Deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
|
"Bitte füll Deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
|
||||||
"\"https://stripe.com\" target=\"_blank\">Stripe</a> für die Bezahlung und "
|
"\"https://stripe.com\" target=\"_blank\">Stripe</a> für die Bezahlung und "
|
||||||
"speichern keine Informationen in unserer Datenbank."
|
"speichern keine Informationen in unserer Datenbank."
|
||||||
|
@ -456,8 +451,8 @@ msgstr ""
|
||||||
"Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst ausgelöst, "
|
"Es wird noch keine Bezahlung vorgenommen. Die Bezahlung wird erst ausgelöst, "
|
||||||
"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast."
|
"nachdem Du die Bestellung auf der nächsten Seite bestätigt hast."
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "SUBMIT"
|
||||||
msgstr "Absenden"
|
msgstr "ABSENDEN"
|
||||||
|
|
||||||
msgid "Card Number"
|
msgid "Card Number"
|
||||||
msgstr "Kreditkartennummer"
|
msgstr "Kreditkartennummer"
|
||||||
|
@ -477,6 +472,9 @@ msgstr "Weiter"
|
||||||
msgid "Enter your credit card number"
|
msgid "Enter your credit card number"
|
||||||
msgstr "Deine Kreditkartennummer"
|
msgstr "Deine Kreditkartennummer"
|
||||||
|
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "Absenden"
|
||||||
|
|
||||||
msgid "Reset your password"
|
msgid "Reset your password"
|
||||||
msgstr "Passwort zurücksetzen"
|
msgstr "Passwort zurücksetzen"
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
.dcl-payment-section p {
|
.dcl-payment-section p {
|
||||||
padding: 0 5px;
|
/*padding: 0 5px;*/
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
.dcl-payment-section .card-warning-content {
|
.dcl-payment-section .card-warning-content {
|
||||||
|
@ -77,7 +77,6 @@
|
||||||
|
|
||||||
.dcl-payment-user h4 {
|
.dcl-payment-user h4 {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding-left: 5px;
|
|
||||||
font-size: 17px;
|
font-size: 17px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,4 +117,4 @@
|
||||||
top: 20px;
|
top: 20px;
|
||||||
bottom: 20px;
|
bottom: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -618,9 +618,8 @@
|
||||||
left: 8px;
|
left: 8px;
|
||||||
}
|
}
|
||||||
.table-switch .last-td {
|
.table-switch .last-td {
|
||||||
position: absolute;
|
padding-top: 12px;
|
||||||
bottom: 13px;
|
text-align: right;
|
||||||
right: 0;
|
|
||||||
}
|
}
|
||||||
.table-switch tbody tr .xs-td-inline {
|
.table-switch tbody tr .xs-td-inline {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
|
||||||
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
<link href="//fonts.googleapis.com/css?family=Lato:300,400,500,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
|
<link href="//fonts.googleapis.com/css?family=Lato:300,400,500,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
|
||||||
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" />
|
<link rel="shortcut icon" href="{% static 'hosting/img/favicon.ico' %}" type="image/x-icon" />
|
||||||
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<div class="col-sm-5">
|
<div class="col-sm-5">
|
||||||
<div class="dashboard-container-head">
|
<div class="dashboard-container-head">
|
||||||
<h3 class="dashboard-title-thin"><img src="{% static 'hosting/img/plusVM.svg' %}" class="un-icon" style="margin-top: -18px;width: 42px;height: 42px;"> {% trans "Create VM" %}</h3>
|
<h3 class="dashboard-title-thin"><img src="{% static 'hosting/img/plusVM.svg' %}" class="un-icon" style="margin-top: -18px;width: 42px;height: 42px;"> {% trans "Create VM" %}</h3>
|
||||||
|
<p style="padding-left: 16px;">{% trans "Affordable VM hosting based in Switzerland" %}</p>
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% extends "hosting/base_short.html" %}
|
{% extends "hosting/base_short.html" %}
|
||||||
{% load staticfiles bootstrap3 %}
|
{% load staticfiles bootstrap3 %}
|
||||||
{% load i18n %}
|
{% load i18n l10n %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="dashboard-container">
|
<div class="dashboard-container">
|
||||||
|
@ -22,7 +22,6 @@
|
||||||
<th>{% trans "Order Nr." %}</th>
|
<th>{% trans "Order Nr." %}</th>
|
||||||
<th>{% trans "Date" %}</th>
|
<th>{% trans "Date" %}</th>
|
||||||
<th>{% trans "Amount" %}</th>
|
<th>{% trans "Amount" %}</th>
|
||||||
<th>{% trans "Status" %}</th>
|
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -30,15 +29,8 @@
|
||||||
{% for order in orders %}
|
{% for order in orders %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="xs-td-inline" data-header="{% trans 'Order Nr.' %}">{{ order.id }}</td>
|
<td class="xs-td-inline" data-header="{% trans 'Order Nr.' %}">{{ order.id }}</td>
|
||||||
<td class="xs-td-bighalf" data-header="{% trans 'Date' %}">{{ order.created_at | date:"M d, Y" }}</td>
|
<td class="xs-td-bighalf" data-header="{% trans 'Date' %}">{{ order.created_at | date:"M d, Y H:i" }}</td>
|
||||||
<td class="xs-td-smallhalf" data-header="{% trans 'Amount' %}">{{ order.price }}</td>
|
<td class="xs-td-smallhalf" data-header="{% trans 'Amount' %}">{{ order.price|unlocalize }}</td>
|
||||||
<td data-header="{% trans 'Status' %}">
|
|
||||||
{% if order.approved %}
|
|
||||||
<span class="vm-status-active"><strong>{% trans "Approved" %}</strong></span>
|
|
||||||
{% else %}
|
|
||||||
<span class="vm-status-failed"><strong>{% trans "Declined" %}</strong></span>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="text-right last-td">
|
<td class="text-right last-td">
|
||||||
<a class="btn btn-order-detail" href="{% url 'hosting:orders' order.pk %}">{% trans 'See Invoice' %}</a>
|
<a class="btn btn-order-detail" href="{% url 'hosting:orders' order.pk %}">{% trans 'See Invoice' %}</a>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -69,83 +69,67 @@
|
||||||
<h3><b>{%trans "Credit Card"%}</b></h3>
|
<h3><b>{%trans "Credit Card"%}</b></h3>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<p>
|
||||||
<p>
|
{% blocktrans %}Please fill in your credit card information below. We are using <a href="https://stripe.com" target="_blank">Stripe</a> for payment and do not store your information in our database.{% endblocktrans %}
|
||||||
{% blocktrans %}
|
</p>
|
||||||
Please fill in your credit card information below. We are using <a
|
|
||||||
href="https://stripe.com" target="_blank">Stripe</a> for payment and do not store
|
|
||||||
your information in our database.
|
|
||||||
{% endblocktrans %}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<div>
|
<div>
|
||||||
{% if credit_card_data.last4 %}
|
{% if credit_card_data.last4 %}
|
||||||
<form role="form" id="payment-form-with-creditcard" novalidate>
|
<form role="form" id="payment-form-with-creditcard" novalidate>
|
||||||
<h5 class="billing-head">Credit Card</h5>
|
<h5 class="billing-head">Credit Card</h5>
|
||||||
<h5 class="membership-lead">Last 4: *****{{credit_card_data.last4}}</h5>
|
<h5 class="membership-lead">Last 4: *****{{credit_card_data.last4}}</h5>
|
||||||
<h5 class="membership-lead">Type: {{credit_card_data.cc_brand}}</h5>
|
<h5 class="membership-lead">Type: {{credit_card_data.cc_brand}}</h5>
|
||||||
<input type="hidden" name="credit_card_needed" value="false"/>
|
<input type="hidden" name="credit_card_needed" value="false"/>
|
||||||
</form>
|
</form>
|
||||||
<div class="row">
|
{% if not messages and not form.non_field_errors %}
|
||||||
<div class="col-xs-12">
|
<p class="card-warning-content card-warning-addtional-margin">
|
||||||
{% if not messages and not form.non_field_errors %}
|
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
|
||||||
<p class="card-warning-content card-warning-addtional-margin">
|
</p>
|
||||||
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
|
{% endif %}
|
||||||
</p>
|
<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 %}
|
{% endif %}
|
||||||
<div id='payment_error'>
|
{% endfor %}
|
||||||
{% for message in messages %}
|
{% for error in form.non_field_errors %}
|
||||||
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
|
<p class="card-warning-content card-warning-error">
|
||||||
<ul class="list-unstyled"><li>
|
{{ error|escape }}
|
||||||
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
|
</p>
|
||||||
</li></ul>
|
{% endfor %}
|
||||||
{% endif %}
|
</div>
|
||||||
{% endfor %}
|
<div class="text-right">
|
||||||
{% for error in form.non_field_errors %}
|
<button id="payment_button_with_creditcard" class="btn btn-vm-contact" type="submit">{%trans "SUBMIT" %}</button>
|
||||||
<p class="card-warning-content card-warning-error">
|
</div>
|
||||||
{{ error|escape }}
|
{% else %}
|
||||||
</p>
|
<form action="" id="payment-form-new" method="POST">
|
||||||
{% endfor %}
|
<input type="hidden" name="token"/>
|
||||||
|
<div class="group">
|
||||||
|
<div class="credit-card-goup">
|
||||||
|
<div class="card-element card-number-element">
|
||||||
|
<label>{%trans "Card Number" %}</label>
|
||||||
|
<div id="card-number-element" class="field my-input"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-5 card-element card-expiry-element">
|
||||||
|
<label>{%trans "Expiry Date" %}</label>
|
||||||
|
<div id="card-expiry-element" class="field my-input"></div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3 col-xs-offset-4 card-element card-cvc-element">
|
||||||
|
<label>{%trans "CVC" %}</label>
|
||||||
|
<div id="card-cvc-element" class="field my-input"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-element brand">
|
||||||
|
<label>{%trans "Card Type" %}</label>
|
||||||
|
<i class="pf pf-credit-card" id="brand-icon"></i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12">
|
<div id="card-errors"></div>
|
||||||
<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 %}
|
|
||||||
<form action="" id="payment-form-new" method="POST">
|
|
||||||
<input type="hidden" name="token"/>
|
|
||||||
<div class="group">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-10 col-lg-9 credit-card-goup">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 card-element card-number-element">
|
|
||||||
<label>{%trans "Card Number" %}</label>
|
|
||||||
<div id="card-number-element" class="field my-input"></div>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-5 col-sm-3 col-md-3 col-lg-3 card-element card-expiry-element">
|
|
||||||
<label>{%trans "Expiry Date" %}</label>
|
|
||||||
<div id="card-expiry-element" class="field my-input"></div>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-2 col-md-6 col-lg-7 hide-mobile"></div>
|
|
||||||
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-2 card-element card-cvc-element">
|
|
||||||
<label>{%trans "CVC" %}</label>
|
|
||||||
<div id="card-cvc-element" class="field my-input"></div>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 card-element brand">
|
|
||||||
<label>{%trans "Card Type" %}</label>
|
|
||||||
<i class="pf pf-credit-card" id="brand-icon"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="card-errors" role="alert"></div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12">
|
|
||||||
{% if not messages and not form.non_field_errors %}
|
{% if not messages and not form.non_field_errors %}
|
||||||
<p class="card-warning-content">
|
<p class="card-warning-content">
|
||||||
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
|
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
|
||||||
|
@ -154,9 +138,11 @@
|
||||||
<div id='payment_error'>
|
<div id='payment_error'>
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
|
{% if 'failed_payment' or 'make_charge_error' in message.tags %}
|
||||||
<ul class="list-unstyled"><li>
|
<ul class="list-unstyled">
|
||||||
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
|
<li>
|
||||||
</li></ul>
|
<p class="card-warning-content card-warning-error">{{ message|safe }}</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
@ -166,22 +152,15 @@
|
||||||
</p>
|
</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="text-right">
|
||||||
<div class="col-xs-12">
|
<button class="btn btn-vm-contact btn-wide" type="submit">{%trans "SUBMIT" %}</button>
|
||||||
<div class="col-xs-6 pull-right">
|
|
||||||
<button class="btn btn-success stripe-payment-btn" type="submit">{%trans "Submit" %}
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row" style="display:none;">
|
<div style="display:none;">
|
||||||
<div class="col-xs-12">
|
|
||||||
<p class="payment-errors"></p>
|
<p class="payment-errors"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</form>
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -10,6 +10,7 @@ from .views import (
|
||||||
HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView,
|
HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView,
|
||||||
SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView)
|
SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView)
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'index/?$', IndexView.as_view(), name='index'),
|
url(r'index/?$', IndexView.as_view(), name='index'),
|
||||||
url(r'django/?$', DjangoHostingView.as_view(), name='djangohosting'),
|
url(r'django/?$', DjangoHostingView.as_view(), name='djangohosting'),
|
||||||
|
|
|
@ -616,7 +616,6 @@ class PaymentVMView(LoginRequiredMixin, FormView):
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if 'next' in request.session:
|
if 'next' in request.session:
|
||||||
del request.session['next']
|
del request.session['next']
|
||||||
|
|
||||||
return self.render_to_response(self.get_context_data())
|
return self.render_to_response(self.get_context_data())
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
|
@ -639,7 +638,7 @@ class PaymentVMView(LoginRequiredMixin, FormView):
|
||||||
|
|
||||||
request.session['billing_address_data'] = billing_address_data
|
request.session['billing_address_data'] = billing_address_data
|
||||||
request.session['token'] = token
|
request.session['token'] = token
|
||||||
request.session['customer'] = customer.id
|
request.session['customer'] = customer.stripe_id
|
||||||
return HttpResponseRedirect("{url}?{query_params}".format(
|
return HttpResponseRedirect("{url}?{query_params}".format(
|
||||||
url=reverse('hosting:order-confirmation'),
|
url=reverse('hosting:order-confirmation'),
|
||||||
query_params='page=payment'))
|
query_params='page=payment'))
|
||||||
|
@ -664,16 +663,12 @@ class OrdersHostingDetailView(LoginRequiredMixin,
|
||||||
context = super(DetailView, self).get_context_data(**kwargs)
|
context = super(DetailView, self).get_context_data(**kwargs)
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
owner = self.request.user
|
owner = self.request.user
|
||||||
stripe_customer_id = self.request.session.get('customer')
|
stripe_api_cus_id = self.request.session.get('customer')
|
||||||
customer = StripeCustomer.objects.filter(id=stripe_customer_id).first()
|
|
||||||
stripe_utils = StripeUtils()
|
stripe_utils = StripeUtils()
|
||||||
if customer:
|
card_details = stripe_utils.get_card_details(
|
||||||
card_details = stripe_utils.get_card_details(
|
stripe_api_cus_id,
|
||||||
customer.stripe_id,
|
self.request.session.get('token')
|
||||||
self.request.session.get('token')
|
)
|
||||||
)
|
|
||||||
else:
|
|
||||||
card_details = {}
|
|
||||||
|
|
||||||
if self.request.GET.get('page') == 'payment':
|
if self.request.GET.get('page') == 'payment':
|
||||||
context['page_header_text'] = _('Confirm Order')
|
context['page_header_text'] = _('Confirm Order')
|
||||||
|
@ -751,14 +746,15 @@ class OrdersHostingDetailView(LoginRequiredMixin,
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
template = request.session.get('template')
|
template = request.session.get('template')
|
||||||
specs = request.session.get('specs')
|
specs = request.session.get('specs')
|
||||||
stripe_customer_id = request.session.get('customer')
|
# We assume that if the user is here, his/her StripeCustomer
|
||||||
customer = StripeCustomer.objects.filter(id=stripe_customer_id).first()
|
# object already exists
|
||||||
|
stripe_customer_id = request.user.stripecustomer.id
|
||||||
billing_address_data = request.session.get('billing_address_data')
|
billing_address_data = request.session.get('billing_address_data')
|
||||||
vm_template_id = template.get('id', 1)
|
vm_template_id = template.get('id', 1)
|
||||||
|
stripe_api_cus_id = self.request.session.get('customer')
|
||||||
# Make stripe charge to a customer
|
# Make stripe charge to a customer
|
||||||
stripe_utils = StripeUtils()
|
stripe_utils = StripeUtils()
|
||||||
card_details = stripe_utils.get_card_details(customer.stripe_id,
|
card_details = stripe_utils.get_card_details(stripe_api_cus_id,
|
||||||
request.session.get(
|
request.session.get(
|
||||||
'token'))
|
'token'))
|
||||||
if not card_details.get('response_object'):
|
if not card_details.get('response_object'):
|
||||||
|
@ -785,7 +781,7 @@ class OrdersHostingDetailView(LoginRequiredMixin,
|
||||||
name=plan_name,
|
name=plan_name,
|
||||||
stripe_plan_id=stripe_plan_id)
|
stripe_plan_id=stripe_plan_id)
|
||||||
subscription_result = stripe_utils.subscribe_customer_to_plan(
|
subscription_result = stripe_utils.subscribe_customer_to_plan(
|
||||||
customer.stripe_id,
|
stripe_api_cus_id,
|
||||||
[{"plan": stripe_plan.get(
|
[{"plan": stripe_plan.get(
|
||||||
'response_object').stripe_plan_id}])
|
'response_object').stripe_plan_id}])
|
||||||
stripe_subscription_obj = subscription_result.get('response_object')
|
stripe_subscription_obj = subscription_result.get('response_object')
|
||||||
|
|
Loading…
Reference in a new issue