244 lines
13 KiB
HTML
244 lines
13 KiB
HTML
{% extends "hosting/base_short.html" %}
|
|
{% load staticfiles bootstrap3 i18n humanize %}
|
|
|
|
{% block css_extra %}
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css"/>
|
|
{% endblock css_extra %}
|
|
|
|
{% block content %}
|
|
<!-- Credit card form -->
|
|
<div class="dcl-order-container">
|
|
<div class="payment-container">
|
|
<div class="dcl-order-sec">
|
|
<h3><strong>{%trans "Your Order" %}</strong></h3>
|
|
<div class="row">
|
|
<div class="col-xs-6 col-sm-12">
|
|
<div class="dcl-order-table-header">
|
|
<div class="row">
|
|
<div class="col-sm-2">
|
|
<div class="tbl-header">
|
|
{%trans "Cores" %}
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="tbl-header tbl-header-center">
|
|
{%trans "Memory" %}
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="tbl-header tbl-header-center">
|
|
{%trans "Disk space" %}
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="tbl-header tbl-header-right">
|
|
{%trans "Configuration" %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-6 col-sm-12">
|
|
<div class="dcl-order-table-content">
|
|
<div class="row">
|
|
<div class="col-sm-2">
|
|
<div class="tbl-content">
|
|
{{request.session.specs.cpu|floatformat}}
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="tbl-content tbl-content-center">
|
|
{{request.session.specs.memory|floatformat}} GB
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="tbl-content tbl-content-center">
|
|
{{request.session.specs.disk_size|floatformat|intcomma}} GB
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<div class="tbl-content tbl-content-right">
|
|
{{request.session.template.name}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="dcl-order-table-total">
|
|
<div class="row">
|
|
<div class="col-xs-6">
|
|
<div class="tbl-tot">
|
|
{%trans "Total" %}
|
|
<span>{% if vm_pricing.vat_inclusive %}{%trans "including VAT" %}{% else %}{%trans "excluding VAT" %}{% endif %}</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-6">
|
|
<div class="tbl-total">
|
|
{{request.session.specs.price|intcomma}} CHF/{% trans "Month" %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% if vm_pricing.discount_amount %}
|
|
<hr class="thin-hr">
|
|
<div class="row">
|
|
<div class="col-xs-6">
|
|
<div class="tbl-tot">
|
|
{%trans "Discount" as discount_name %}
|
|
{{ vm_pricing.discount_name|default:discount_name }} <br>
|
|
<span>({% trans "Will be applied at checkout" %})</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-6 text-right">
|
|
<div class="tbl-total">
|
|
<div class="text-primary">- {{ vm_pricing.discount_amount }} CHF/{% trans "Month" %}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="dcl-billing-sec">
|
|
<div class="row">
|
|
<div class="col-sm-5 col-md-6">
|
|
<div class="billing dcl-billing">
|
|
<h3><b>{%trans "Billing Address"%}</b></h3>
|
|
<hr>
|
|
<form role="form" id="billing-form" method="post" action="" novalidate>
|
|
{% for field in form %}
|
|
{% csrf_token %}
|
|
{% bootstrap_field field show_label=False type='fields'%}
|
|
{% endfor %}
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-7 col-md-6">
|
|
<div class="creditcard-box dcl-creditcard">
|
|
<h3><b>{%trans "Credit Card"%}</b></h3>
|
|
<hr>
|
|
<div>
|
|
<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 %}
|
|
</p>
|
|
<div>
|
|
{% if credit_card_data.last4 %}
|
|
<form role="form" id="payment-form-with-creditcard" novalidate>
|
|
<h5 class="billing-head">Credit Card</h5>
|
|
<h5 class="membership-lead">Last 4: *****{{credit_card_data.last4}}</h5>
|
|
<h5 class="membership-lead">Type: {{credit_card_data.cc_brand}}</h5>
|
|
<input type="hidden" name="credit_card_needed" value="false"/>
|
|
</form>
|
|
{% if not messages and not form.non_field_errors %}
|
|
<p class="card-warning-content card-warning-addtional-margin">
|
|
{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}
|
|
</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 class="text-right">
|
|
<button id="payment_button_with_creditcard" class="btn btn-vm-contact" type="submit">{%trans "SUBMIT" %}</button>
|
|
</div>
|
|
{% else %}
|
|
<form action="" id="payment-form-new" method="POST">
|
|
<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 id="card-errors"></div>
|
|
{% if not messages and not form.non_field_errors %}
|
|
<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." %}
|
|
</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 class="text-right">
|
|
<button class="btn btn-vm-contact btn-wide" type="submit">{%trans "SUBMIT" %}</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="display:none;">
|
|
<p class="payment-errors"></p>
|
|
</div>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- stripe key data -->
|
|
{% if stripe_key %}
|
|
{% get_current_language as LANGUAGE_CODE %}
|
|
<script type="text/javascript">
|
|
window.processing_text = '{%trans "Processing" %}';
|
|
window.enter_your_card_text = '{%trans "Enter your credit card number" %}';
|
|
|
|
(function () {
|
|
window.stripeKey = "{{stripe_key}}";
|
|
window.current_lan = "{{LANGUAGE_CODE}}";
|
|
})();
|
|
</script>
|
|
{%endif%}
|
|
|
|
{% if credit_card_data.last4 and credit_card_data.cc_brand %}
|
|
<script type="text/javascript">
|
|
(function () {
|
|
window.hasCreditcard = true;
|
|
})();
|
|
</script>
|
|
{%endif%}
|
|
|
|
{%endblock%}
|