From cc5eaa40472b73f9931d050858141bbf82e80dce Mon Sep 17 00:00:00 2001
From: Arvind Tiwari <tiwariav@gmail.com>
Date: Fri, 1 Sep 2017 23:06:57 +0530
Subject: [PATCH] new template for datacenterlight/payment

---
 .../datacenterlight/landing_payment.html      | 217 ++++++++++++++++++
 datacenterlight/views.py                      |   6 +-
 2 files changed, 220 insertions(+), 3 deletions(-)
 create mode 100644 datacenterlight/templates/datacenterlight/landing_payment.html

diff --git a/datacenterlight/templates/datacenterlight/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html
new file mode 100644
index 00000000..f4974a56
--- /dev/null
+++ b/datacenterlight/templates/datacenterlight/landing_payment.html
@@ -0,0 +1,217 @@
+{% extends "hosting/base_short.html" %}
+{% load staticfiles bootstrap3 i18n %}
+
+{% block navbar %}
+    {% include "datacenterlight/includes/_navbar.html" %}
+{% endblock navbar %}
+
+{% block content %}
+<!-- Credit card form -->
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css"/>
+<div class="dcl-order-container">
+    <div class="payment-container">
+        <div class="row">
+            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 dcl-order-sec">
+                <h3><strong>{%trans "Your Order" %}</strong></h3>
+                <div class="col-xs-6 col-sm-12 col-md-12 col-lg-12 dcl-order-table-header">
+                    <div class="col-xs-12 col-sm-2 col-md-1 col-lg-1 tbl-header">
+                        {%trans "Cores" %}
+                    </div>
+                    <div class="col-xs-12 col-sm-3 col-md-4 col-lg-4 tbl-header">
+                        {%trans "Memory" %}
+                    </div>
+                    <div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 tbl-header">
+                        {%trans "Disk space" %}
+                    </div>
+                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-header">
+                        {%trans "Configuration" %}
+                    </div>
+                </div>
+                <div class="col-xs-6 col-sm-12 col-md-12 col-lg-12 dcl-order-table-content">
+                    <div class="col-xs-12 col-sm-2 col-md-1 col-lg-1 tbl-content">
+                        {{request.session.specs.cpu|floatformat}}
+                    </div>
+                    <div class="col-xs-12 col-sm-3 col-md-4 col-lg-4 tbl-content">
+                        {{request.session.specs.memory|floatformat}} GB
+                    </div>
+                    <div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 tbl-content">
+                        {{request.session.specs.disk_size|floatformat}} GB
+                    </div>
+                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-content">
+                        {{request.session.template.name}}
+                    </div>
+                </div>
+                <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 dcl-order-table-total">
+                    <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 tbl-tot tbl-no-padding">
+                        {%trans "Total" %} <span>{%trans "including VAT" %}</span>
+                    </div>
+                    <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 tbl-no-padding">
+                        <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4"></div>
+                        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 tbl-total">{{request.session.specs.price}}
+                            CHF<span class="dcl-price-month">/{% trans "Month" %}</span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 dcl-billing-sec">
+                <div class="col-xs-12 col-sm-5 col-md-6  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 class="col-xs-12 col-sm-7 col-md-6 creditcard-box dcl-creditcard">
+                    <h3><b>{%trans "Credit Card"%}</b></h3>
+                    <hr>
+                    <div>
+                        <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>
+                        <br>
+                        <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>
+                            <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">
+                                                {% 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>
+                                <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 %}
+                            <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 %}
+                                            <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>
+                                    <div class="col-xs-12">
+                                        <div class="col-xs-6 pull-right">
+                                            <button class="btn btn-success stripe-payment-btn" type="submit">{%trans "Submit" %}
+                                            </button>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="row" style="display:none;">
+                                    <div class="col-xs-12">
+                                        <p class="payment-errors"></p>
+                                    </div>
+                                </div>
+                            </form>
+
+                            {% endif %}
+                        </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%}
diff --git a/datacenterlight/views.py b/datacenterlight/views.py
index b6a644e4..8b4e20ef 100644
--- a/datacenterlight/views.py
+++ b/datacenterlight/views.py
@@ -406,7 +406,7 @@ class WhyDataCenterLightView(IndexView):
 
 
 class PaymentOrderView(FormView):
-    template_name = 'hosting/payment.html'
+    template_name = 'datacenterlight/landing_payment.html'
     form_class = BillingAddressForm
 
     def get_form_kwargs(self):
@@ -434,8 +434,8 @@ class PaymentOrderView(FormView):
 
     @cache_control(no_cache=True, must_revalidate=True, no_store=True)
     def get(self, request, *args, **kwargs):
-        if 'specs' not in request.session or 'user' not in request.session:
-            return HttpResponseRedirect(reverse('datacenterlight:index'))
+        # if 'specs' not in request.session or 'user' not in request.session:
+        #     return HttpResponseRedirect(reverse('datacenterlight:index'))
         return self.render_to_response(self.get_context_data())
 
     def post(self, request, *args, **kwargs):