From df55757be3b9a40c37b12bc831b917419d6507fc Mon Sep 17 00:00:00 2001
From: Miguel Cardenas <miguelcarde.3@gmail.com>
Date: Thu, 13 Jul 2017 12:04:05 -0500
Subject: [PATCH 01/56] Change font family for header

---
 .../datacenterlight/css/landing-page.css       | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index 077faef7..34ed0950 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -7,6 +7,10 @@
     font-family: 'Lato-Regular';
     src: url('../fonts/Lato/Lato-Regular.ttf');
 }
+@font-face {
+    font-family: 'Lato-Light';
+    src: url('../fonts/Lato/Lato-Light.ttf');
+}
 body,
 html {
     width: 100%;
@@ -108,12 +112,12 @@ h6 {
 }
 .navbar-default .navbar-nav>li>a {
     cursor: pointer;
-    font-family: 'Lato-Regular', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
 }
 .navbar-transparent .navbar-nav>li>a {
     color: #fff;
     cursor: pointer;
-    font-family: 'Lato-Regular', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
 }
 .navbar-transparent .navbar-nav>li>a:hover {
     color: #fff;
@@ -147,13 +151,13 @@ h6 {
 }
 .navbar-transparent .nav-language .select-language{
     color: #fff;
-    font-family: 'Lato-Regular', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
 }
 
 .nav-language .select-language span{
     margin-left: 5px;
     margin-right: 5px;
-    font-family: 'Lato-Regular', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
 
 }
 .nav-language .drop-language{
@@ -175,7 +179,7 @@ h6 {
 }
 .nav-language .drop-language a{
    cursor: pointer;
-   font-family: 'Lato-Regular', sans-serif;
+   font-family: 'Lato-Light', sans-serif;
 }
 .navbar-transparent .nav-language .drop-language{
     background: transparent;
@@ -183,7 +187,7 @@ h6 {
 }
 .navbar-transparent .nav-language .drop-language a{
     color: #fff;
-    font-family: 'Lato-Regular', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
 }
 .nav-language:hover .drop-language{
     display: block;
@@ -705,7 +709,7 @@ tech-sub-sec h2 {
 .dropdown-menu > li > a {
     font-size: 13px;
     font-weight: 300;
-    font-family: 'Lato-Regular', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
 }
 .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > .active > a:hover {
     background: #2D457A;

From a8be59d7a220630c51193c49dc137a51d28dee57 Mon Sep 17 00:00:00 2001
From: Andrii Marynets <andrii.marynets@gmail.com>
Date: Thu, 13 Jul 2017 22:53:15 +0300
Subject: [PATCH 02/56] Add GA to all important apps

---
 digitalglarus/templates/new_base_glarus.html  | 19 ++++++----
 dynamicweb/settings/base.py                   |  5 ++-
 hosting/templates/hosting/base.html           | 19 ++++++----
 hosting/templates/hosting/base_short.html     |  3 ++
 hosting/templates/hosting/beta.html           | 19 ++++++----
 .../templates/hosting/hosting_pricing.html    |  4 +-
 .../cms/ungleichch/base_ungleich.html         | 20 ++++++----
 .../templates/ungleich_page/landing.html      | 37 ++++++++++---------
 8 files changed, 75 insertions(+), 51 deletions(-)

diff --git a/digitalglarus/templates/new_base_glarus.html b/digitalglarus/templates/new_base_glarus.html
index 826b49c0..1c4cd4c4 100644
--- a/digitalglarus/templates/new_base_glarus.html
+++ b/digitalglarus/templates/new_base_glarus.html
@@ -46,16 +46,19 @@
     <![endif]-->
     <!-- <link href="css/ungleich.css" rel="stylesheet" type="text/css"></link> -->
     <!-- Google tracking -->
-    <script src="//www.google-analytics.com/analytics.js" async></script><script>
-      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+    <!--<script src="//www.google-analytics.com/analytics.js" async></script><script>-->
+      <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
+      <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
+      <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
+      <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-      ga('create', 'UA-62285904-1', 'auto');
-      ga('send', 'pageview');
+      <!--ga('create', 'UA-62285904-1', 'auto');-->
+      <!--ga('send', 'pageview');-->
 
-    </script>
+    <!--</script>-->
+    <!-- Google analytics -->
+    {% include 'google_analytics.html' %}
+    <!-- End Google Analytics -->
     <link rel="shortcut icon" href="{% static 'digitalglarus/img/favicon.ico' %}" type="image/x-icon">
     <style id="igtranslator-color" type="text/css"></style>
     <style type="text/css">
diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py
index 56c1e589..9ff09b8d 100644
--- a/dynamicweb/settings/base.py
+++ b/dynamicweb/settings/base.py
@@ -515,8 +515,11 @@ DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS')
 
 # Settings for Google analytics
 GOOGLE_ANALYTICS_PROPERTY_IDS = {
-    'datacenterlight.ch': 'UA-62285904-9',
+    'ungleich.ch': 'UA-62285904-1',
     'digitalglarus.ch': 'UA-62285904-2',
+    'blog.ungleich.ch': 'UA-62285904-4',
+    'datacenterlight.ch': 'UA-62285904-9',
+
     '127.0.0.1:8000': 'localhost',
     'dynamicweb-development.ungleich.ch': 'development',
     'dynamicweb-staging.ungleich.ch': 'staging'
diff --git a/hosting/templates/hosting/base.html b/hosting/templates/hosting/base.html
index 8d7036e5..43147323 100644
--- a/hosting/templates/hosting/base.html
+++ b/hosting/templates/hosting/base.html
@@ -45,16 +45,19 @@
     }
 </style>
 {% endwith %}   
-<script>
-  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+<!--<script>-->
+  <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
+  <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
+  <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
+  <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-  ga('create', 'UA-62285904-5', 'auto');
-  ga('send', 'pageview');
+  <!--ga('create', 'UA-62285904-5', 'auto');-->
+  <!--ga('send', 'pageview');-->
 
-</script>
+<!--</script>-->
+    <!-- Google analytics -->
+    {% include "google_analytics.html" %}
+    <!-- End Google Analytics -->
 
 </head>
 <body>
diff --git a/hosting/templates/hosting/base_short.html b/hosting/templates/hosting/base_short.html
index c3b19c8c..6a08b97b 100644
--- a/hosting/templates/hosting/base_short.html
+++ b/hosting/templates/hosting/base_short.html
@@ -40,6 +40,9 @@
         <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
     <![endif]-->
 
+    <!-- Google analytics -->
+    {% include "google_analytics.html" %}
+    <!-- End Google Analytics -->
 </head>
 
 <body>
diff --git a/hosting/templates/hosting/beta.html b/hosting/templates/hosting/beta.html
index 68cbb5a9..caecdb82 100644
--- a/hosting/templates/hosting/beta.html
+++ b/hosting/templates/hosting/beta.html
@@ -31,16 +31,19 @@
         <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
         <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
     <![endif]-->
-<script>
-  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+<!--<script>-->
+  <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
+  <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
+  <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
+  <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-  ga('create', 'UA-62285904-5', 'auto');
-  ga('send', 'pageview');
+  <!--ga('create', 'UA-62285904-5', 'auto');-->
+  <!--ga('send', 'pageview');-->
 
-</script>
+<!--</script>-->
+    <!-- Google analytics -->
+    {% include 'google_analytics.html' %}
+    <!-- End Google Analytics -->
 
 </head>
 
diff --git a/hosting/templates/hosting/hosting_pricing.html b/hosting/templates/hosting/hosting_pricing.html
index c6ae33d0..9032ddd6 100644
--- a/hosting/templates/hosting/hosting_pricing.html
+++ b/hosting/templates/hosting/hosting_pricing.html
@@ -18,7 +18,9 @@
     <link href="{% static 'hosting/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
     <link href="//fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
     <link rel="shortcut icon" href="{% static 'hosting/img/favicon.ico' %}" type="image/x-icon" />
-
+    <!-- Google analytics -->
+    {% include 'google_analytics.html' %}
+    <!-- End Google Analytics -->
 </head>
 <body>
 
diff --git a/ungleich/templates/cms/ungleichch/base_ungleich.html b/ungleich/templates/cms/ungleichch/base_ungleich.html
index 30dfdeb9..2acadfce 100644
--- a/ungleich/templates/cms/ungleichch/base_ungleich.html
+++ b/ungleich/templates/cms/ungleichch/base_ungleich.html
@@ -34,6 +34,10 @@
     {% endblock %}
     {% render_block "external-css" %}
     {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
+
+    <!-- Google analytics -->
+    {% include "google_analytics.html" %}
+    <!-- End Google Analytics -->
   </head>
   <body>
 
@@ -60,16 +64,16 @@
     {% bootstrap_javascript %}
     {% endaddtoblock %}
     {% addtoblock "js" %}
-    <script>
-      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+    <!--<script>-->
+      <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
+      <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
+      <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
+      <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-      ga('create', 'UA-62285904-4', 'auto');
-      ga('send', 'pageview');
+      <!--ga('create', 'UA-62285904-4', 'auto');-->
+      <!--ga('send', 'pageview');-->
 
-    </script>
+    <!--</script>-->
 
     <script src="{% static 'blog.ungleich.ch/vendor/js/jquery.min.js' %}" type="text/javascript" />
     <script src="{% static 'blog.ungleich.ch/js/navbar-scroll-up.js' %}" type="text/javascript" />
diff --git a/ungleich_page/templates/ungleich_page/landing.html b/ungleich_page/templates/ungleich_page/landing.html
index 0eaf0a2c..8e09ac2d 100644
--- a/ungleich_page/templates/ungleich_page/landing.html
+++ b/ungleich_page/templates/ungleich_page/landing.html
@@ -32,25 +32,28 @@
     <link href="{% static 'ungleich_page/css/ungleich.css' %}" rel="stylesheet">
 
 
-    <!-- Google tracking -->
-    <script src="//www.google-analytics.com/analytics.js" async></script>
-    <script>
-        (function (i, s, o, g, r, a, m) {
-            i['GoogleAnalyticsObject'] = r;
-            i[r] = i[r] || function () {
-                        (i[r].q = i[r].q || []).push(arguments)
-                    }, i[r].l = 1 * new Date();
-            a = s.createElement(o),
-                    m = s.getElementsByTagName(o)[0];
-            a.async = 1;
-            a.src = g;
-            m.parentNode.insertBefore(a, m)
-        })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
+    <!--&lt;!&ndash; Google tracking &ndash;&gt;-->
+    <!--<script src="//www.google-analytics.com/analytics.js" async></script>-->
+    <!--<script>-->
+        <!--(function (i, s, o, g, r, a, m) {-->
+            <!--i['GoogleAnalyticsObject'] = r;-->
+            <!--i[r] = i[r] || function () {-->
+                        <!--(i[r].q = i[r].q || []).push(arguments)-->
+                    <!--}, i[r].l = 1 * new Date();-->
+            <!--a = s.createElement(o),-->
+                    <!--m = s.getElementsByTagName(o)[0];-->
+            <!--a.async = 1;-->
+            <!--a.src = g;-->
+            <!--m.parentNode.insertBefore(a, m)-->
+        <!--})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');-->
 
-        ga('create', 'UA-62285904-1', 'auto');
-        ga('send', 'pageview');
+        <!--ga('create', 'UA-62285904-1', 'auto');-->
+        <!--ga('send', 'pageview');-->
 
-    </script>
+    <!--</script>-->
+    <!-- Google analytics -->
+    {% include "google_analytics.html" %}
+    <!-- End Google Analytics -->
     <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
     <style id="igtranslator-color" type="text/css"></style>
 </head>

From c7feed6a7354c8ca9e45383fa6edd464d532bf42 Mon Sep 17 00:00:00 2001
From: Andrii Marynets <andrii.marynets@gmail.com>
Date: Thu, 13 Jul 2017 23:50:11 +0300
Subject: [PATCH 03/56] Delete commented code

---
 digitalglarus/templates/new_base_glarus.html  | 10 ----------
 dynamicweb/settings/base.py                   |  1 +
 hosting/templates/hosting/base.html           |  9 ---------
 hosting/templates/hosting/beta.html           |  9 ---------
 .../cms/ungleichch/base_ungleich.html         |  9 ---------
 .../templates/ungleich_page/landing.html      | 20 -------------------
 6 files changed, 1 insertion(+), 57 deletions(-)

diff --git a/digitalglarus/templates/new_base_glarus.html b/digitalglarus/templates/new_base_glarus.html
index 1c4cd4c4..3b18756d 100644
--- a/digitalglarus/templates/new_base_glarus.html
+++ b/digitalglarus/templates/new_base_glarus.html
@@ -45,17 +45,7 @@
     <script src="{% static 'digitalglarus/https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
     <![endif]-->
     <!-- <link href="css/ungleich.css" rel="stylesheet" type="text/css"></link> -->
-    <!-- Google tracking -->
-    <!--<script src="//www.google-analytics.com/analytics.js" async></script><script>-->
-      <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
-      <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
-      <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
-      <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-      <!--ga('create', 'UA-62285904-1', 'auto');-->
-      <!--ga('send', 'pageview');-->
-
-    <!--</script>-->
     <!-- Google analytics -->
     {% include 'google_analytics.html' %}
     <!-- End Google Analytics -->
diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py
index 9ff09b8d..bd6e30e3 100644
--- a/dynamicweb/settings/base.py
+++ b/dynamicweb/settings/base.py
@@ -518,6 +518,7 @@ GOOGLE_ANALYTICS_PROPERTY_IDS = {
     'ungleich.ch': 'UA-62285904-1',
     'digitalglarus.ch': 'UA-62285904-2',
     'blog.ungleich.ch': 'UA-62285904-4',
+    'hosting': 'UA-62285904-5',
     'datacenterlight.ch': 'UA-62285904-9',
 
     '127.0.0.1:8000': 'localhost',
diff --git a/hosting/templates/hosting/base.html b/hosting/templates/hosting/base.html
index 43147323..b485451f 100644
--- a/hosting/templates/hosting/base.html
+++ b/hosting/templates/hosting/base.html
@@ -45,16 +45,7 @@
     }
 </style>
 {% endwith %}   
-<!--<script>-->
-  <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
-  <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
-  <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
-  <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-  <!--ga('create', 'UA-62285904-5', 'auto');-->
-  <!--ga('send', 'pageview');-->
-
-<!--</script>-->
     <!-- Google analytics -->
     {% include "google_analytics.html" %}
     <!-- End Google Analytics -->
diff --git a/hosting/templates/hosting/beta.html b/hosting/templates/hosting/beta.html
index caecdb82..bdf37f58 100644
--- a/hosting/templates/hosting/beta.html
+++ b/hosting/templates/hosting/beta.html
@@ -31,16 +31,7 @@
         <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
         <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
     <![endif]-->
-<!--<script>-->
-  <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
-  <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
-  <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
-  <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-  <!--ga('create', 'UA-62285904-5', 'auto');-->
-  <!--ga('send', 'pageview');-->
-
-<!--</script>-->
     <!-- Google analytics -->
     {% include 'google_analytics.html' %}
     <!-- End Google Analytics -->
diff --git a/ungleich/templates/cms/ungleichch/base_ungleich.html b/ungleich/templates/cms/ungleichch/base_ungleich.html
index 2acadfce..ac073c4c 100644
--- a/ungleich/templates/cms/ungleichch/base_ungleich.html
+++ b/ungleich/templates/cms/ungleichch/base_ungleich.html
@@ -64,16 +64,7 @@
     {% bootstrap_javascript %}
     {% endaddtoblock %}
     {% addtoblock "js" %}
-    <!--<script>-->
-      <!--(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){-->
-      <!--(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),-->
-      <!--m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)-->
-      <!--})(window,document,'script','//www.google-analytics.com/analytics.js','ga');-->
 
-      <!--ga('create', 'UA-62285904-4', 'auto');-->
-      <!--ga('send', 'pageview');-->
-
-    <!--</script>-->
 
     <script src="{% static 'blog.ungleich.ch/vendor/js/jquery.min.js' %}" type="text/javascript" />
     <script src="{% static 'blog.ungleich.ch/js/navbar-scroll-up.js' %}" type="text/javascript" />
diff --git a/ungleich_page/templates/ungleich_page/landing.html b/ungleich_page/templates/ungleich_page/landing.html
index 8e09ac2d..6d9e4a5e 100644
--- a/ungleich_page/templates/ungleich_page/landing.html
+++ b/ungleich_page/templates/ungleich_page/landing.html
@@ -31,26 +31,6 @@
 
     <link href="{% static 'ungleich_page/css/ungleich.css' %}" rel="stylesheet">
 
-
-    <!--&lt;!&ndash; Google tracking &ndash;&gt;-->
-    <!--<script src="//www.google-analytics.com/analytics.js" async></script>-->
-    <!--<script>-->
-        <!--(function (i, s, o, g, r, a, m) {-->
-            <!--i['GoogleAnalyticsObject'] = r;-->
-            <!--i[r] = i[r] || function () {-->
-                        <!--(i[r].q = i[r].q || []).push(arguments)-->
-                    <!--}, i[r].l = 1 * new Date();-->
-            <!--a = s.createElement(o),-->
-                    <!--m = s.getElementsByTagName(o)[0];-->
-            <!--a.async = 1;-->
-            <!--a.src = g;-->
-            <!--m.parentNode.insertBefore(a, m)-->
-        <!--})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');-->
-
-        <!--ga('create', 'UA-62285904-1', 'auto');-->
-        <!--ga('send', 'pageview');-->
-
-    <!--</script>-->
     <!-- Google analytics -->
     {% include "google_analytics.html" %}
     <!-- End Google Analytics -->

From aa7856ebc0f376657ad6cce875c86e35bf290480 Mon Sep 17 00:00:00 2001
From: Miguel Cardenas <miguelcarde.3@gmail.com>
Date: Thu, 13 Jul 2017 18:26:14 -0500
Subject: [PATCH 04/56] change color of header

---
 datacenterlight/static/datacenterlight/css/landing-page.css | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index 34ed0950..17ef3dbd 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -51,8 +51,8 @@ h6 {
     transition: all .2s ease-in;
 }
 .btn-primary{
-    background: #29427A;
-    border-color: #29427A;
+    background: #465882;
+    border-color: transparent;
     color: #fff;
     width: auto;
 }
@@ -211,7 +211,7 @@ h6 {
     bottom: 0;
     left: 0;
     right: 0;
-    background: rgba(90, 116, 175, 0.7);
+    background: rgba(38, 59, 107, 0.7);
 }
 .intro-header-1 {
     padding-top: 50px; /* If you're making other pages, make sure there is 50px of padding to make sure the navbar doesn't overlap content! */

From d711b524e1bf86e4fa0b5f5c419ef50ce4817190 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 15 Jul 2017 19:39:51 +0530
Subject: [PATCH 05/56] New layout for payment page

---
 hosting/static/hosting/css/landing-page.css | 228 ++++++++++++++---
 hosting/templates/hosting/payment.html      | 265 +++++++++++---------
 2 files changed, 343 insertions(+), 150 deletions(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 0c927239..bdc0b7db 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -4,14 +4,15 @@
  * For details, see http://www.apache.org/licenses/LICENSE-2.0.
  */
 
-
 @font-face {
     font-family: 'Lato-Regular';
     src: url('../fonts/Lato/Lato-Regular.ttf');
 }
+
 @font-face {
     src: url('../fonts/Lato/Lato-Black.ttf');
 }
+
 @font-face {
     font-family: 'Lato-Light';
     src: url('../fonts/Lato/Lato-Light.ttf');
@@ -33,6 +34,7 @@ h6 {
     font-family: 'Lato-Regular', sans-serif;
     font-weight: 300;
 }
+
 .topnav {
     font-size: 14px;
 }
@@ -191,17 +193,19 @@ h6 {
     float: right;
     margin-top: 0;
 }
+
 /*------Auth section---------*/
-.auth-container{
+.auth-container {
     height: 100vh;
     position: relative;
 }
-.auth-bg{
+
+.auth-bg {
     background: url(../img/auth-bg.jpg);
     position: fixed;
     left: 0;
     top: 0;
-     width: 100%;
+    width: 100%;
     height: 100vh;
     background-repeat: no-repeat;
     background-position: center center;
@@ -209,7 +213,8 @@ h6 {
     background-attachment: fixed;
 
 }
-.auth-bg::before{
+
+.auth-bg::before {
     content: "";
     position: absolute;
     top: 0;
@@ -219,26 +224,30 @@ h6 {
     background: rgba(75, 75, 101, 0.55);
     z-index: 1;
 }
-.auth-container .container{
+
+.auth-container .container {
     z-index: 1000;
 }
-.auth-container .auth-content{
+
+.auth-container .auth-content {
     width: 100%;
     margin: 0 auto;
     max-width: 390px;
 }
-.auth-container .auth-center{
-    position: absolute; 
-    left: 50%; 
-    top: 50%; 
-    transform: translate(-50%,-50%); 
+
+.auth-container .auth-center {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    transform: translate(-50%, -50%);
     width: 100%;
 }
 
-.auth-container .auth-title{
+.auth-container .auth-title {
     margin-bottom: 50px;
 }
-.auth-container .auth-title h2{
+
+.auth-container .auth-title h2 {
     color: #fff;
     font-size: 44px;
     text-align: center;
@@ -247,7 +256,8 @@ h6 {
     margin-bottom: 30px;
     position: relative;
 }
-.auth-container .auth-title h2::after{
+
+.auth-container .auth-title h2::after {
     content: "";
     position: absolute;
     bottom: -20px;
@@ -258,17 +268,17 @@ h6 {
     transform: translate(-50%, 0);
 }
 
-.auth-box{
+.auth-box {
     background: #fff;
     padding: 0;
     padding-bottom: 30px;
     box-sizing: border-box;
-    box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
+    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
     border-radius: 4px;
     z-index: 10;
 }
 
-.auth-box .section-heading{
+.auth-box .section-heading {
     color: #5a5a5a;
     padding-top: 30px;
     padding-bottom: 5px;
@@ -279,42 +289,51 @@ h6 {
     border-radius: 3px 3px 0px 0px;
     margin: 0 auto;
 }
-.auth-box .form{
+
+.auth-box .form {
     padding: 20px;
     width: 80%;
     margin: 0 auto;
 }
-.auth-box .form .red{
+
+.auth-box .form .red {
     color: #ea3a3a;
 }
-.auth-box .form .btn{
-    box-shadow: 0 0px 9px rgba(0,0,0,0.19), 0 3px 5px rgba(0,0,0,0.23);
+
+.auth-box .form .btn {
+    box-shadow: 0 0px 9px rgba(0, 0, 0, 0.19), 0 3px 5px rgba(0, 0, 0, 0.23);
     letter-spacing: 3px;
     font-size: 17px;
     text-transform: uppercase;
 }
-.auth-box .form .form-control{
+
+.auth-box .form .form-control {
     height: 44px;
     font-size: 16px;
 }
+
 .auth-box .auth-footer {
     text-align: center;
     padding: 10px;
 }
-.auth-box .auth-footer .text{
+
+.auth-box .auth-footer .text {
     color: #777;
 }
-.auth-box .auth-footer .links a{
-    color: #1e94cc;
-}
-.auth-box .auth-footer .links a:hover{
+
+.auth-box .auth-footer .links a {
     color: #1e94cc;
 }
 
-.auth-box.sign-up{
+.auth-box .auth-footer .links a:hover {
+    color: #1e94cc;
+}
+
+.auth-box.sign-up {
     padding-bottom: 5px;
 }
-.auth-box.sign-up .form{
+
+.auth-box.sign-up .form {
     padding: 15px 20px 0 20px;
 }
 
@@ -325,6 +344,7 @@ h6 {
     line-height: 30px;
     font-family: 'Lato' !important;
 }
+
 .sign-up-message a {
     font-size: 18px;
     color: #1e94cc !important;
@@ -353,38 +373,47 @@ h6 {
     ul.banner-social-buttons > li:last-child {
         margin-bottom: 0;
     }
+
     .auth-box .form {
         padding: 15px 0px 0 0;
     }
+
     .auth-box.sign-up .form {
         padding: 15px 0px 0 0;
     }
+
     .auth-box .form .form-control {
         height: 44px;
         font-size: 13px;
     }
+
     .auth-container .auth-title {
         display: none;
     }
 }
+
 @media (max-width: 540px) {
-    .auth-container .auth-title h2{
+    .auth-container .auth-title h2 {
         font-size: 32px;
         width: 90%;
         margin-bottom: 50px;
     }
-    .auth-container.auth-signup .auth-title h2{
+
+    .auth-container.auth-signup .auth-title h2 {
         font-size: 20px;
         width: 90%;
         margin-bottom: 50px;
     }
+
     .auth-box .form {
         width: 90%;
     }
+
     .auth-box .section-heading {
         font-size: 15px;
     }
 }
+
 footer {
     padding: 2%;
     background-color: #f8f8f8;
@@ -418,3 +447,138 @@ a.unlink:hover {
     color: inherit;
 }
 
+/***** DCL payment page **********/
+.dcl-order-container {
+    font-family: Lato;
+}
+
+.dcl-order-table-header {
+    border-bottom: 1px solid #eee;
+    padding-top: 15px;
+    padding-bottom: 15px;
+    font-size: 18px;
+    color: #999;
+    text-align: center;
+    font-weight: 400;
+}
+
+.dcl-order-table-content {
+    border-bottom: 1px solid #eee;
+    padding-top: 15px;
+    padding-bottom: 15px;
+    font-size: 18px;
+    font-weight: 600;
+    text-align: center;
+}
+
+.tbl-content {
+}
+
+.dcl-order-table-total {
+    border-bottom: 4px solid #eee;
+    padding-top: 15px;
+    padding-bottom: 20px;
+    font-size: 20px;
+    font-weight: 600;
+    color: #999;
+}
+
+.dcl-order-table-total span {
+    font-size: 12px;
+    color: #999;
+    font-weight: 400;
+}
+
+.dcl-order-table-total .tbl-total {
+    text-align: center;
+    color: #000;
+}
+
+.tbl-no-padding {
+    padding: 0px;
+}
+
+.dcl-billing-sec {
+    margin-top: 50px;
+}
+
+@media (max-width: 767px) {
+    .dcl-order-sec {
+        padding: 10px 20px 30px 20px;
+        border-bottom: 4px solid #eee;
+    }
+
+    .tbl-header {
+        border-bottom: 1px solid #eee;
+        padding: 10px 0;
+    }
+
+    .tbl-content {
+        border-bottom: 1px solid #eee;
+        padding: 10px 0;
+    }
+
+    .dcl-order-table-header {
+        border-bottom: 0px solid #eee;
+        padding: 10px 0;
+        text-align: left;
+    }
+
+    .dcl-order-table-content {
+        border-bottom: 0px solid #eee;
+        padding: 10px 0;
+        text-align: right;
+    }
+
+    .dcl-order-table-total {
+        font-size: 18px;
+        color: #000;
+        padding: 10px 0;
+        border-bottom: 0px solid #eee;
+    }
+
+    .dcl-order-table-total .tbl-total {
+        padding: 0px;
+        text-align: right;
+    }
+
+    .dcl-billing-sec {
+        margin-top: 30px;
+    }
+}
+
+@media (min-width: 1200px) {
+    .dcl-order-container {
+        width: 990px;
+        padding-right: 15px;
+        padding-left: 15px;
+        margin-right: auto;
+        margin-left: auto;
+    }
+}
+
+@media (min-width: 768px) {
+    .dcl-billing {
+        padding-right: 50px;
+        border-right: 1px solid #eee;
+    }
+
+    .dcl-creditcard {
+        padding-left: 50px;
+    }
+
+    .tbl-tot {
+        padding-left: 35px;
+    }
+
+    .content-dashboard {
+        width: auto !important;
+    }
+
+}
+
+@media only screen and (max-width: 1330px) and (min-width: 1200px) {
+    .content-dashboard {
+        width: 100% !important;
+    }
+}
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index faacee82..7f3aa0ab 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -2,129 +2,156 @@
 {% load staticfiles bootstrap3 i18n %}
 {% block content %}
 <!-- Credit card form -->
-<div>
-	<div class="payment-container">
-		<div class="row">
-		    <div class="col-xs-12 col-md-offset-2 col-md-4 summary-box">
-            	<form role="form" novalidate>
-            		<div class="row">
-            			<div class="col-xs-12">
-								<h3><b>{%trans "Billing Amount" %}</b></h3>
-							<hr>
-							<div class="content">
-								<!-- <p><b>Type</b> <span class="pull-right">{{request.session.vm_specs.location_code}}</span></p> -->
-								<!-- <hr> -->
-								<p><b>{%trans "Cores"%}</b> <span
-                                    class="pull-right">{{request.session.specs.cpu|floatformat}}</span></p>
-								<hr>
-								<p><b>{%trans "Memory"%}</b> <span
-                                    class="pull-right">{{request.session.specs.memory|floatformat}} GB</span></p>
-								<hr>
-								<p><b>{%trans "Disk space"%}</b> <span
-                                    class="pull-right">{{request.session.specs.disk_size|floatformat}} GB</span></p>
-								<hr>
-								<p><b>{%trans "Configuration"%}</b> <span
-                                    class="pull-right">{{request.session.template.name}}</span></p>
-								<hr>
-								<h4>Total<p
-                                    class="pull-right"><b>{{request.session.specs.price }} CHF</b></p></h4>
-							</div>
-						</div>
-					</div>
-				</form>
-
-			</div>
-			<div class="col-xs-12 col-md-4  billing">
-				<h3><b>{%trans "Billing Address"%}</b></h3>
-				<hr>
-				<form role="form" id="billing-form" method="post" action="" novalidate>
-	                {% for field in form %}
+<div class="dcl-order-container 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>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-2 col-lg-2 tbl-header">
+                        Cores
+                    </div>
+                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-header">
+                        Memory
+                    </div>
+                    <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2 tbl-header">
+                        Disk space
+                    </div>
+                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-header">
+                        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-2 col-lg-2 tbl-content">
+                        1
+                    </div>
+                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-content">
+                        2 GB
+                    </div>
+                    <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2 tbl-content">
+                        10 GB
+                    </div>
+                    <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-content">
+                        CentOS 7
+                    </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">
+                        Total <span>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-6 col-md-6 col-lg-6"></div>
+                        <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-total">15CHF</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 %}
-	                {% bootstrap_form_errors form type='non_fields'%}
-                </form>
-			</div>
-		</div>
-	    <div class="row">
-	    	<div class="col-xs-12 col-md-offset-2 col-md-4 "></div>
-	        <div class="col-xs-12 col-md-4 creditcard-box">
-				<h3><b>{%trans "Credit Card"%}</b></h3>
-				<hr>
-	            <div>
-					<div>
-						<p> {% trans '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.' %}</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>
+                        {% bootstrap_field field show_label=False type='fields'%}
+                        {% endfor %}
+                        {% bootstrap_form_errors form type='non_fields'%}
+                    </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>{% trans '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.' %}</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">
-			       <br>
-			       <div class="col-xs-12>
-				       <p style="font-family: Lato;border: 1px solid #a1a1a1;border-radius: 3px; padding: 5px; ">{% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}</p>
-			       </div>
-			       <div class="col-xs-12">
-                      	           <div class="col-xs-6 pull-right">
-                                       <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;" id="payment_button_with_creditcard" class="btn btn-success" type="submit">
-							 {% trans "Submit" %}
-				       </button>
-				   </div>
-		               </div>
-		      </div>
-                    {% else %}
-
-
-	                    <form role="form" id="payment-form" novalidate>
                             <div class="row">
-                            <div class="form-group col-xs-12">
-                            <div id="card-element">
-                              <!-- a Stripe Element will be inserted here. -->
-                              </div>
+                                <br>
+                                <div class="col-xs-12>
+				                    <p>
+                                        {% trans " You are not making any payment yet. After submitting your card
+                                     information,
+                                     you
+                                     will be taken to the Confirm Order Page.
+                                " %}
+                                </p>
                             </div>
-                             </div>
-                             <div id="card-errors" role="alert"></div>
-	                        <div class="row">
-								<br>
-								<div class="col-xs-12">
-									<p style="font-family: Lato;border: 1px solid #a1a1a1;border-radius: 3px; padding: 5px;"> {% trans "You are not making any payment yet. After submitting your card information, you will be taken to the Confirm Order Page." %}</p>
-								</div>
-							    <div class="col-xs-12">
-									<div class="col-xs-6 pull-right">
-										<button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;" class="btn btn-success" 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>
-	                        {% if paymentError %}
-	                        <div class="row">
-	                            <div class="col-xs-12">
-	                            	<p>
-	                             	{% bootstrap_alert paymentError alert_type='danger' %}
-	                             	</p>
-	                            </div>
-	                        </div>
-	                        {% endif %}
+                            <div class="col-xs-12">
+                                <div class="col-xs-6 pull-right">
+                                    <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;"
+                                            id="payment_button_with_creditcard" class="btn btn-success"
+                                            type="submit">
+                                        {% trans "Submit" %}
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        {% else %}
 
 
-	                    </form>
-                    {% endif %}
+                        <form role="form" id="payment-form" novalidate>
+                            <div class="row">
+                                <div class="form-group col-xs-12">
+                                    <div id="card-element">
+                                        <!-- a Stripe Element will be inserted here. -->
+                                    </div>
+                                </div>
+                            </div>
+                            <div id="card-errors" role="alert"></div>
+                            <div class="row">
+                                <br>
+                                <div class="col-xs-12">
+                                    <p style="font-family: Lato;border: 1px solid #a1a1a1;border-radius: 3px; padding: 5px;">
+                                        {% trans "You are not making any payment yet. After submitting your card
+                                        information, you will be taken to the Confirm Order Page." %}</p>
+                                </div>
+                                <div class="col-xs-12">
+                                    <div class="col-xs-6 pull-right">
+                                        <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;"
+                                                class="btn btn-success" 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>
+                            {% if paymentError %}
+                            <div class="row">
+                                <div class="col-xs-12">
+                                    <p>
+                                        {% bootstrap_alert paymentError alert_type='danger' %}
+                                    </p>
+                                </div>
+                            </div>
+                            {% endif %}
 
-	                </div>
-	            </div>
-	        </div>
-	    </div>
-	</div>
+
+                        </form>
+                        {% endif %}
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
 
 </div>
 
@@ -134,7 +161,7 @@
 <script type="text/javascript">
 
 
-     (function () {
+    (function () {
         window.stripeKey = "{{stripe_key}}";
         window.current_lan = "{{LANGUAGE_CODE}}";
     })();
@@ -143,7 +170,9 @@
 
 {% if credit_card_data.last4 and credit_card_data.cc_brand %}
 <script type="text/javascript">
-     (function () {window.hasCreditcard = true;})();
+    (function () {
+        window.hasCreditcard = true;
+    })();
 </script>
 
 {%endif%}

From 623c7e0d992553d9f8462fe09185224ce9b32fd4 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 15 Jul 2017 20:44:28 +0530
Subject: [PATCH 06/56] Added some padding to vat text and increased its font
 size

---
 hosting/static/hosting/css/landing-page.css | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index bdc0b7db..53b7ab70 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -484,9 +484,10 @@ a.unlink:hover {
 }
 
 .dcl-order-table-total span {
-    font-size: 12px;
+    font-size: 13px;
     color: #999;
     font-weight: 400;
+    padding-left: 5px;
 }
 
 .dcl-order-table-total .tbl-total {

From 481dadcfe552383ec25ec42452ca9c5af0ce77a3 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 03:37:19 +0530
Subject: [PATCH 07/56] Implementing new credit card js code

---
 hosting/static/hosting/js/payment.js | 120 +++++++++++++++++++++++++--
 1 file changed, 114 insertions(+), 6 deletions(-)

diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index af9a9e71..f0c93ba5 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -1,3 +1,28 @@
+var cardBrandToPfClass = {
+   'visa': 'pf-visa',
+  'mastercard': 'pf-mastercard',
+  'amex': 'pf-american-express',
+  'discover': 'pf-discover',
+  'diners': 'pf-diners',
+  'jcb': 'pf-jcb',
+  'unknown': 'pf-credit-card',
+}
+
+function setBrandIcon(brand) {
+    var brandIconElement = document.getElementById('brand-icon');
+    var pfClass = 'pf-credit-card';
+    if (brand in cardBrandToPfClass) {
+        pfClass = cardBrandToPfClass[brand];
+    }
+    for (var i = brandIconElement.classList.length - 1; i >= 0; i--) {
+         brandIconElement.classList.remove(brandIconElement.classList[i]);
+    }
+    brandIconElement.classList.add('pf');
+    brandIconElement.classList.add(pfClass);
+}
+
+
+
 $( document ).ready(function() {
 
 
@@ -32,8 +57,91 @@ $( document ).ready(function() {
     if (!hasCreditcard){
         var stripe = Stripe(window.stripeKey);
         var elements = stripe.elements({locale: window.current_lan});
-        var card = elements.create('card', options={hidePostalCode: true});
-        card.mount('#card-element');
+        //var card = elements.create('card', options={hidePostalCode: true});
+        //card.mount('#card-element');
+        /* new card */
+        var server_url = "https://datacenterlight.ch";
+        var element_style = {
+            fonts: [{
+                    family: 'lato-light',
+                    src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Light.woff) format("woff2")',
+                }, {
+                    family: 'lato-regular',
+					src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Regular.woff) format("woff2")',
+				},
+            ]
+        }        
+        var elements = stripe.elements(element_style);
+        
+        var style = {
+          base: {
+            iconColor: '#666EE8',
+            color: '#31325F',
+            lineHeight: '40px',
+            fontWeight: 300,
+            fontFamily: "'Lato', sans-serif",
+            fontSize: '14px',
+        
+            '::placeholder': {
+              color: '#333',
+            },
+          },
+        };
+        
+var credit_card_text_style = {
+  base: {
+    iconColor: '#666EE8',
+    color: '#31325F',
+    lineHeight: '40px',
+    fontWeight: 300,
+    fontFamily: "'lato-light', sans-serif",
+    fontSize: '14px',
+    '::placeholder': {
+      color: '#777',
+    },
+  },
+};        
+var credit_card_cvv_style = {
+  base: {
+    iconColor: '#666EE8',
+    color: '#31325F',
+    lineHeight: '40px',
+    fontWeight: 300,
+    fontFamily: "'lato-regular', sans-serif",
+    fontSize: '14px',
+    '::placeholder': {
+      color: '#555',
+    },
+  },
+};        
+        
+        var cardNumberElement = elements.create('cardNumber', {
+          style: credit_card_text_style,
+          placeholder : "____ ____ ____ ____",
+        });
+        cardNumberElement.mount('#card-number-element');
+        
+        var cardExpiryElement = elements.create('cardExpiry', {
+          style: credit_card_cvv_style
+        });
+        cardExpiryElement.mount('#card-expiry-element');
+        
+        var cardCvcElement = elements.create('cardCvc', {
+          style: credit_card_cvv_style
+        });
+        cardCvcElement.mount('#card-cvc-element');
+        cardNumberElement.on('change', function(event) {
+            // Switch brand logo
+            if (event.brand) {
+                setBrandIcon(event.brand);
+            }
+            setOutcome(event);
+        });
+        $('#payment-form').submit(function(e) {
+            e.preventDefault();
+            stripe.createToken(cardNumberElement).then(setOutcome);
+       });
+        /* new card end */
     }
     console.log("has creditcard", hasCreditcard);
     // hasCreditcard= true;
@@ -53,8 +161,8 @@ $( document ).ready(function() {
 
 
 
-    var $form = $('#payment-form');
-    $form.submit(payWithStripe);
+    //var $form = $('#payment-form');
+    //$form.submit(payWithStripe);
 
     /* If you're using Stripe for payments */
     function payWithStripe(e) {
@@ -120,7 +228,7 @@ $( document ).ready(function() {
       return this.optional(element) || /^[0-9]{2}$/.test(value);
     }, "Please specify a valid 2-digit year.");
 
-    validator = $form.validate({
+    /*validator = $form.validate({
         rules: {
             cardNumber: {
                 required: true,
@@ -149,7 +257,7 @@ $( document ).ready(function() {
         errorPlacement: function(error, element) {
             $(element).closest('.form-group').append(error);
         }
-    });
+    });*/
 
     paymentFormReady = function() {
         if ($form.find('[name=cardNumber]').hasClass("success") &&

From 2bd5702b09dae6f42d97d84c68f336b05708eebd Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 03:38:48 +0530
Subject: [PATCH 08/56] Modified payment.html to include credit card number ,
 cvv and year as separate Stripe elements

---
 hosting/templates/hosting/payment.html | 178 ++++++++++++++-----------
 1 file changed, 103 insertions(+), 75 deletions(-)

diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 7f3aa0ab..c96e408e 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -2,46 +2,49 @@
 {% load staticfiles bootstrap3 i18n %}
 {% 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 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>Your Order</strong></h3>
+                <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-2 col-lg-2 tbl-header">
-                        Cores
+                    <div class="col-xs-12 col-sm-1 col-md-1 col-lg-1 tbl-header">
+                        {%trans "Cores" %}
                     </div>
                     <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-header">
-                        Memory
+                        {%trans "Memory" %}
                     </div>
-                    <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2 tbl-header">
-                        Disk space
+                    <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">
-                        Configuration
+                        {%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-2 col-lg-2 tbl-content">
-                        1
+                    <div class="col-xs-12 col-sm-1 col-md-1 col-lg-1 tbl-content">
+                        {{request.session.specs.cpu|floatformat}}
                     </div>
                     <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-content">
-                        2 GB
+                        {{request.session.specs.memory|floatformat}} GB
                     </div>
-                    <div class="col-xs-12 col-sm-2 col-md-2 col-lg-2 tbl-content">
-                        10 GB
+                    <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">
-                        CentOS 7
+                        {{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">
-                        Total <span>including VAT</span>
+                        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-6 col-md-6 col-lg-6"></div>
-                        <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-total">15CHF</div>
+                        <div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 tbl-total">{{request.session.specs.price}}
+                            CHF
+                        </div>
                     </div>
                 </div>
             </div>
@@ -64,11 +67,13 @@
                     <hr>
                     <div>
                         <div>
-                            <p>{% trans '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.' %}</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 %}
+                            </p>
                         </div>
                         <br>
                         <div>
@@ -81,78 +86,101 @@
                             </form>
 
                             <div class="row">
-                                <br>
-                                <div class="col-xs-12>
-				                    <p>
-                                        {% trans " You are not making any payment yet. After submitting your card
-                                     information,
-                                     you
-                                     will be taken to the Confirm Order Page.
-                                " %}
-                                </p>
-                            </div>
-                            <div class="col-xs-12">
-                                <div class="col-xs-6 pull-right">
-                                    <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;"
-                                            id="payment_button_with_creditcard" class="btn btn-success"
-                                            type="submit">
-                                        {% trans "Submit" %}
-                                    </button>
-                                </div>
-                            </div>
-                        </div>
-                        {% else %}
-
-
-                        <form role="form" id="payment-form" novalidate>
-                            <div class="row">
-                                <div class="form-group col-xs-12">
-                                    <div id="card-element">
-                                        <!-- a Stripe Element will be inserted here. -->
-                                    </div>
-                                </div>
-                            </div>
-                            <div id="card-errors" role="alert"></div>
-                            <div class="row">
-                                <br>
                                 <div class="col-xs-12">
-                                    <p style="font-family: Lato;border: 1px solid #a1a1a1;border-radius: 3px; padding: 5px;">
-                                        {% trans "You are not making any payment yet. After submitting your card
-                                        information, you will be taken to the Confirm Order Page." %}</p>
+                                    <p>
+                                        {% blocktrans %}
+                                        You are not making any payment yet. After submitting your card
+                                        information, you will be taken to the Confirm Order Page.
+                                        {% endblocktrans %}
+                                    </p>
                                 </div>
                                 <div class="col-xs-12">
                                     <div class="col-xs-6 pull-right">
                                         <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;"
-                                                class="btn btn-success" type="submit">{% trans "Submit" %}
+                                                id="payment_button_with_creditcard" class="btn btn-success"
+                                                type="submit">
+                                            {% trans "Submit" %}
                                         </button>
                                     </div>
                                 </div>
                             </div>
-                            <div class="row" style="display:none;">
-                                <div class="col-xs-12">
-                                    <p class="payment-errors"></p>
+                            {% else %}
+
+
+                            <form role="form" id="payment-form" novalidate>
+                                <div class="row">
+                                    <div class="form-group col-xs-12">
+                                        <div id="card-element">
+                                            <!-- a Stripe Element will be inserted here. -->
+                                        </div>
+                                    </div>
                                 </div>
-                            </div>
-                            {% if paymentError %}
-                            <div class="row">
-                                <div class="col-xs-12">
-                                    <p>
-                                        {% bootstrap_alert paymentError alert_type='danger' %}
-                                    </p>
+                                <div class="row">
+                                    <div class="form-group col-xs-12">
+                                        <div id="new-card-element">
+                                            <!-- a Stripe Element will be inserted here. -->
+  <form action="" method="POST">
+    <input type="hidden" name="token" />
+    <div class="group">
+		<div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
+      <div class="card-number-element">
+        <div id="card-number-element" class="field"></div>
+      </div>
+      <div class="card-expiry-element">
+        <div id="card-expiry-element" class="field"></div>
+      </div>
+      <div class="card-cvc-element">
+        <div id="card-cvc-element" class="field"></div>
+      </div>
+    </div>
+    <div class="outcome">
+      <div class="error"></div>
+    </div>
+  </form>                                        
+                                        </div>
+                                    </div>
                                 </div>
-                            </div>
+                                <div id="card-errors" role="alert"></div>
+                                <div class="row">
+                                    <div class="col-xs-12">
+                                        <p class="card-warning-content">
+                                            {% blocktrans %}
+                                            You are not making any payment yet. After submitting your card
+                                            information, you will be taken to the Confirm Order Page.
+                                            {% endblocktrans %}
+                                        </p>
+                                    </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>
+                                {% if paymentError %}
+                                <div class="row">
+                                    <div class="col-xs-12">
+                                        <p>
+                                            {% bootstrap_alert paymentError alert_type='danger' %}
+                                        </p>
+                                    </div>
+                                </div>
+                                {% endif %}
+
+
+                            </form>
                             {% endif %}
-
-
-                        </form>
-                        {% endif %}
-
+                        </div>
                     </div>
                 </div>
             </div>
         </div>
     </div>
-
 </div>
 
 <!-- stripe key data -->

From 30058efa415316878ae2461f1e1d79897c5a1a4f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 03:39:37 +0530
Subject: [PATCH 09/56] Inroduced credit card holder's name in Billing Address

---
 utils/forms.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/utils/forms.py b/utils/forms.py
index 15086dc6..250ba803 100644
--- a/utils/forms.py
+++ b/utils/forms.py
@@ -104,8 +104,9 @@ class BillingAddressForm(forms.ModelForm):
 
     class Meta:
         model = BillingAddress
-        fields = ['street_address', 'city', 'postal_code', 'country']
+        fields = ['cardholder_name', 'street_address', 'city', 'postal_code', 'country']
         labels = {
+            'cardholder_name': _('Cardholder Name'),
             'street_address': _('Street Address'),
             'city': _('City'),
             'postal_code': _('Postal Code'),

From 9d4cbb2be527478b3d681b9e7bc7d63ae801de21 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 03:40:30 +0530
Subject: [PATCH 10/56] Introduced credit card holder's name in
 BaseBillingAddress model

---
 utils/models.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/utils/models.py b/utils/models.py
index 2aee584b..bd03f822 100644
--- a/utils/models.py
+++ b/utils/models.py
@@ -8,6 +8,7 @@ from .fields import CountryField
 # Create your models here.
 
 class BaseBillingAddress(models.Model):
+    cardholder_name = models.CharField(max_length=100)
     street_address = models.CharField(max_length=100)
     city = models.CharField(max_length=50)
     postal_code = models.CharField(max_length=50)

From 73982f3c7bc58f74b91c41d10fe6cc0ef5d57654 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 03:41:20 +0530
Subject: [PATCH 11/56] Updated DE translations for some reformatted EN texts

---
 hosting/locale/de/LC_MESSAGES/django.po | 86 ++++++++++++++++---------
 1 file changed, 57 insertions(+), 29 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 89257629..547406a9 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-11 00:02+0530\n"
+"POT-Creation-Date: 2017-07-16 03:34+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"
@@ -26,47 +26,47 @@ msgstr "Dein Account wurde noch nicht aktiviert."
 msgid "Paste here your public key"
 msgstr "Fügen Sie Ihren public key ein"
 
-#: templates/hosting/base_short.html:68
+#: templates/hosting/base_short.html:71
 msgid "My Virtual Machines"
 msgstr "Meine virtuellen Maschinen"
 
-#: templates/hosting/base_short.html:73 templates/hosting/orders.html.py:12
+#: templates/hosting/base_short.html:76 templates/hosting/orders.html.py:12
 msgid "My Orders"
 msgstr "Meine Bestellungen"
 
-#: templates/hosting/base_short.html:82
+#: templates/hosting/base_short.html:85
 msgid "Keys"
 msgstr "Schlüssel"
 
-#: templates/hosting/base_short.html:87
+#: templates/hosting/base_short.html:90
 msgid "Notifications "
 msgstr "Benachrichtigungen"
 
-#: templates/hosting/base_short.html:90
+#: templates/hosting/base_short.html:93
 msgid "Logout"
 msgstr "Abmelden"
 
-#: templates/hosting/base_short.html:95
+#: templates/hosting/base_short.html:98
 msgid "How it works"
 msgstr "So funktioniert es"
 
-#: templates/hosting/base_short.html:98
+#: templates/hosting/base_short.html:101
 msgid "Your infrastructure"
 msgstr "deine Infrastruktur"
 
-#: templates/hosting/base_short.html:101
+#: templates/hosting/base_short.html:104
 msgid "Our inftrastructure"
 msgstr "Unsere Infrastruktur"
 
-#: templates/hosting/base_short.html:104
+#: templates/hosting/base_short.html:107
 msgid "Pricing"
 msgstr "Preise"
 
-#: templates/hosting/base_short.html:107
+#: templates/hosting/base_short.html:110
 msgid "Contact"
 msgstr "Kontakt"
 
-#: templates/hosting/base_short.html:110
+#: templates/hosting/base_short.html:113
 #: templates/hosting/confirm_reset_password.html:38
 #: templates/hosting/login.html:17 templates/hosting/login.html.py:26
 #: templates/hosting/reset_password.html:32 templates/hosting/signup.html:30
@@ -289,17 +289,17 @@ msgstr "Bezahlmethode"
 msgid "Order summary"
 msgstr "Bestellungsübersicht"
 
-#: templates/hosting/order_detail.html:65 templates/hosting/payment.html:17
+#: templates/hosting/order_detail.html:65 templates/hosting/payment.html:13
 #: templates/hosting/virtual_machine_detail.html:76
 msgid "Cores"
 msgstr "Prozessorkerne"
 
-#: templates/hosting/order_detail.html:67 templates/hosting/payment.html:20
+#: templates/hosting/order_detail.html:67 templates/hosting/payment.html:16
 #: templates/hosting/virtual_machine_detail.html:82
 msgid "Memory"
 msgstr "Arbeitsspeicher"
 
-#: templates/hosting/order_detail.html:69 templates/hosting/payment.html:23
+#: templates/hosting/order_detail.html:69 templates/hosting/payment.html:19
 msgid "Disk space"
 msgstr "Festplattenkapazität"
 
@@ -349,46 +349,71 @@ msgstr "Schliessen"
 msgid "Delete"
 msgstr "Löschen"
 
-#: templates/hosting/payment.html:12
-msgid "Billing Amount"
-msgstr "Rechnungsbetrag"
+#: templates/hosting/payment.html:10
+msgid "Your Order"
+msgstr ""
 
-#: templates/hosting/payment.html:26
+#: templates/hosting/payment.html:22
 #: templates/hosting/virtual_machine_detail.html:98
 msgid "Configuration"
 msgstr "Konfiguration"
 
-#: templates/hosting/payment.html:38
+#: templates/hosting/payment.html:41
+msgid "including VAT"
+msgstr ""
+
+#: templates/hosting/payment.html:55
 msgid "Billing Address"
 msgstr "Rechnungsadresse"
 
-#: templates/hosting/payment.html:52
+#: templates/hosting/payment.html:66
 msgid "Credit Card"
 msgstr "Kreditkarte"
 
-#: templates/hosting/payment.html:56
+#: templates/hosting/payment.html:71
 msgid ""
-"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."
+"\n"
+"                                Please fill in your credit card information "
+"below. We are using <a\n"
+"                                    href=\"https://stripe.com\" target="
+"\"_blank\">Stripe</a> for payment and do not store\n"
+"                                your information in our database.\n"
+"                                "
 msgstr ""
 "Bitte füll deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
 "\"https://stripe.com\" target=\"_blank\">Stripe</a> für die Bezahlung und "
 "speichern keine Informationen in unserer Datenbank."
 
-#: templates/hosting/payment.html:71 templates/hosting/payment.html.py:96
+#: templates/hosting/payment.html:91
 msgid ""
-"You are not making any payment yet. After submitting your card information, "
-"you will be taken to the Confirm Order Page."
+"\n"
+"                                        You are not making any payment yet. "
+"After submitting your card\n"
+"                                        information, you will be taken to "
+"the Confirm Order Page.\n"
+"                                        "
 msgstr ""
 "Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
-#: templates/hosting/payment.html:76 templates/hosting/payment.html.py:100
+#: templates/hosting/payment.html:102 templates/hosting/payment.html.py:155
 msgid "Submit"
 msgstr "Absenden"
 
+#: templates/hosting/payment.html:147
+msgid ""
+"\n"
+"                                            You are not making any payment "
+"yet. After submitting your card\n"
+"                                            information, you will be taken "
+"to the Confirm Order Page.\n"
+"                                            "
+msgstr ""
+"Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
+"Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
+"weitergeleitet."
+
 #: templates/hosting/reset_password.html:15
 msgid "Reset your password"
 msgstr "Passwort zurücksetzen"
@@ -535,6 +560,9 @@ msgid ""
 "contact Data Center Light Support."
 msgstr ""
 
+#~ msgid "Billing Amount"
+#~ msgstr "Rechnungsbetrag"
+
 #~ msgid "Payment Details"
 #~ msgstr "Rechnungsdetails"
 

From b64198c2c06331209b4f0355dba04b9588bc3951 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 03:41:54 +0530
Subject: [PATCH 12/56] Added styles for the new credit card form

---
 hosting/static/hosting/css/landing-page.css | 54 +++++++++++++++++++--
 1 file changed, 50 insertions(+), 4 deletions(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 53b7ab70..54076de3 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -456,10 +456,10 @@ a.unlink:hover {
     border-bottom: 1px solid #eee;
     padding-top: 15px;
     padding-bottom: 15px;
-    font-size: 18px;
-    color: #999;
+    font-size: 16px;
+    color: #333;
     text-align: center;
-    font-weight: 400;
+    font-weight: 300;
 }
 
 .dcl-order-table-content {
@@ -503,7 +503,51 @@ a.unlink:hover {
     margin-top: 50px;
 }
 
+.dcl-order-sec {
+    padding: 0 30px;
+}
+
+.card-warning-content {
+    font-family: Lato;
+    border: 1px solid #a1a1a1;
+    border-radius: 3px; 
+    padding: 5px;
+}
+
+.stripe-payment-btn{
+    width: auto;
+    float: right;
+    font-style: normal;
+    font-weight: bold;
+    position: absolute;
+    right: 0;
+}
+.brand {
+    float: left;
+    width: 8%;
+}
+.brand #brand-icon {
+    vertical-align: bottom;
+    padding-top: 13px;
+}
+.card-number-element {
+    float: left;
+    width: 63%;
+}
+.card-expiry-element {
+    float: left;
+    width: 17%;
+}
+.card-cvc-element {
+    float: left;
+    width: 10%;
+}
+
 @media (max-width: 767px) {
+    .dcl-order-table-total span {
+        padding-left: 3px;
+    }
+
     .dcl-order-sec {
         padding: 10px 20px 30px 20px;
         border-bottom: 4px solid #eee;
@@ -529,6 +573,7 @@ a.unlink:hover {
         border-bottom: 0px solid #eee;
         padding: 10px 0;
         text-align: right;
+        font-size: 16px;
     }
 
     .dcl-order-table-total {
@@ -545,6 +590,7 @@ a.unlink:hover {
 
     .dcl-billing-sec {
         margin-top: 30px;
+        margin-bottom: 30px;
     }
 }
 
@@ -569,7 +615,7 @@ a.unlink:hover {
     }
 
     .tbl-tot {
-        padding-left: 35px;
+        padding-left: 17px;
     }
 
     .content-dashboard {

From ba72527f2fabdfea9cdb127c1a768f741ed75f5b Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 15:23:18 +0530
Subject: [PATCH 13/56] Added validations for credit card inputs. Made credit
 card holder's name default value empty in the model.

---
 hosting/static/hosting/js/payment.js   | 82 ++++++++++++++++++++------
 hosting/templates/hosting/payment.html | 78 ++++++++++++++++--------
 utils/models.py                        |  2 +-
 3 files changed, 116 insertions(+), 46 deletions(-)

diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index f0c93ba5..737221e9 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -1,5 +1,5 @@
 var cardBrandToPfClass = {
-   'visa': 'pf-visa',
+  'visa': 'pf-visa',
   'mastercard': 'pf-mastercard',
   'amex': 'pf-american-express',
   'discover': 'pf-discover',
@@ -24,10 +24,6 @@ function setBrandIcon(brand) {
 
 
 $( document ).ready(function() {
-
-
-
-
     $.ajaxSetup({ 
          beforeSend: function(xhr, settings) {
              function getCookie(name) {
@@ -57,8 +53,8 @@ $( document ).ready(function() {
     if (!hasCreditcard){
         var stripe = Stripe(window.stripeKey);
         var elements = stripe.elements({locale: window.current_lan});
-        //var card = elements.create('card', options={hidePostalCode: true});
-        //card.mount('#card-element');
+        /*var card = elements.create('card', options={hidePostalCode: true});
+        card.mount('#card-element');*/
         /* new card */
         var server_url = "https://datacenterlight.ch";
         var element_style = {
@@ -100,7 +96,19 @@ var credit_card_text_style = {
       color: '#777',
     },
   },
-};        
+  invalid: {
+    iconColor: '#eb4d5c',
+    color: '#eb4d5c',
+    lineHeight: '40px',
+    fontWeight: 300,
+    fontFamily: "'lato-regular', sans-serif",
+    fontSize: '14px',
+    '::placeholder': {
+      color: '#eb4d5c',
+      fontWeight: 400,
+    }
+  }
+};
 var credit_card_cvv_style = {
   base: {
     iconColor: '#666EE8',
@@ -113,7 +121,19 @@ var credit_card_cvv_style = {
       color: '#555',
     },
   },
-};        
+  invalid: {
+    iconColor: '#eb4d5c',
+    color: '#eb4d5c',
+    lineHeight: '40px',
+    fontWeight: 300,
+    fontFamily: "'lato-regular', sans-serif",
+    fontSize: '14px',
+    '::placeholder': {
+      color: '#eb4d5c',
+      fontWeight: 600,
+    },  
+  }
+};
         
         var cardNumberElement = elements.create('cardNumber', {
           style: credit_card_text_style,
@@ -135,12 +155,12 @@ var credit_card_cvv_style = {
             if (event.brand) {
                 setBrandIcon(event.brand);
             }
-            setOutcome(event);
+            //setOutcome(event);
         });
-        $('#payment-form').submit(function(e) {
+        /*$('#payment-form').submit(function(e) {
             e.preventDefault();
             stripe.createToken(cardNumberElement).then(setOutcome);
-       });
+       });*/
         /* new card end */
     }
     console.log("has creditcard", hasCreditcard);
@@ -162,7 +182,9 @@ var credit_card_cvv_style = {
 
 
     //var $form = $('#payment-form');
+    var $form_new = $('#payment-form-new');
     //$form.submit(payWithStripe);
+    $form_new.submit(payWithStripe_new);
 
     /* If you're using Stripe for payments */
     function payWithStripe(e) {
@@ -173,7 +195,6 @@ var credit_card_cvv_style = {
           var form = document.getElementById('payment-form');
           var hiddenInput = document.createElement('input');
           $('#id_token').val(token.id);
-
           $('#billing-form').submit();
         }
 
@@ -218,7 +239,30 @@ var credit_card_cvv_style = {
         //     }
         // });
     }
+    function payWithStripe_new(e) {
+        e.preventDefault();
 
+        function stripeTokenHandler(token) {
+          // Insert the token ID into the form so it gets submitted to the server
+          var form = document.getElementById('payment-form-new');
+          var hiddenInput = document.createElement('input');
+          $('#id_token').val(token.id);
+          $('#billing-form').submit();
+        }
+
+
+        stripe.createToken(cardNumberElement).then(function(result) {
+            if (result.error) {
+              // Inform the user if there was an error
+              var errorElement = document.getElementById('card-errors');
+              errorElement.textContent = result.error.message;
+            } else {
+                $form_new.find('[type=submit]').html('Processing <i class="fa fa-spinner fa-pulse"></i>');
+                // Send the token to your server
+                stripeTokenHandler(result.token);
+            }
+        });
+    }
     /* Form validation */
     $.validator.addMethod("month", function(value, element) {
       return this.optional(element) || /^(01|02|03|04|05|06|07|08|09|10|11|12)$/.test(value);
@@ -228,7 +272,7 @@ var credit_card_cvv_style = {
       return this.optional(element) || /^[0-9]{2}$/.test(value);
     }, "Please specify a valid 2-digit year.");
 
-    /*validator = $form.validate({
+    validator = $form_new.validate({
         rules: {
             cardNumber: {
                 required: true,
@@ -257,13 +301,13 @@ var credit_card_cvv_style = {
         errorPlacement: function(error, element) {
             $(element).closest('.form-group').append(error);
         }
-    });*/
+    });
 
     paymentFormReady = function() {
-        if ($form.find('[name=cardNumber]').hasClass("success") &&
-            $form.find('[name=expMonth]').hasClass("success") &&
-            $form.find('[name=expYear]').hasClass("success") &&
-            $form.find('[name=cvCode]').val().length > 1) {
+        if ($form_new.find('[name=cardNumber]').hasClass("success") &&
+            $form_new.find('[name=expMonth]').hasClass("success") &&
+            $form_new.find('[name=expYear]').hasClass("success") &&
+            $form_new.find('[name=cvCode]').val().length > 1) {
             return true;
         } else {
             return false;
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index c96e408e..a73d09d6 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -84,7 +84,6 @@
                                 <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">
                                     <p>
@@ -104,40 +103,20 @@
                                     </div>
                                 </div>
                             </div>
+                            
                             {% else %}
 
-
-                            <form role="form" id="payment-form" novalidate>
+                            <!--form role="form" id="payment-form" novalidate>
                                 <div class="row">
                                     <div class="form-group col-xs-12">
                                         <div id="card-element">
-                                            <!-- a Stripe Element will be inserted here. -->
                                         </div>
                                     </div>
                                 </div>
                                 <div class="row">
                                     <div class="form-group col-xs-12">
                                         <div id="new-card-element">
-                                            <!-- a Stripe Element will be inserted here. -->
-  <form action="" method="POST">
-    <input type="hidden" name="token" />
-    <div class="group">
-		<div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
-      <div class="card-number-element">
-        <div id="card-number-element" class="field"></div>
-      </div>
-      <div class="card-expiry-element">
-        <div id="card-expiry-element" class="field"></div>
-      </div>
-      <div class="card-cvc-element">
-        <div id="card-cvc-element" class="field"></div>
-      </div>
-    </div>
-    <div class="outcome">
-      <div class="error"></div>
-    </div>
-  </form>                                        
-                                        </div>
+										</div>
                                     </div>
                                 </div>
                                 <div id="card-errors" role="alert"></div>
@@ -171,9 +150,56 @@
                                     </div>
                                 </div>
                                 {% endif %}
+                                >
+                            </form-->
+  <form action="" id="payment-form-new" method="POST">
+    <input type="hidden" name="token" />
+    <div class="group">
+		<div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
+      <div class="card-number-element">
+        <div id="card-number-element" class="field"></div>
+      </div>
+      <div class="card-expiry-element">
+        <div id="card-expiry-element" class="field"></div>
+      </div>
+      <div class="card-cvc-element">
+        <div id="card-cvc-element" class="field"></div>
+      </div>
+    </div>
+                                <div id="card-errors" role="alert"></div>
+                                <div class="row">
+                                    <div class="col-xs-12">
+                                        <p class="card-warning-content">
+                                            {% blocktrans %}
+                                            You are not making any payment yet. After submitting your card
+                                            information, you will be taken to the Confirm Order Page.
+                                            {% endblocktrans %}
+                                        </p>
+                                    </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>
 
-
-                            </form>
+                                <div class="row" style="display:none;">
+                                    <div class="col-xs-12">
+                                        <p class="payment-errors"></p>
+                                    </div>
+                                </div>
+                                {% if paymentError %}
+                                <div class="row">
+                                    <div class="col-xs-12">
+                                        <p>
+                                            {% bootstrap_alert paymentError alert_type='danger' %}
+                                        </p>
+                                    </div>
+                                </div>
+                                {% endif %}
+  </form>                                        
+                                               
                             {% endif %}
                         </div>
                     </div>
diff --git a/utils/models.py b/utils/models.py
index bd03f822..c45b25bc 100644
--- a/utils/models.py
+++ b/utils/models.py
@@ -8,7 +8,7 @@ from .fields import CountryField
 # Create your models here.
 
 class BaseBillingAddress(models.Model):
-    cardholder_name = models.CharField(max_length=100)
+    cardholder_name = models.CharField(max_length=100, default="")
     street_address = models.CharField(max_length=100)
     city = models.CharField(max_length=50)
     postal_code = models.CharField(max_length=50)

From acaa791a37a35672b463521efb7e7904f48b0a3b Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 15:50:15 +0530
Subject: [PATCH 14/56] Fixed MM/YY and CVV for mobile view

---
 hosting/static/hosting/css/landing-page.css | 19 ++++++++++++++++++-
 hosting/templates/hosting/payment.html      |  8 +++++---
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 54076de3..9f54e22b 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -524,7 +524,7 @@ a.unlink:hover {
 }
 .brand {
     float: left;
-    width: 8%;
+    width: 10%;
 }
 .brand #brand-icon {
     vertical-align: bottom;
@@ -592,6 +592,23 @@ a.unlink:hover {
         margin-top: 30px;
         margin-bottom: 30px;
     }
+
+    .credit-card-element-with-brand {
+        width: 100%;
+        float: left;
+    }
+
+    .brand {
+        width: 16%;
+    }
+    
+    .card-expiry-element {
+        width: 40%;
+    }
+    
+    .card-cvc-element {
+        width: 15%;
+    }
 }
 
 @media (min-width: 1200px) {
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index a73d09d6..230c0bdf 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -155,9 +155,11 @@
   <form action="" id="payment-form-new" method="POST">
     <input type="hidden" name="token" />
     <div class="group">
-		<div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
-      <div class="card-number-element">
-        <div id="card-number-element" class="field"></div>
+	  <div class="credit-card-element-with-brand">
+		  <div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
+		  <div class="card-number-element">
+			<div id="card-number-element" class="field"></div>
+		  </div>
       </div>
       <div class="card-expiry-element">
         <div id="card-expiry-element" class="field"></div>

From b67a12f01b33b0b74c51b43071143e21fb9099b1 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:04:15 +0530
Subject: [PATCH 15/56] Adjusted styles for error message

---
 hosting/static/hosting/css/landing-page.css | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 9f54e22b..a50ae6fd 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -543,6 +543,12 @@ a.unlink:hover {
     width: 10%;
 }
 
+#card-errors {
+    clear: both;
+    padding: 0 0 10px;
+    color: #eb4d5c;
+}
+
 @media (max-width: 767px) {
     .dcl-order-table-total span {
         padding-left: 3px;

From a37464f8b3772222656ff98a8c19d6aa053aef1f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:35:02 +0530
Subject: [PATCH 16/56] Removed some unreachable code from utils/forms.py

---
 utils/forms.py | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/utils/forms.py b/utils/forms.py
index 250ba803..f8746c11 100644
--- a/utils/forms.py
+++ b/utils/forms.py
@@ -50,8 +50,6 @@ class LoginFormMixin(forms.Form):
             return email
         except CustomUser.DoesNotExist:
             raise forms.ValidationError("User does not exist")
-        else:
-            return email
 
 
 class PasswordResetRequestForm(forms.Form):
@@ -67,8 +65,6 @@ class PasswordResetRequestForm(forms.Form):
             return email
         except CustomUser.DoesNotExist:
             raise forms.ValidationError("User does not exist")
-        else:
-            return email
 
 
 class SetPasswordForm(forms.Form):

From 083b870b338073c4c62f072be449d0ebe3a1eaa6 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:35:55 +0530
Subject: [PATCH 17/56] Formatted utils/forms.py

---
 utils/forms.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/utils/forms.py b/utils/forms.py
index f8746c11..c521e3ba 100644
--- a/utils/forms.py
+++ b/utils/forms.py
@@ -5,11 +5,12 @@ from django.core.mail import EmailMultiAlternatives
 from django.utils.translation import ugettext_lazy as _
 from django.contrib.auth import authenticate
 from membership.models import CustomUser
+
+
 # from utils.fields import CountryField
 
 
 class SignupFormMixin(forms.ModelForm):
-
     confirm_password = forms.CharField(widget=forms.PasswordInput())
     password = forms.CharField(widget=forms.PasswordInput())
 
@@ -87,7 +88,7 @@ class SetPasswordForm(forms.Form):
             if password1 != password2:
                 raise forms.ValidationError(
                     self.error_messages['password_mismatch'],
-                    code='password_mismatch',)
+                    code='password_mismatch', )
         return password2
 
 

From ed52e396d927949374b0f811aaca7b7c416b1ffd Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:36:38 +0530
Subject: [PATCH 18/56] Formatted utils/models.py

---
 utils/models.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/utils/models.py b/utils/models.py
index c45b25bc..c08f4008 100644
--- a/utils/models.py
+++ b/utils/models.py
@@ -19,7 +19,6 @@ class BaseBillingAddress(models.Model):
 
 
 class BillingAddress(BaseBillingAddress):
-
     def __str__(self):
         return self.street_address
 

From a87c0a89eb21772d27411d5538168b94be65619c Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:37:49 +0530
Subject: [PATCH 19/56] Refactored and formatted unused code in hosting's
 payment.html payment.js landing-page.css

---
 hosting/static/hosting/css/landing-page.css |  13 +-
 hosting/static/hosting/js/payment.js        | 345 ++++++++------------
 hosting/templates/hosting/payment.html      |  84 ++---
 3 files changed, 157 insertions(+), 285 deletions(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index a50ae6fd..c621f2c0 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -510,11 +510,11 @@ a.unlink:hover {
 .card-warning-content {
     font-family: Lato;
     border: 1px solid #a1a1a1;
-    border-radius: 3px; 
+    border-radius: 3px;
     padding: 5px;
 }
 
-.stripe-payment-btn{
+.stripe-payment-btn {
     width: auto;
     float: right;
     font-style: normal;
@@ -522,22 +522,27 @@ a.unlink:hover {
     position: absolute;
     right: 0;
 }
+
 .brand {
     float: left;
     width: 10%;
 }
+
 .brand #brand-icon {
     vertical-align: bottom;
     padding-top: 13px;
 }
+
 .card-number-element {
     float: left;
     width: 63%;
 }
+
 .card-expiry-element {
     float: left;
     width: 17%;
 }
+
 .card-cvc-element {
     float: left;
     width: 10%;
@@ -607,11 +612,11 @@ a.unlink:hover {
     .brand {
         width: 16%;
     }
-    
+
     .card-expiry-element {
         width: 40%;
     }
-    
+
     .card-cvc-element {
         width: 15%;
     }
diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index 737221e9..60054c97 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -1,13 +1,12 @@
 var cardBrandToPfClass = {
-  'visa': 'pf-visa',
-  'mastercard': 'pf-mastercard',
-  'amex': 'pf-american-express',
-  'discover': 'pf-discover',
-  'diners': 'pf-diners',
-  'jcb': 'pf-jcb',
-  'unknown': 'pf-credit-card',
-}
-
+    'visa': 'pf-visa',
+    'mastercard': 'pf-mastercard',
+    'amex': 'pf-american-express',
+    'discover': 'pf-discover',
+    'diners': 'pf-diners',
+    'jcb': 'pf-jcb',
+    'unknown': 'pf-credit-card'
+};
 function setBrandIcon(brand) {
     var brandIconElement = document.getElementById('brand-icon');
     var pfClass = 'pf-credit-card';
@@ -15,152 +14,129 @@ function setBrandIcon(brand) {
         pfClass = cardBrandToPfClass[brand];
     }
     for (var i = brandIconElement.classList.length - 1; i >= 0; i--) {
-         brandIconElement.classList.remove(brandIconElement.classList[i]);
+        brandIconElement.classList.remove(brandIconElement.classList[i]);
     }
     brandIconElement.classList.add('pf');
     brandIconElement.classList.add(pfClass);
 }
 
 
+$(document).ready(function () {
+    $.ajaxSetup({
+        beforeSend: function (xhr, settings) {
+            function getCookie(name) {
+                var cookieValue = null;
+                if (document.cookie && document.cookie != '') {
+                    var cookies = document.cookie.split(';');
+                    for (var i = 0; i < cookies.length; i++) {
+                        var cookie = jQuery.trim(cookies[i]);
+                        // Does this cookie string begin with the name we want?
+                        if (cookie.substring(0, name.length + 1) == (name + '=')) {
+                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+                            break;
+                        }
+                    }
+                }
+                return cookieValue;
+            }
 
-$( document ).ready(function() {
-    $.ajaxSetup({ 
-         beforeSend: function(xhr, settings) {
-             function getCookie(name) {
-                 var cookieValue = null;
-                 if (document.cookie && document.cookie != '') {
-                     var cookies = document.cookie.split(';');
-                     for (var i = 0; i < cookies.length; i++) {
-                         var cookie = jQuery.trim(cookies[i]);
-                         // Does this cookie string begin with the name we want?
-                         if (cookie.substring(0, name.length + 1) == (name + '=')) {
-                             cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
-                             break;
-                         }
-                     }
-                 }
-                 return cookieValue;
-             }
-             if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
-                 // Only send the token to relative URLs i.e. locally.
-                 xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
-             }
-         } 
+            if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
+                // Only send the token to relative URLs i.e. locally.
+                xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
+            }
+        }
     });
 
 
     var hasCreditcard = window.hasCreditcard || false;
-    if (!hasCreditcard){
+    if (!hasCreditcard) {
         var stripe = Stripe(window.stripeKey);
-        var elements = stripe.elements({locale: window.current_lan});
-        /*var card = elements.create('card', options={hidePostalCode: true});
-        card.mount('#card-element');*/
         /* new card */
-        var server_url = "https://datacenterlight.ch";
         var element_style = {
             fonts: [{
-                    family: 'lato-light',
-                    src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Light.woff) format("woff2")',
-                }, {
-                    family: 'lato-regular',
-					src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Regular.woff) format("woff2")',
-				},
-            ]
-        }        
-        var elements = stripe.elements(element_style);
-        
-        var style = {
-          base: {
-            iconColor: '#666EE8',
-            color: '#31325F',
-            lineHeight: '40px',
-            fontWeight: 300,
-            fontFamily: "'Lato', sans-serif",
-            fontSize: '14px',
-        
-            '::placeholder': {
-              color: '#333',
-            },
-          },
+                family: 'lato-light',
+                src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Light.woff) format("woff2")'
+            }, {
+                family: 'lato-regular',
+                src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Regular.woff) format("woff2")'
+            }
+            ],
+            locale: window.current_lan
         };
-        
-var credit_card_text_style = {
-  base: {
-    iconColor: '#666EE8',
-    color: '#31325F',
-    lineHeight: '40px',
-    fontWeight: 300,
-    fontFamily: "'lato-light', sans-serif",
-    fontSize: '14px',
-    '::placeholder': {
-      color: '#777',
-    },
-  },
-  invalid: {
-    iconColor: '#eb4d5c',
-    color: '#eb4d5c',
-    lineHeight: '40px',
-    fontWeight: 300,
-    fontFamily: "'lato-regular', sans-serif",
-    fontSize: '14px',
-    '::placeholder': {
-      color: '#eb4d5c',
-      fontWeight: 400,
-    }
-  }
-};
-var credit_card_cvv_style = {
-  base: {
-    iconColor: '#666EE8',
-    color: '#31325F',
-    lineHeight: '40px',
-    fontWeight: 300,
-    fontFamily: "'lato-regular', sans-serif",
-    fontSize: '14px',
-    '::placeholder': {
-      color: '#555',
-    },
-  },
-  invalid: {
-    iconColor: '#eb4d5c',
-    color: '#eb4d5c',
-    lineHeight: '40px',
-    fontWeight: 300,
-    fontFamily: "'lato-regular', sans-serif",
-    fontSize: '14px',
-    '::placeholder': {
-      color: '#eb4d5c',
-      fontWeight: 600,
-    },  
-  }
-};
-        
+        var elements = stripe.elements(element_style);
+        var credit_card_text_style = {
+            base: {
+                iconColor: '#666EE8',
+                color: '#31325F',
+                lineHeight: '40px',
+                fontWeight: 300,
+                fontFamily: "'lato-light', sans-serif",
+                fontSize: '14px',
+                '::placeholder': {
+                    color: '#777'
+                }
+            },
+            invalid: {
+                iconColor: '#eb4d5c',
+                color: '#eb4d5c',
+                lineHeight: '40px',
+                fontWeight: 300,
+                fontFamily: "'lato-regular', sans-serif",
+                fontSize: '14px',
+                '::placeholder': {
+                    color: '#eb4d5c',
+                    fontWeight: 400
+                }
+            }
+        };
+        var credit_card_cvv_style = {
+            base: {
+                iconColor: '#666EE8',
+                color: '#31325F',
+                lineHeight: '40px',
+                fontWeight: 300,
+                fontFamily: "'lato-regular', sans-serif",
+                fontSize: '14px',
+                '::placeholder': {
+                    color: '#555'
+                }
+            },
+            invalid: {
+                iconColor: '#eb4d5c',
+                color: '#eb4d5c',
+                lineHeight: '40px',
+                fontWeight: 300,
+                fontFamily: "'lato-regular', sans-serif",
+                fontSize: '14px',
+                '::placeholder': {
+                    color: '#eb4d5c',
+                    fontWeight: 600
+                }
+            }
+        };
+
         var cardNumberElement = elements.create('cardNumber', {
-          style: credit_card_text_style,
-          placeholder : "____ ____ ____ ____",
+            style: credit_card_text_style,
+            placeholder: "____ ____ ____ ____"
         });
         cardNumberElement.mount('#card-number-element');
-        
+
         var cardExpiryElement = elements.create('cardExpiry', {
-          style: credit_card_cvv_style
+            style: credit_card_cvv_style
         });
         cardExpiryElement.mount('#card-expiry-element');
-        
+
         var cardCvcElement = elements.create('cardCvc', {
-          style: credit_card_cvv_style
+            style: credit_card_cvv_style
         });
         cardCvcElement.mount('#card-cvc-element');
-        cardNumberElement.on('change', function(event) {
+        cardNumberElement.on('change', function (event) {
             // Switch brand logo
             if (event.brand) {
                 setBrandIcon(event.brand);
             }
             //setOutcome(event);
         });
-        /*$('#payment-form').submit(function(e) {
-            e.preventDefault();
-            stripe.createToken(cardNumberElement).then(setOutcome);
-       });*/
         /* new card end */
     }
     console.log("has creditcard", hasCreditcard);
@@ -170,106 +146,55 @@ var credit_card_cvv_style = {
     submit_form_btn.on('click', submit_payment);
 
 
-    function submit_payment(e){ 
-      e.preventDefault();
-      console.log("creditcard sdasd");
-      // if (hasCreditcard) {
-         $('#billing-form').submit();
-      // }
-     
+    function submit_payment(e) {
+        e.preventDefault();
+        console.log("creditcard sdasd");
+        // if (hasCreditcard) {
+        $('#billing-form').submit();
+        // }
+
     }
 
 
-
-    //var $form = $('#payment-form');
     var $form_new = $('#payment-form-new');
-    //$form.submit(payWithStripe);
     $form_new.submit(payWithStripe_new);
 
-    /* If you're using Stripe for payments */
-    function payWithStripe(e) {
-        e.preventDefault();
-
-        function stripeTokenHandler(token) {
-          // Insert the token ID into the form so it gets submitted to the server
-          var form = document.getElementById('payment-form');
-          var hiddenInput = document.createElement('input');
-          $('#id_token').val(token.id);
-          $('#billing-form').submit();
-        }
-
-
-        stripe.createToken(card).then(function(result) {
-            if (result.error) {
-              // Inform the user if there was an error
-              var errorElement = document.getElementById('card-errors');
-              errorElement.textContent = result.error.message;
-            } else {
-                $form.find('[type=submit]').html('Processing <i class="fa fa-spinner fa-pulse"></i>');
-                // Send the token to your server
-                stripeTokenHandler(result.token);
-            }
-        });
-
-        // /* Visual feedback */
-        // $form.find('[type=submit]').html('Validating <i class="fa fa-spinner fa-pulse"></i>');
-
-        // var PublishableKey = window.stripeKey;
-        // Stripe.setPublishableKey(PublishableKey);
-        // Stripe.card.createToken($form, function stripeResponseHandler(status, response) {
-        //     if (response.error) {
-        //         /* Visual feedback */
-        //         $form.find('[type=submit]').html('Try again');
-        //         /* Show Stripe errors on the form */
-        //         $form.find('.payment-errors').text(response.error.message);
-        //         $form.find('.payment-errors').closest('.row').show();
-        //     } else {
-        //         /* Visual feedback */
-        //         $form.find('[type=submit]').html('Processing <i class="fa fa-spinner fa-pulse"></i>');
-        //         /* Hide Stripe errors on the form */
-        //         $form.find('.payment-errors').closest('.row').hide();
-        //         $form.find('.payment-errors').text("");
-        //         // response contains id and card, which contains additional card details
-        //         var token = response.id;
-        //         // AJAX
-
-        //         //set token  on a hidden input
-        //         $('#id_token').val(token);
-        //         $('#billing-form').submit();
-        //     }
-        // });
-    }
     function payWithStripe_new(e) {
         e.preventDefault();
 
         function stripeTokenHandler(token) {
-          // Insert the token ID into the form so it gets submitted to the server
-          var form = document.getElementById('payment-form-new');
-          var hiddenInput = document.createElement('input');
-          $('#id_token').val(token.id);
-          $('#billing-form').submit();
+            // Insert the token ID into the form so it gets submitted to the server
+            var form = document.getElementById('payment-form-new');
+            $('#id_token').val(token.id);
+            $('#billing-form').submit();
         }
 
 
-        stripe.createToken(cardNumberElement).then(function(result) {
+        stripe.createToken(cardNumberElement).then(function (result) {
             if (result.error) {
-              // Inform the user if there was an error
-              var errorElement = document.getElementById('card-errors');
-              errorElement.textContent = result.error.message;
+                // Inform the user if there was an error
+                var errorElement = document.getElementById('card-errors');
+                errorElement.textContent = result.error.message;
             } else {
-                $form_new.find('[type=submit]').html('Processing <i class="fa fa-spinner fa-pulse"></i>');
+                var process_text = "Processing";
+                if (typeof window.processing_text !== 'undefined') {
+                    process_text = window.processing_text
+                }
+
+                $form_new.find('[type=submit]').html(process_text + ' <i class="fa fa-spinner fa-pulse"></i>');
                 // Send the token to your server
                 stripeTokenHandler(result.token);
             }
         });
     }
+
     /* Form validation */
-    $.validator.addMethod("month", function(value, element) {
-      return this.optional(element) || /^(01|02|03|04|05|06|07|08|09|10|11|12)$/.test(value);
+    $.validator.addMethod("month", function (value, element) {
+        return this.optional(element) || /^(01|02|03|04|05|06|07|08|09|10|11|12)$/.test(value);
     }, "Please specify a valid 2-digit month.");
 
-    $.validator.addMethod("year", function(value, element) {
-      return this.optional(element) || /^[0-9]{2}$/.test(value);
+    $.validator.addMethod("year", function (value, element) {
+        return this.optional(element) || /^[0-9]{2}$/.test(value);
     }, "Please specify a valid 2-digit year.");
 
     validator = $form_new.validate({
@@ -292,28 +217,16 @@ var credit_card_cvv_style = {
                 digits: true
             }
         },
-        highlight: function(element) {
+        highlight: function (element) {
             $(element).closest('.form-control').removeClass('success').addClass('error');
         },
-        unhighlight: function(element) {
+        unhighlight: function (element) {
             $(element).closest('.form-control').removeClass('error').addClass('success');
         },
-        errorPlacement: function(error, element) {
+        errorPlacement: function (error, element) {
             $(element).closest('.form-group').append(error);
         }
     });
-
-    paymentFormReady = function() {
-        if ($form_new.find('[name=cardNumber]').hasClass("success") &&
-            $form_new.find('[name=expMonth]').hasClass("success") &&
-            $form_new.find('[name=expYear]').hasClass("success") &&
-            $form_new.find('[name=cvCode]').val().length > 1) {
-            return true;
-        } else {
-            return false;
-        }
-    };
-
     // $form.find('[type=submit]').prop('disabled', true);
     // var readyInterval = setInterval(function() {
     //     if (paymentFormReady()) {
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 230c0bdf..065d73d7 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -2,7 +2,7 @@
 {% load staticfiles bootstrap3 i18n %}
 {% block content %}
 <!-- Credit card form -->
-<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css" />
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/paymentfont/1.1.2/css/paymentfont.min.css"/>
 <div class="dcl-order-container container">
     <div class="payment-container">
         <div class="row">
@@ -103,20 +103,22 @@
                                     </div>
                                 </div>
                             </div>
-                            
+
                             {% else %}
-
-                            <!--form role="form" id="payment-form" novalidate>
-                                <div class="row">
-                                    <div class="form-group col-xs-12">
-                                        <div id="card-element">
+                            <form action="" id="payment-form-new" method="POST">
+                                <input type="hidden" name="token"/>
+                                <div class="group">
+                                    <div class="credit-card-element-with-brand">
+                                        <div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
+                                        <div class="card-number-element">
+                                            <div id="card-number-element" class="field"></div>
                                         </div>
                                     </div>
-                                </div>
-                                <div class="row">
-                                    <div class="form-group col-xs-12">
-                                        <div id="new-card-element">
-										</div>
+                                    <div class="card-expiry-element">
+                                        <div id="card-expiry-element" class="field"></div>
+                                    </div>
+                                    <div class="card-cvc-element">
+                                        <div id="card-cvc-element" class="field"></div>
                                     </div>
                                 </div>
                                 <div id="card-errors" role="alert"></div>
@@ -131,56 +133,8 @@
                                     </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>
-                                {% if paymentError %}
-                                <div class="row">
-                                    <div class="col-xs-12">
-                                        <p>
-                                            {% bootstrap_alert paymentError alert_type='danger' %}
-                                        </p>
-                                    </div>
-                                </div>
-                                {% endif %}
-                                >
-                            </form-->
-  <form action="" id="payment-form-new" method="POST">
-    <input type="hidden" name="token" />
-    <div class="group">
-	  <div class="credit-card-element-with-brand">
-		  <div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
-		  <div class="card-number-element">
-			<div id="card-number-element" class="field"></div>
-		  </div>
-      </div>
-      <div class="card-expiry-element">
-        <div id="card-expiry-element" class="field"></div>
-      </div>
-      <div class="card-cvc-element">
-        <div id="card-cvc-element" class="field"></div>
-      </div>
-    </div>
-                                <div id="card-errors" role="alert"></div>
-                                <div class="row">
-                                    <div class="col-xs-12">
-                                        <p class="card-warning-content">
-                                            {% blocktrans %}
-                                            You are not making any payment yet. After submitting your card
-                                            information, you will be taken to the Confirm Order Page.
-                                            {% endblocktrans %}
-                                        </p>
-                                    </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 class="btn btn-success stripe-payment-btn" type="submit">{% trans
+                                                "Submit" %}
                                             </button>
                                         </div>
                                     </div>
@@ -200,8 +154,8 @@
                                     </div>
                                 </div>
                                 {% endif %}
-  </form>                                        
-                                               
+                            </form>
+
                             {% endif %}
                         </div>
                     </div>
@@ -215,7 +169,7 @@
 {% if stripe_key %}
 {% get_current_language as LANGUAGE_CODE %}
 <script type="text/javascript">
-
+    window.processing_text = '{% trans "Processing" %}';
 
     (function () {
         window.stripeKey = "{{stripe_key}}";

From d0fb2c1f7054fde8802198bbd97c7e3a8a7048c0 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:42:49 +0530
Subject: [PATCH 20/56] Updated hosting's .po

---
 hosting/locale/de/LC_MESSAGES/django.po | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 547406a9..2e460f16 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-16 03:34+0530\n"
+"POT-Creation-Date: 2017-07-16 16:40+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"
@@ -380,11 +380,12 @@ msgid ""
 "                                your information in our database.\n"
 "                                "
 msgstr ""
+"\n"
 "Bitte füll deine Kreditkarteninformationen unten aus. Wir nutzen <a href="
 "\"https://stripe.com\" target=\"_blank\">Stripe</a> für die Bezahlung und "
 "speichern keine Informationen in unserer Datenbank."
 
-#: templates/hosting/payment.html:91
+#: templates/hosting/payment.html:90
 msgid ""
 "\n"
 "                                        You are not making any payment yet. "
@@ -393,15 +394,16 @@ msgid ""
 "the Confirm Order Page.\n"
 "                                        "
 msgstr ""
+"\n"
 "Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
-#: templates/hosting/payment.html:102 templates/hosting/payment.html.py:155
+#: templates/hosting/payment.html:101
 msgid "Submit"
 msgstr "Absenden"
 
-#: templates/hosting/payment.html:147
+#: templates/hosting/payment.html:128
 msgid ""
 "\n"
 "                                            You are not making any payment "
@@ -410,10 +412,15 @@ msgid ""
 "to the Confirm Order Page.\n"
 "                                            "
 msgstr ""
+"\n"
 "Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
+#: templates/hosting/payment.html:172
+msgid "Processing"
+msgstr ""
+
 #: templates/hosting/reset_password.html:15
 msgid "Reset your password"
 msgstr "Passwort zurücksetzen"

From f4d3d53d0c16f8c620d8f69679e1cc9b807ace00 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 16:52:53 +0530
Subject: [PATCH 21/56] Fixed some missing translations

---
 hosting/locale/de/LC_MESSAGES/django.po | 6 +++---
 hosting/templates/hosting/payment.html  | 7 +++----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 2e460f16..ce5e3aa4 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-16 16:40+0530\n"
+"POT-Creation-Date: 2017-07-16 16:51+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"
@@ -399,7 +399,7 @@ msgstr ""
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
-#: templates/hosting/payment.html:101
+#: templates/hosting/payment.html:101 templates/hosting/payment.html.py:136
 msgid "Submit"
 msgstr "Absenden"
 
@@ -417,7 +417,7 @@ msgstr ""
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
-#: templates/hosting/payment.html:172
+#: templates/hosting/payment.html:171
 msgid "Processing"
 msgstr ""
 
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 065d73d7..365a7b8f 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -98,7 +98,7 @@
                                         <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;"
                                                 id="payment_button_with_creditcard" class="btn btn-success"
                                                 type="submit">
-                                            {% trans "Submit" %}
+                                            {%trans "Submit" %}
                                         </button>
                                     </div>
                                 </div>
@@ -133,8 +133,7 @@
                                     </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 class="btn btn-success stripe-payment-btn" type="submit">{%trans "Submit" %}
                                             </button>
                                         </div>
                                     </div>
@@ -169,7 +168,7 @@
 {% if stripe_key %}
 {% get_current_language as LANGUAGE_CODE %}
 <script type="text/javascript">
-    window.processing_text = '{% trans "Processing" %}';
+    window.processing_text = '{%trans "Processing" %}';
 
     (function () {
         window.stripeKey = "{{stripe_key}}";

From 9f050467a1e5eff3d29ea305ea01902828750f15 Mon Sep 17 00:00:00 2001
From: Andrii Marynets <andrii.marynets@gmail.com>
Date: Sun, 16 Jul 2017 16:51:07 +0300
Subject: [PATCH 22/56] Add flag is_superuser=True in CustomUserManager

Missing is_superuser=True was the reason why createsuperuser command did'n make user with all staff
---
 membership/models.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/membership/models.py b/membership/models.py
index 96bf4c50..a84d12ca 100644
--- a/membership/models.py
+++ b/membership/models.py
@@ -51,6 +51,8 @@ class MyUserManager(BaseUserManager):
                                 name=name,
                                 )
         user.is_admin = True
+        user.is_active = True
+        user.is_superuser = True
         user.save(using=self._db)
         return user
 

From c09947ef124d93e7a243d7a99f932ab48cdd86e7 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 21:29:42 +0530
Subject: [PATCH 23/56] Added the titles of the input fields

---
 hosting/static/hosting/css/landing-page.css | 34 ++++++++++-----------
 hosting/static/hosting/js/payment.js        | 10 +++---
 hosting/templates/hosting/payment.html      | 29 +++++++++++-------
 3 files changed, 39 insertions(+), 34 deletions(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index c621f2c0..940d1bf8 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -524,29 +524,30 @@ a.unlink:hover {
 }
 
 .brand {
-    float: left;
-    width: 10%;
 }
 
 .brand #brand-icon {
-    vertical-align: bottom;
-    padding-top: 13px;
 }
 
 .card-number-element {
-    float: left;
-    width: 63%;
 }
 
 .card-expiry-element {
-    float: left;
-    width: 17%;
 }
 
 .card-cvc-element {
-    float: left;
-    width: 10%;
 }
+.card-element {
+    margin-bottom: 10px;
+    padding: 0;
+}
+.card-element label{
+    width:100%;
+    margin-bottom:0px;
+}
+.my-input {
+   border-bottom: 1px solid #ccc;
+ }
 
 #card-errors {
     clear: both;
@@ -604,21 +605,18 @@ a.unlink:hover {
         margin-bottom: 30px;
     }
 
-    .credit-card-element-with-brand {
-        width: 100%;
-        float: left;
-    }
-
     .brand {
-        width: 16%;
     }
 
     .card-expiry-element {
-        width: 40%;
+    padding-right: 10px;
     }
 
     .card-cvc-element {
-        width: 15%;
+    padding-left: 10px;
+    }
+    .hide-mobile{
+    display:none;
     }
 }
 
diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index 60054c97..edae127c 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -68,7 +68,7 @@ $(document).ready(function () {
             base: {
                 iconColor: '#666EE8',
                 color: '#31325F',
-                lineHeight: '40px',
+                lineHeight: '25px',
                 fontWeight: 300,
                 fontFamily: "'lato-light', sans-serif",
                 fontSize: '14px',
@@ -79,7 +79,7 @@ $(document).ready(function () {
             invalid: {
                 iconColor: '#eb4d5c',
                 color: '#eb4d5c',
-                lineHeight: '40px',
+                lineHeight: '25px',
                 fontWeight: 300,
                 fontFamily: "'lato-regular', sans-serif",
                 fontSize: '14px',
@@ -93,7 +93,7 @@ $(document).ready(function () {
             base: {
                 iconColor: '#666EE8',
                 color: '#31325F',
-                lineHeight: '40px',
+                lineHeight: '25px',
                 fontWeight: 300,
                 fontFamily: "'lato-regular', sans-serif",
                 fontSize: '14px',
@@ -104,7 +104,7 @@ $(document).ready(function () {
             invalid: {
                 iconColor: '#eb4d5c',
                 color: '#eb4d5c',
-                lineHeight: '40px',
+                lineHeight: '25px',
                 fontWeight: 300,
                 fontFamily: "'lato-regular', sans-serif",
                 fontSize: '14px',
@@ -117,7 +117,7 @@ $(document).ready(function () {
 
         var cardNumberElement = elements.create('cardNumber', {
             style: credit_card_text_style,
-            placeholder: "____ ____ ____ ____"
+            placeholder: "Enter your credit card number"
         });
         cardNumberElement.mount('#card-number-element');
 
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 365a7b8f..54cf85fd 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -108,17 +108,24 @@
                             <form action="" id="payment-form-new" method="POST">
                                 <input type="hidden" name="token"/>
                                 <div class="group">
-                                    <div class="credit-card-element-with-brand">
-                                        <div class="brand"><i class="pf pf-credit-card" id="brand-icon"></i></div>
-                                        <div class="card-number-element">
-                                            <div id="card-number-element" class="field"></div>
-                                        </div>
-                                    </div>
-                                    <div class="card-expiry-element">
-                                        <div id="card-expiry-element" class="field"></div>
-                                    </div>
-                                    <div class="card-cvc-element">
-                                        <div id="card-cvc-element" class="field"></div>
+                                    <div class="credit-card-goup">
+                                       <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 card-element card-number-element">
+                                           <label>Card Number</label>
+                                           <div id="card-number-element" class="field my-input"></div>
+                                       </div>
+                                       <div class="col-xs-6 col-sm-5 col-md-3 col-lg-3 card-element card-expiry-element">
+                                           <label>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-6 hide-mobile"></div>
+                                       <div class="col-xs-6 col-sm-5 col-md-3 col-lg-3 card-element card-cvc-element">
+                                           <label>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>Card Type</label>
+                                           <i class="pf pf-credit-card" id="brand-icon"></i>
+                                       </div>
                                     </div>
                                 </div>
                                 <div id="card-errors" role="alert"></div>

From 6ba0841bfe4841eb176d8bb2193091cfa395d15f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 22:07:18 +0530
Subject: [PATCH 24/56] Center aligned the cvv field

---
 hosting/static/hosting/css/landing-page.css | 11 ++++++++---
 hosting/templates/hosting/payment.html      |  8 ++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 940d1bf8..85c80b0d 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -535,7 +535,8 @@ a.unlink:hover {
 .card-expiry-element {
 }
 
-.card-cvc-element {
+.card-cvc-element label {
+    padding-left: 10px;
 }
 .card-element {
     margin-bottom: 10px;
@@ -548,13 +549,17 @@ a.unlink:hover {
 .my-input {
    border-bottom: 1px solid #ccc;
  }
-
+.card-cvc-element .my-input {
+    padding-left: 10px;
+}
 #card-errors {
     clear: both;
     padding: 0 0 10px;
     color: #eb4d5c;
 }
-
+.credit-card-goup{
+    padding: 0;
+}
 @media (max-width: 767px) {
     .dcl-order-table-total span {
         padding-left: 3px;
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 54cf85fd..12bfdb2e 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -108,17 +108,17 @@
                             <form action="" id="payment-form-new" method="POST">
                                 <input type="hidden" name="token"/>
                                 <div class="group">
-                                    <div class="credit-card-goup">
+                                    <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>Card Number</label>
                                            <div id="card-number-element" class="field my-input"></div>
                                        </div>
-                                       <div class="col-xs-6 col-sm-5 col-md-3 col-lg-3 card-element card-expiry-element">
+                                       <div class="col-xs-5 col-sm-3 col-md-3 col-lg-3 card-element card-expiry-element">
                                            <label>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-6 hide-mobile"></div>
-                                       <div class="col-xs-6 col-sm-5 col-md-3 col-lg-3 card-element card-cvc-element">
+                                       <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>CVC</label>
                                            <div id="card-cvc-element" class="field my-input"></div>
                                        </div>

From 97acd76b517fb5f8b78a6a2c65312b3685c148f8 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 22:33:52 +0530
Subject: [PATCH 25/56] Added card holders name for initialization

---
 hosting/views.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hosting/views.py b/hosting/views.py
index e0554ebf..520894ae 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -440,6 +440,7 @@ class PaymentVMView(LoginRequiredMixin, FormView):
 
         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,

From e33df8f1e922f4aed3506ad4187b6ceac4bdf157 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 22:34:49 +0530
Subject: [PATCH 26/56] Added card holders name in UserBillingAddress to_dict
 function

---
 utils/models.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/utils/models.py b/utils/models.py
index c08f4008..c969a60c 100644
--- a/utils/models.py
+++ b/utils/models.py
@@ -32,6 +32,7 @@ class UserBillingAddress(BaseBillingAddress):
 
     def to_dict(self):
         return {
+            'Cardholder Name': self.cardholder_name,
             'Street Address': self.street_address,
             'City': self.city,
             'Postal Code': self.postal_code,

From 25ab98d69f70f7fdff6df879bbb2a26ae7df1133 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 22:36:00 +0530
Subject: [PATCH 27/56] Modified credit card texts that needed translations

---
 hosting/templates/hosting/payment.html | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 12bfdb2e..7698251f 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -38,7 +38,7 @@
                 </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">
-                        Total <span>{%trans "including VAT" %}</span>
+                        <span>{%trans "Total 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-6 col-md-6 col-lg-6"></div>
@@ -110,20 +110,20 @@
                                 <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>Card Number</label>
+                                           <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>Expiry Date</label>
+                                           <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>CVC</label>
+                                           <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>Card Type</label>
+                                           <label>{%trans "Card Type" %}</label>
                                            <i class="pf pf-credit-card" id="brand-icon"></i>
                                        </div>
                                     </div>

From a570f9963f9eb58c2f377ecca79b0210eb5eed8f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 23:26:07 +0530
Subject: [PATCH 28/56] Generated .po for digitalglarus

---
 digitalglarus/locale/de/LC_MESSAGES/django.po | 611 +++++++++---------
 1 file changed, 297 insertions(+), 314 deletions(-)

diff --git a/digitalglarus/locale/de/LC_MESSAGES/django.po b/digitalglarus/locale/de/LC_MESSAGES/django.po
index ffbfcc91..f4193749 100644
--- a/digitalglarus/locale/de/LC_MESSAGES/django.po
+++ b/digitalglarus/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-05-30 13:47+0000\n"
+"POT-Creation-Date: 2017-07-16 17:50+0000\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"
@@ -18,7 +18,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: cms_templates/djangocms_blog/_header_post_detail.html:20
+#: cms_templates/djangocms_blog/_header_post_detail.html:21
 #: digitalglarus/templates/digitalglarus/post_detail.html:19
 #: ungleich/templates/ungleich/djangocms_blog/includes/blog_item.html:19
 msgid "Posted on"
@@ -80,27 +80,27 @@ msgstr "von"
 msgid "Digital Glarus Gallery"
 msgstr ""
 
-#: digitalglarus/cms_plugins.py:21
+#: digitalglarus/cms_plugins.py:22
 msgid "Digital Glarus Supporters"
 msgstr ""
 
-#: digitalglarus/forms.py:35 digitalglarus/forms.py:70 nosystemd/forms.py:47
-#: utils/forms.py:109
+#: digitalglarus/forms.py:34 digitalglarus/forms.py:69 nosystemd/forms.py:47
+#: utils/forms.py:107
 msgid "Street Address"
 msgstr "Adresse"
 
-#: digitalglarus/forms.py:36 digitalglarus/forms.py:71 nosystemd/forms.py:48
-#: utils/forms.py:110 utils/forms.py:124
+#: digitalglarus/forms.py:35 digitalglarus/forms.py:70 nosystemd/forms.py:48
+#: utils/forms.py:108 utils/forms.py:123
 msgid "City"
 msgstr "Stadt"
 
-#: digitalglarus/forms.py:37 digitalglarus/forms.py:72 nosystemd/forms.py:49
-#: utils/forms.py:111 utils/forms.py:125
+#: digitalglarus/forms.py:36 digitalglarus/forms.py:71 nosystemd/forms.py:49
+#: utils/forms.py:109 utils/forms.py:124
 msgid "Postal Code"
 msgstr "Postleitzahl"
 
-#: digitalglarus/forms.py:38 digitalglarus/forms.py:73 nosystemd/forms.py:50
-#: utils/forms.py:112 utils/forms.py:126
+#: digitalglarus/forms.py:37 digitalglarus/forms.py:72 nosystemd/forms.py:50
+#: utils/forms.py:110 utils/forms.py:125
 msgid "Country"
 msgstr "Land"
 
@@ -116,7 +116,7 @@ msgid "previous"
 msgstr "vorherige"
 
 #: digitalglarus/templates/glarus_blog/post_list.html:26
-#: dynamicweb/settings/base.py:182 templates/cms/__init__.py:10
+#: dynamicweb/settings/base.py:192 templates/cms/__init__.py:10
 #: templates/cms/ungleichch/__init__.py:5
 msgid "Page"
 msgstr "Seite"
@@ -135,22 +135,22 @@ msgstr "nächste"
 msgid "Change to language:"
 msgstr "Sprache wechseln zu: "
 
-#: digitalglarus/templates/new_base_glarus.html:168
-#: digitalglarus/templates/new_base_glarus.html:191
+#: digitalglarus/templates/new_base_glarus.html:161
+#: digitalglarus/templates/new_base_glarus.html:184
 #: digitalglarus/templates/new_base_glarus_c.html:176
 #: digitalglarus/templates/new_base_glarus_c.html:199
 msgid "Bookings"
 msgstr ""
 
-#: digitalglarus/templates/new_base_glarus.html:172
-#: digitalglarus/templates/new_base_glarus.html:195
+#: digitalglarus/templates/new_base_glarus.html:165
+#: digitalglarus/templates/new_base_glarus.html:188
 #: digitalglarus/templates/new_base_glarus_c.html:180
 #: digitalglarus/templates/new_base_glarus_c.html:203
 msgid "Membership"
 msgstr ""
 
-#: digitalglarus/templates/new_base_glarus.html:178
-#: digitalglarus/templates/new_base_glarus.html:201
+#: digitalglarus/templates/new_base_glarus.html:171
+#: digitalglarus/templates/new_base_glarus.html:194
 #: digitalglarus/templates/new_base_glarus_c.html:186
 #: digitalglarus/templates/new_base_glarus_c.html:209
 #: nosystemd/templates/nosystemd/base.html:76
@@ -247,106 +247,71 @@ msgstr "befurworter/?$"
 msgid "Message Successfully Sent"
 msgstr ""
 
-#: dynamicweb/settings-test/__init__.py:178
+#: dynamicweb/settings-test/__init__.py:181
 msgid "US English"
 msgstr ""
 
-#: dynamicweb/settings-test/__init__.py:179
+#: dynamicweb/settings-test/__init__.py:182
 msgid "German"
 msgstr ""
 
-#: dynamicweb/settings-test/__init__.py:232
-#: dynamicweb/settings-test/__init__.py:241
-#: dynamicweb/settings/__init__old.py:232
-#: dynamicweb/settings/__init__old.py:241 dynamicweb/settings/base.py:270
-#: dynamicweb/settings/base.py:279
+#: dynamicweb/settings-test/__init__.py:235
+#: dynamicweb/settings-test/__init__.py:244 dynamicweb/settings/base.py:280
+#: dynamicweb/settings/base.py:289
 msgid "Content"
 msgstr ""
 
-#: dynamicweb/settings/__init__old.py:178 dynamicweb/settings/base.py:211
-msgid "English"
-msgstr ""
-
-#: dynamicweb/settings/__init__old.py:179 dynamicweb/settings/base.py:212
-msgid "Deutsch"
-msgstr ""
-
-#: dynamicweb/settings/base.py:171
+#: dynamicweb/settings/base.py:181
 msgid "default"
 msgstr ""
 
-#: dynamicweb/settings/base.py:172
+#: dynamicweb/settings/base.py:182
 msgid "2 Column"
 msgstr ""
 
-#: dynamicweb/settings/base.py:173
+#: dynamicweb/settings/base.py:183
 msgid "3 Column"
 msgstr ""
 
-#: dynamicweb/settings/base.py:174 templates/cms/__init__.py:4
+#: dynamicweb/settings/base.py:184 templates/cms/__init__.py:4
 #: templates/cms/digitalglarus/__init__.py:4
 msgid "DG.About"
 msgstr ""
 
-#: dynamicweb/settings/base.py:175 templates/cms/__init__.py:5
+#: dynamicweb/settings/base.py:185 templates/cms/__init__.py:5
 #: templates/cms/digitalglarus/__init__.py:5
 #, fuzzy
 #| msgid "contact/?$"
 msgid "DG.Contact"
 msgstr "kontakt/?$"
 
-#: dynamicweb/settings/base.py:176 templates/cms/__init__.py:6
+#: dynamicweb/settings/base.py:186 templates/cms/__init__.py:6
 #: templates/cms/digitalglarus/__init__.py:6
 msgid "DG.Home"
 msgstr ""
 
-#: dynamicweb/settings/base.py:177 templates/cms/__init__.py:7
+#: dynamicweb/settings/base.py:187 templates/cms/__init__.py:7
 #: templates/cms/digitalglarus/__init__.py:7
 msgid "DG.CoWork"
 msgstr ""
 
-#: dynamicweb/settings/base.py:179
+#: dynamicweb/settings/base.py:189
 msgid "DG.OneColumn"
 msgstr ""
 
-#: dynamicweb/settings/base.py:181 templates/cms/__init__.py:9
+#: dynamicweb/settings/base.py:191 templates/cms/__init__.py:9
 #: templates/cms/ungleichch/__init__.py:4
 msgid "Blog"
 msgstr ""
 
-#: membership/forms.py:43 utils/forms.py:142
-msgid "Name"
-msgstr "Name"
-
-#: membership/forms.py:43
-#, fuzzy
-msgid "Card number"
-msgstr "Kartennummer"
-
-#: membership/forms.py:43
-msgid "Expiry date"
-msgstr "Ablaufdatum"
-
-#: membership/forms.py:44
-msgid "CCV"
+#: dynamicweb/settings/base.py:221
+msgid "English"
 msgstr ""
 
-#: membership/models.py:67
-msgid "staff status"
+#: dynamicweb/settings/base.py:222
+msgid "Deutsch"
 msgstr ""
 
-#: membership/models.py:69
-msgid "Designates whether the user can log into this admin site."
-msgstr ""
-
-#: membership/models.py:181
-msgid "Use this pattern(MM/YYYY)."
-msgstr ""
-
-#: membership/models.py:182
-msgid "Wrong CCV number."
-msgstr "Falsche CCV Nummer"
-
 #: nosystemd/forms.py:46
 msgid "Amount"
 msgstr "Betrag"
@@ -502,979 +467,987 @@ msgstr ""
 msgid "DG.Detail"
 msgstr ""
 
-#: ungleich/cms_toolbar.py:24
+#: ungleich/cms_toolbar.py:23
 msgid "Page Header"
 msgstr ""
 
-#: ungleich/views.py:78
+#: ungleich/views.py:79
 #, python-format
 msgid "No %(verbose_name)s found matching the query"
 msgstr ""
 
-#: utils/fields.py:7
+#: utils/fields.py:6
 msgid "Andorra"
 msgstr ""
 
-#: utils/fields.py:8
+#: utils/fields.py:7
 msgid "United Arab Emirates"
 msgstr ""
 
-#: utils/fields.py:9
+#: utils/fields.py:8
 msgid "Afghanistan"
 msgstr ""
 
-#: utils/fields.py:10
+#: utils/fields.py:9
 msgid "Antigua & Barbuda"
 msgstr ""
 
-#: utils/fields.py:11
+#: utils/fields.py:10
 msgid "Anguilla"
 msgstr ""
 
-#: utils/fields.py:12
+#: utils/fields.py:11
 msgid "Albania"
 msgstr ""
 
-#: utils/fields.py:13
+#: utils/fields.py:12
 msgid "Armenia"
 msgstr ""
 
-#: utils/fields.py:14
+#: utils/fields.py:13
 msgid "Netherlands Antilles"
 msgstr ""
 
-#: utils/fields.py:15
+#: utils/fields.py:14
 msgid "Angola"
 msgstr ""
 
-#: utils/fields.py:16
+#: utils/fields.py:15
 msgid "Antarctica"
 msgstr ""
 
-#: utils/fields.py:17
+#: utils/fields.py:16
 msgid "Argentina"
 msgstr ""
 
-#: utils/fields.py:18
+#: utils/fields.py:17
 msgid "American Samoa"
 msgstr ""
 
-#: utils/fields.py:19
+#: utils/fields.py:18
 msgid "Austria"
 msgstr ""
 
-#: utils/fields.py:20
+#: utils/fields.py:19
 msgid "Australia"
 msgstr ""
 
-#: utils/fields.py:21
+#: utils/fields.py:20
 msgid "Aruba"
 msgstr ""
 
-#: utils/fields.py:22
+#: utils/fields.py:21
 msgid "Azerbaijan"
 msgstr ""
 
-#: utils/fields.py:23
+#: utils/fields.py:22
 msgid "Bosnia and Herzegovina"
 msgstr ""
 
-#: utils/fields.py:24
+#: utils/fields.py:23
 msgid "Barbados"
 msgstr ""
 
-#: utils/fields.py:25
+#: utils/fields.py:24
 msgid "Bangladesh"
 msgstr ""
 
-#: utils/fields.py:26
+#: utils/fields.py:25
 msgid "Belgium"
 msgstr ""
 
-#: utils/fields.py:27
+#: utils/fields.py:26
 msgid "Burkina Faso"
 msgstr ""
 
-#: utils/fields.py:28
+#: utils/fields.py:27
 msgid "Bulgaria"
 msgstr ""
 
-#: utils/fields.py:29
+#: utils/fields.py:28
 msgid "Bahrain"
 msgstr ""
 
-#: utils/fields.py:30
+#: utils/fields.py:29
 msgid "Burundi"
 msgstr ""
 
-#: utils/fields.py:31
+#: utils/fields.py:30
 msgid "Benin"
 msgstr ""
 
-#: utils/fields.py:32
+#: utils/fields.py:31
 msgid "Bermuda"
 msgstr ""
 
-#: utils/fields.py:33
+#: utils/fields.py:32
 msgid "Brunei Darussalam"
 msgstr ""
 
-#: utils/fields.py:34
+#: utils/fields.py:33
 msgid "Bolivia"
 msgstr ""
 
-#: utils/fields.py:35
+#: utils/fields.py:34
 msgid "Brazil"
 msgstr ""
 
-#: utils/fields.py:36
+#: utils/fields.py:35
 msgid "Bahama"
 msgstr ""
 
-#: utils/fields.py:37
+#: utils/fields.py:36
 msgid "Bhutan"
 msgstr ""
 
-#: utils/fields.py:38
+#: utils/fields.py:37
 msgid "Bouvet Island"
 msgstr ""
 
-#: utils/fields.py:39
+#: utils/fields.py:38
 msgid "Botswana"
 msgstr ""
 
-#: utils/fields.py:40
+#: utils/fields.py:39
 msgid "Belarus"
 msgstr ""
 
-#: utils/fields.py:41
+#: utils/fields.py:40
 msgid "Belize"
 msgstr ""
 
-#: utils/fields.py:42
+#: utils/fields.py:41
 msgid "Canada"
 msgstr ""
 
-#: utils/fields.py:43
+#: utils/fields.py:42
 msgid "Cocos (Keeling) Islands"
 msgstr ""
 
-#: utils/fields.py:44
+#: utils/fields.py:43
 msgid "Central African Republic"
 msgstr ""
 
-#: utils/fields.py:45
+#: utils/fields.py:44
 msgid "Congo"
 msgstr ""
 
-#: utils/fields.py:46
+#: utils/fields.py:45
 msgid "Switzerland"
 msgstr ""
 
-#: utils/fields.py:47
+#: utils/fields.py:46
 msgid "Ivory Coast"
 msgstr ""
 
-#: utils/fields.py:48
+#: utils/fields.py:47
 msgid "Cook Iislands"
 msgstr ""
 
-#: utils/fields.py:49
+#: utils/fields.py:48
 msgid "Chile"
 msgstr ""
 
-#: utils/fields.py:50
+#: utils/fields.py:49
 msgid "Cameroon"
 msgstr ""
 
-#: utils/fields.py:51
+#: utils/fields.py:50
 msgid "China"
 msgstr ""
 
-#: utils/fields.py:52
+#: utils/fields.py:51
 msgid "Colombia"
 msgstr ""
 
-#: utils/fields.py:53
+#: utils/fields.py:52
 msgid "Costa Rica"
 msgstr ""
 
-#: utils/fields.py:54
+#: utils/fields.py:53
 msgid "Cuba"
 msgstr ""
 
-#: utils/fields.py:55
+#: utils/fields.py:54
 msgid "Cape Verde"
 msgstr ""
 
-#: utils/fields.py:56
+#: utils/fields.py:55
 msgid "Christmas Island"
 msgstr ""
 
-#: utils/fields.py:57
+#: utils/fields.py:56
 msgid "Cyprus"
 msgstr ""
 
-#: utils/fields.py:58
+#: utils/fields.py:57
 msgid "Czech Republic"
 msgstr ""
 
-#: utils/fields.py:59
+#: utils/fields.py:58
 msgid "Germany"
 msgstr ""
 
-#: utils/fields.py:60
+#: utils/fields.py:59
 msgid "Djibouti"
 msgstr ""
 
-#: utils/fields.py:61
+#: utils/fields.py:60
 msgid "Denmark"
 msgstr ""
 
-#: utils/fields.py:62
+#: utils/fields.py:61
 msgid "Dominica"
 msgstr ""
 
-#: utils/fields.py:63
+#: utils/fields.py:62
 msgid "Dominican Republic"
 msgstr ""
 
-#: utils/fields.py:64
+#: utils/fields.py:63
 msgid "Algeria"
 msgstr ""
 
-#: utils/fields.py:65
+#: utils/fields.py:64
 msgid "Ecuador"
 msgstr ""
 
-#: utils/fields.py:66
+#: utils/fields.py:65
 msgid "Estonia"
 msgstr ""
 
-#: utils/fields.py:67
+#: utils/fields.py:66
 msgid "Egypt"
 msgstr ""
 
-#: utils/fields.py:68
+#: utils/fields.py:67
 msgid "Western Sahara"
 msgstr ""
 
-#: utils/fields.py:69
+#: utils/fields.py:68
 msgid "Eritrea"
 msgstr ""
 
-#: utils/fields.py:70
+#: utils/fields.py:69
 msgid "Spain"
 msgstr ""
 
-#: utils/fields.py:71
+#: utils/fields.py:70
 msgid "Ethiopia"
 msgstr ""
 
-#: utils/fields.py:72
+#: utils/fields.py:71
 msgid "Finland"
 msgstr ""
 
-#: utils/fields.py:73
+#: utils/fields.py:72
 msgid "Fiji"
 msgstr ""
 
-#: utils/fields.py:74
+#: utils/fields.py:73
 msgid "Falkland Islands (Malvinas)"
 msgstr ""
 
-#: utils/fields.py:75
+#: utils/fields.py:74
 msgid "Micronesia"
 msgstr ""
 
-#: utils/fields.py:76
+#: utils/fields.py:75
 msgid "Faroe Islands"
 msgstr ""
 
-#: utils/fields.py:77
+#: utils/fields.py:76
 msgid "France"
 msgstr ""
 
-#: utils/fields.py:78
+#: utils/fields.py:77
 msgid "France, Metropolitan"
 msgstr ""
 
-#: utils/fields.py:79
+#: utils/fields.py:78
 msgid "Gabon"
 msgstr ""
 
-#: utils/fields.py:80
+#: utils/fields.py:79
 msgid "United Kingdom (Great Britain)"
 msgstr ""
 
-#: utils/fields.py:81
+#: utils/fields.py:80
 msgid "Grenada"
 msgstr ""
 
-#: utils/fields.py:82
+#: utils/fields.py:81
 msgid "Georgia"
 msgstr ""
 
-#: utils/fields.py:83
+#: utils/fields.py:82
 msgid "French Guiana"
 msgstr ""
 
-#: utils/fields.py:84
+#: utils/fields.py:83
 msgid "Ghana"
 msgstr ""
 
-#: utils/fields.py:85
+#: utils/fields.py:84
 msgid "Gibraltar"
 msgstr ""
 
-#: utils/fields.py:86
+#: utils/fields.py:85
 msgid "Greenland"
 msgstr ""
 
-#: utils/fields.py:87
+#: utils/fields.py:86
 msgid "Gambia"
 msgstr ""
 
-#: utils/fields.py:88
+#: utils/fields.py:87
 msgid "Guinea"
 msgstr ""
 
-#: utils/fields.py:89
+#: utils/fields.py:88
 msgid "Guadeloupe"
 msgstr ""
 
-#: utils/fields.py:90
+#: utils/fields.py:89
 msgid "Equatorial Guinea"
 msgstr ""
 
-#: utils/fields.py:91
+#: utils/fields.py:90
 msgid "Greece"
 msgstr ""
 
-#: utils/fields.py:92
+#: utils/fields.py:91
 msgid "South Georgia and the South Sandwich Islands"
 msgstr ""
 
-#: utils/fields.py:93
+#: utils/fields.py:92
 msgid "Guatemala"
 msgstr ""
 
-#: utils/fields.py:94
+#: utils/fields.py:93
 msgid "Guam"
 msgstr ""
 
-#: utils/fields.py:95
+#: utils/fields.py:94
 msgid "Guinea-Bissau"
 msgstr ""
 
-#: utils/fields.py:96
+#: utils/fields.py:95
 msgid "Guyana"
 msgstr ""
 
-#: utils/fields.py:97
+#: utils/fields.py:96
 msgid "Hong Kong"
 msgstr ""
 
-#: utils/fields.py:98
+#: utils/fields.py:97
 msgid "Heard & McDonald Islands"
 msgstr ""
 
-#: utils/fields.py:99
+#: utils/fields.py:98
 msgid "Honduras"
 msgstr ""
 
-#: utils/fields.py:100
+#: utils/fields.py:99
 msgid "Croatia"
 msgstr ""
 
-#: utils/fields.py:101
+#: utils/fields.py:100
 msgid "Haiti"
 msgstr ""
 
-#: utils/fields.py:102
+#: utils/fields.py:101
 msgid "Hungary"
 msgstr ""
 
-#: utils/fields.py:103
+#: utils/fields.py:102
 msgid "Indonesia"
 msgstr ""
 
-#: utils/fields.py:104
+#: utils/fields.py:103
 msgid "Ireland"
 msgstr ""
 
-#: utils/fields.py:105
+#: utils/fields.py:104
 msgid "Israel"
 msgstr ""
 
-#: utils/fields.py:106
+#: utils/fields.py:105
 msgid "India"
 msgstr ""
 
-#: utils/fields.py:107
+#: utils/fields.py:106
 msgid "British Indian Ocean Territory"
 msgstr ""
 
-#: utils/fields.py:108
+#: utils/fields.py:107
 msgid "Iraq"
 msgstr ""
 
-#: utils/fields.py:109
+#: utils/fields.py:108
 msgid "Islamic Republic of Iran"
 msgstr ""
 
-#: utils/fields.py:110
+#: utils/fields.py:109
 msgid "Iceland"
 msgstr ""
 
-#: utils/fields.py:111
+#: utils/fields.py:110
 msgid "Italy"
 msgstr ""
 
-#: utils/fields.py:112
+#: utils/fields.py:111
 msgid "Jamaica"
 msgstr ""
 
-#: utils/fields.py:113
+#: utils/fields.py:112
 msgid "Jordan"
 msgstr ""
 
-#: utils/fields.py:114
+#: utils/fields.py:113
 msgid "Japan"
 msgstr ""
 
-#: utils/fields.py:115
+#: utils/fields.py:114
 msgid "Kenya"
 msgstr ""
 
-#: utils/fields.py:116
+#: utils/fields.py:115
 msgid "Kyrgyzstan"
 msgstr ""
 
-#: utils/fields.py:117
+#: utils/fields.py:116
 msgid "Cambodia"
 msgstr ""
 
-#: utils/fields.py:118
+#: utils/fields.py:117
 msgid "Kiribati"
 msgstr ""
 
-#: utils/fields.py:119
+#: utils/fields.py:118
 msgid "Comoros"
 msgstr ""
 
-#: utils/fields.py:120
+#: utils/fields.py:119
 msgid "St. Kitts and Nevis"
 msgstr ""
 
-#: utils/fields.py:121
+#: utils/fields.py:120
 msgid "Korea, Democratic People's Republic of"
 msgstr ""
 
-#: utils/fields.py:122
+#: utils/fields.py:121
 msgid "Korea, Republic of"
 msgstr ""
 
-#: utils/fields.py:123
+#: utils/fields.py:122
 msgid "Kuwait"
 msgstr ""
 
-#: utils/fields.py:124
+#: utils/fields.py:123
 msgid "Cayman Islands"
 msgstr ""
 
-#: utils/fields.py:125
+#: utils/fields.py:124
 msgid "Kazakhstan"
 msgstr ""
 
-#: utils/fields.py:126
+#: utils/fields.py:125
 msgid "Lao People's Democratic Republic"
 msgstr ""
 
-#: utils/fields.py:127
+#: utils/fields.py:126
 msgid "Lebanon"
 msgstr ""
 
-#: utils/fields.py:128
+#: utils/fields.py:127
 msgid "Saint Lucia"
 msgstr ""
 
-#: utils/fields.py:129
+#: utils/fields.py:128
 msgid "Liechtenstein"
 msgstr ""
 
-#: utils/fields.py:130
+#: utils/fields.py:129
 msgid "Sri Lanka"
 msgstr ""
 
-#: utils/fields.py:131
+#: utils/fields.py:130
 msgid "Liberia"
 msgstr ""
 
-#: utils/fields.py:132
+#: utils/fields.py:131
 msgid "Lesotho"
 msgstr ""
 
-#: utils/fields.py:133
+#: utils/fields.py:132
 msgid "Lithuania"
 msgstr ""
 
-#: utils/fields.py:134
+#: utils/fields.py:133
 msgid "Luxembourg"
 msgstr ""
 
-#: utils/fields.py:135
+#: utils/fields.py:134
 msgid "Latvia"
 msgstr ""
 
-#: utils/fields.py:136
+#: utils/fields.py:135
 msgid "Libyan Arab Jamahiriya"
 msgstr ""
 
-#: utils/fields.py:137
+#: utils/fields.py:136
 msgid "Morocco"
 msgstr ""
 
-#: utils/fields.py:138
+#: utils/fields.py:137
 msgid "Monaco"
 msgstr ""
 
-#: utils/fields.py:139
+#: utils/fields.py:138
 msgid "Moldova, Republic of"
 msgstr ""
 
-#: utils/fields.py:140
+#: utils/fields.py:139
 msgid "Madagascar"
 msgstr ""
 
-#: utils/fields.py:141
+#: utils/fields.py:140
 msgid "Marshall Islands"
 msgstr ""
 
-#: utils/fields.py:142
+#: utils/fields.py:141
 msgid "Mali"
 msgstr ""
 
-#: utils/fields.py:143
+#: utils/fields.py:142
 msgid "Mongolia"
 msgstr ""
 
-#: utils/fields.py:144
+#: utils/fields.py:143
 msgid "Myanmar"
 msgstr ""
 
-#: utils/fields.py:145
+#: utils/fields.py:144
 msgid "Macau"
 msgstr ""
 
-#: utils/fields.py:146
+#: utils/fields.py:145
 msgid "Northern Mariana Islands"
 msgstr ""
 
-#: utils/fields.py:147
+#: utils/fields.py:146
 msgid "Martinique"
 msgstr ""
 
-#: utils/fields.py:148
+#: utils/fields.py:147
 msgid "Mauritania"
 msgstr ""
 
-#: utils/fields.py:149
+#: utils/fields.py:148
 msgid "Monserrat"
 msgstr ""
 
-#: utils/fields.py:150
+#: utils/fields.py:149
 msgid "Malta"
 msgstr ""
 
-#: utils/fields.py:151
+#: utils/fields.py:150
 msgid "Mauritius"
 msgstr ""
 
-#: utils/fields.py:152
+#: utils/fields.py:151
 msgid "Maldives"
 msgstr ""
 
-#: utils/fields.py:153
+#: utils/fields.py:152
 msgid "Malawi"
 msgstr ""
 
-#: utils/fields.py:154
+#: utils/fields.py:153
 msgid "Mexico"
 msgstr ""
 
-#: utils/fields.py:155
+#: utils/fields.py:154
 msgid "Malaysia"
 msgstr ""
 
-#: utils/fields.py:156
+#: utils/fields.py:155
 msgid "Mozambique"
 msgstr ""
 
-#: utils/fields.py:157
+#: utils/fields.py:156
 msgid "Namibia"
 msgstr ""
 
-#: utils/fields.py:158
+#: utils/fields.py:157
 msgid "New Caledonia"
 msgstr ""
 
-#: utils/fields.py:159
+#: utils/fields.py:158
 msgid "Niger"
 msgstr ""
 
-#: utils/fields.py:160
+#: utils/fields.py:159
 msgid "Norfolk Island"
 msgstr ""
 
-#: utils/fields.py:161
+#: utils/fields.py:160
 msgid "Nigeria"
 msgstr ""
 
-#: utils/fields.py:162
+#: utils/fields.py:161
 msgid "Nicaragua"
 msgstr ""
 
-#: utils/fields.py:163
+#: utils/fields.py:162
 msgid "Netherlands"
 msgstr ""
 
-#: utils/fields.py:164
+#: utils/fields.py:163
 msgid "Norway"
 msgstr ""
 
-#: utils/fields.py:165
+#: utils/fields.py:164
 msgid "Nepal"
 msgstr ""
 
-#: utils/fields.py:166
+#: utils/fields.py:165
 msgid "Nauru"
 msgstr ""
 
-#: utils/fields.py:167
+#: utils/fields.py:166
 msgid "Niue"
 msgstr ""
 
-#: utils/fields.py:168
+#: utils/fields.py:167
 msgid "New Zealand"
 msgstr ""
 
-#: utils/fields.py:169
+#: utils/fields.py:168
 msgid "Oman"
 msgstr ""
 
-#: utils/fields.py:170
+#: utils/fields.py:169
 msgid "Panama"
 msgstr ""
 
-#: utils/fields.py:171
+#: utils/fields.py:170
 msgid "Peru"
 msgstr ""
 
-#: utils/fields.py:172
+#: utils/fields.py:171
 msgid "French Polynesia"
 msgstr ""
 
-#: utils/fields.py:173
+#: utils/fields.py:172
 msgid "Papua New Guinea"
 msgstr ""
 
-#: utils/fields.py:174
+#: utils/fields.py:173
 msgid "Philippines"
 msgstr ""
 
-#: utils/fields.py:175
+#: utils/fields.py:174
 msgid "Pakistan"
 msgstr ""
 
-#: utils/fields.py:176
+#: utils/fields.py:175
 msgid "Poland"
 msgstr ""
 
-#: utils/fields.py:177
+#: utils/fields.py:176
 msgid "St. Pierre & Miquelon"
 msgstr ""
 
-#: utils/fields.py:178
+#: utils/fields.py:177
 msgid "Pitcairn"
 msgstr ""
 
-#: utils/fields.py:179
+#: utils/fields.py:178
 msgid "Puerto Rico"
 msgstr ""
 
-#: utils/fields.py:180
+#: utils/fields.py:179
 msgid "Portugal"
 msgstr ""
 
-#: utils/fields.py:181
+#: utils/fields.py:180
 msgid "Palau"
 msgstr ""
 
-#: utils/fields.py:182
+#: utils/fields.py:181
 msgid "Paraguay"
 msgstr ""
 
-#: utils/fields.py:183
+#: utils/fields.py:182
 msgid "Qatar"
 msgstr ""
 
-#: utils/fields.py:184
+#: utils/fields.py:183
 msgid "Reunion"
 msgstr ""
 
-#: utils/fields.py:185
+#: utils/fields.py:184
 msgid "Romania"
 msgstr ""
 
-#: utils/fields.py:186
+#: utils/fields.py:185
 msgid "Russian Federation"
 msgstr ""
 
-#: utils/fields.py:187
+#: utils/fields.py:186
 msgid "Rwanda"
 msgstr ""
 
-#: utils/fields.py:188
+#: utils/fields.py:187
 msgid "Saudi Arabia"
 msgstr ""
 
-#: utils/fields.py:189
+#: utils/fields.py:188
 msgid "Solomon Islands"
 msgstr ""
 
-#: utils/fields.py:190
+#: utils/fields.py:189
 msgid "Seychelles"
 msgstr ""
 
-#: utils/fields.py:191
+#: utils/fields.py:190
 msgid "Sudan"
 msgstr ""
 
-#: utils/fields.py:192
+#: utils/fields.py:191
 msgid "Sweden"
 msgstr ""
 
-#: utils/fields.py:193
+#: utils/fields.py:192
 msgid "Singapore"
 msgstr ""
 
-#: utils/fields.py:194
+#: utils/fields.py:193
 msgid "St. Helena"
 msgstr ""
 
-#: utils/fields.py:195
+#: utils/fields.py:194
 msgid "Slovenia"
 msgstr ""
 
-#: utils/fields.py:196
+#: utils/fields.py:195
 msgid "Svalbard & Jan Mayen Islands"
 msgstr ""
 
-#: utils/fields.py:197
+#: utils/fields.py:196
 msgid "Slovakia"
 msgstr ""
 
-#: utils/fields.py:198
+#: utils/fields.py:197
 msgid "Sierra Leone"
 msgstr ""
 
-#: utils/fields.py:199
+#: utils/fields.py:198
 msgid "San Marino"
 msgstr ""
 
-#: utils/fields.py:200
+#: utils/fields.py:199
 msgid "Senegal"
 msgstr ""
 
-#: utils/fields.py:201
+#: utils/fields.py:200
 msgid "Somalia"
 msgstr ""
 
-#: utils/fields.py:202
+#: utils/fields.py:201
 msgid "Suriname"
 msgstr ""
 
-#: utils/fields.py:203
+#: utils/fields.py:202
 msgid "Sao Tome & Principe"
 msgstr ""
 
-#: utils/fields.py:204
+#: utils/fields.py:203
 msgid "El Salvador"
 msgstr ""
 
-#: utils/fields.py:205
+#: utils/fields.py:204
 msgid "Syrian Arab Republic"
 msgstr ""
 
-#: utils/fields.py:206
+#: utils/fields.py:205
 msgid "Swaziland"
 msgstr ""
 
-#: utils/fields.py:207
+#: utils/fields.py:206
 msgid "Turks & Caicos Islands"
 msgstr ""
 
-#: utils/fields.py:208
+#: utils/fields.py:207
 msgid "Chad"
 msgstr ""
 
-#: utils/fields.py:209
+#: utils/fields.py:208
 msgid "French Southern Territories"
 msgstr ""
 
-#: utils/fields.py:210
+#: utils/fields.py:209
 msgid "Togo"
 msgstr ""
 
-#: utils/fields.py:211
+#: utils/fields.py:210
 msgid "Thailand"
 msgstr ""
 
-#: utils/fields.py:212
+#: utils/fields.py:211
 msgid "Tajikistan"
 msgstr ""
 
-#: utils/fields.py:213
+#: utils/fields.py:212
 msgid "Tokelau"
 msgstr ""
 
-#: utils/fields.py:214
+#: utils/fields.py:213
 msgid "Turkmenistan"
 msgstr ""
 
-#: utils/fields.py:215
+#: utils/fields.py:214
 msgid "Tunisia"
 msgstr ""
 
-#: utils/fields.py:216
+#: utils/fields.py:215
 msgid "Tonga"
 msgstr ""
 
-#: utils/fields.py:217
+#: utils/fields.py:216
 msgid "East Timor"
 msgstr ""
 
-#: utils/fields.py:218
+#: utils/fields.py:217
 msgid "Turkey"
 msgstr ""
 
-#: utils/fields.py:219
+#: utils/fields.py:218
 msgid "Trinidad & Tobago"
 msgstr ""
 
-#: utils/fields.py:220
+#: utils/fields.py:219
 msgid "Tuvalu"
 msgstr ""
 
-#: utils/fields.py:221
+#: utils/fields.py:220
 msgid "Taiwan, Province of China"
 msgstr ""
 
-#: utils/fields.py:222
+#: utils/fields.py:221
 msgid "Tanzania, United Republic of"
 msgstr ""
 
-#: utils/fields.py:223
+#: utils/fields.py:222
 msgid "Ukraine"
 msgstr ""
 
-#: utils/fields.py:224
+#: utils/fields.py:223
 msgid "Uganda"
 msgstr ""
 
-#: utils/fields.py:225
+#: utils/fields.py:224
 msgid "United States Minor Outlying Islands"
 msgstr ""
 
-#: utils/fields.py:226
+#: utils/fields.py:225
 msgid "United States of America"
 msgstr ""
 
-#: utils/fields.py:227
+#: utils/fields.py:226
 msgid "Uruguay"
 msgstr ""
 
-#: utils/fields.py:228
+#: utils/fields.py:227
 msgid "Uzbekistan"
 msgstr ""
 
-#: utils/fields.py:229
+#: utils/fields.py:228
 msgid "Vatican City State (Holy See)"
 msgstr ""
 
-#: utils/fields.py:230
+#: utils/fields.py:229
 msgid "St. Vincent & the Grenadines"
 msgstr ""
 
-#: utils/fields.py:231
+#: utils/fields.py:230
 msgid "Venezuela"
 msgstr ""
 
-#: utils/fields.py:232
+#: utils/fields.py:231
 msgid "British Virgin Islands"
 msgstr ""
 
-#: utils/fields.py:233
+#: utils/fields.py:232
 msgid "United States Virgin Islands"
 msgstr ""
 
-#: utils/fields.py:234
+#: utils/fields.py:233
 msgid "Viet Nam"
 msgstr ""
 
-#: utils/fields.py:235
+#: utils/fields.py:234
 msgid "Vanuatu"
 msgstr ""
 
-#: utils/fields.py:236
+#: utils/fields.py:235
 msgid "Wallis & Futuna Islands"
 msgstr ""
 
-#: utils/fields.py:237
+#: utils/fields.py:236
 msgid "Samoa"
 msgstr ""
 
-#: utils/fields.py:238
+#: utils/fields.py:237
 msgid "Yemen"
 msgstr ""
 
-#: utils/fields.py:239
+#: utils/fields.py:238
 msgid "Mayotte"
 msgstr ""
 
-#: utils/fields.py:240
+#: utils/fields.py:239
 msgid "Yugoslavia"
 msgstr ""
 
-#: utils/fields.py:241
+#: utils/fields.py:240
 msgid "South Africa"
 msgstr ""
 
-#: utils/fields.py:242
+#: utils/fields.py:241
 msgid "Zambia"
 msgstr ""
 
-#: utils/fields.py:243
+#: utils/fields.py:242
 msgid "Zaire"
 msgstr ""
 
-#: utils/fields.py:244
+#: utils/fields.py:243
 msgid "Zimbabwe"
 msgstr ""
 
-#: utils/fields.py:245
+#: utils/fields.py:244
 msgid "Unknown or unspecified country"
 msgstr ""
 
-#: utils/forms.py:20
+#: utils/forms.py:21
 msgid "Enter your name or company name"
 msgstr "Geben Sie Ihren Namen oder der Ihrer Firma ein"
 
-#: utils/forms.py:123
+#: utils/forms.py:106
+msgid "Cardholder Name"
+msgstr "Name des Kartenbesitzer"
+
+#: utils/forms.py:122
 msgid "Street Building"
 msgstr ""
 
+#: utils/forms.py:142
+msgid "Name"
+msgstr "Name"
+
 #: utils/forms.py:143
 msgid "Email"
 msgstr "Email"
@@ -1487,6 +1460,16 @@ msgstr "Telefon"
 msgid "Message"
 msgstr "Nachricht"
 
+#, fuzzy
+#~ msgid "Card number"
+#~ msgstr "Kartennummer"
+
+#~ msgid "Expiry date"
+#~ msgstr "Ablaufdatum"
+
+#~ msgid "Wrong CCV number."
+#~ msgstr "Falsche CCV Nummer"
+
 #~ msgid "home/?$"
 #~ msgstr "haus/?$"
 

From 2bfc31e572843885a66c9890884f924b8fc303b9 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 23:35:01 +0530
Subject: [PATCH 29/56] Added DE translations

---
 hosting/locale/de/LC_MESSAGES/django.po | 38 ++++++++++++++++---------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index ce5e3aa4..54641b62 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-16 16:51+0530\n"
+"POT-Creation-Date: 2017-07-16 23:27+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"
@@ -351,7 +351,7 @@ msgstr "Löschen"
 
 #: templates/hosting/payment.html:10
 msgid "Your Order"
-msgstr ""
+msgstr "Deine Bestellung"
 
 #: templates/hosting/payment.html:22
 #: templates/hosting/virtual_machine_detail.html:98
@@ -359,8 +359,8 @@ msgid "Configuration"
 msgstr "Konfiguration"
 
 #: templates/hosting/payment.html:41
-msgid "including VAT"
-msgstr ""
+msgid "Total including VAT"
+msgstr "Gesamt inkl. Mehrwertsteuer"
 
 #: templates/hosting/payment.html:55
 msgid "Billing Address"
@@ -399,11 +399,27 @@ msgstr ""
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
-#: templates/hosting/payment.html:101 templates/hosting/payment.html.py:136
+#: templates/hosting/payment.html:101 templates/hosting/payment.html.py:143
 msgid "Submit"
 msgstr "Absenden"
 
-#: templates/hosting/payment.html:128
+#: templates/hosting/payment.html:113
+msgid "Card Number"
+msgstr "Kreditkartennummer"
+
+#: templates/hosting/payment.html:117
+msgid "Expiry Date"
+msgstr "Ablaufdatum"
+
+#: templates/hosting/payment.html:122
+msgid "CVC"
+msgstr ""
+
+#: templates/hosting/payment.html:126
+msgid "Card Type"
+msgstr "Kartentyp"
+
+#: templates/hosting/payment.html:135
 msgid ""
 "\n"
 "                                            You are not making any payment "
@@ -417,7 +433,7 @@ msgstr ""
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
-#: templates/hosting/payment.html:171
+#: templates/hosting/payment.html:178
 msgid "Processing"
 msgstr ""
 
@@ -561,7 +577,7 @@ msgstr "Du kannst dich nun"
 msgid "Sorry. Your request is invalid."
 msgstr "Entschuldigung, deine Anfrage ist ungültig."
 
-#: views.py:756
+#: views.py:757
 msgid ""
 "We could not find the requested VM. Please                            "
 "contact Data Center Light Support."
@@ -587,15 +603,9 @@ msgstr ""
 #~ msgid "CARD NUMBER"
 #~ msgstr "Kreditkartennummer"
 
-#~ msgid "Valid Card Number"
-#~ msgstr "Gültige Kreditkartennummer"
-
 #~ msgid "EXPIRATION DATE"
 #~ msgstr "Ablaufdatum"
 
-#~ msgid "CV CODE"
-#~ msgstr "CV Code"
-
 #~ msgid "Home"
 #~ msgstr "Home"
 

From 72d057e6780da5e2c5ac0dedb1751bc58fe1a992 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 23:46:42 +0530
Subject: [PATCH 30/56] Fixed issue with Total including VAT text

---
 hosting/locale/de/LC_MESSAGES/django.po | 10 +++++-----
 hosting/templates/hosting/payment.html  |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 54641b62..9e342ad1 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-16 23:27+0530\n"
+"POT-Creation-Date: 2017-07-16 23:45+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"
@@ -303,9 +303,9 @@ msgstr "Arbeitsspeicher"
 msgid "Disk space"
 msgstr "Festplattenkapazität"
 
-#: templates/hosting/order_detail.html:71
+#: templates/hosting/order_detail.html:71 templates/hosting/payment.html:41
 msgid "Total"
-msgstr ""
+msgstr "Gesamt"
 
 #: templates/hosting/order_detail.html:77
 msgid "Finish Configuration"
@@ -359,8 +359,8 @@ msgid "Configuration"
 msgstr "Konfiguration"
 
 #: templates/hosting/payment.html:41
-msgid "Total including VAT"
-msgstr "Gesamt inkl. Mehrwertsteuer"
+msgid "including VAT"
+msgstr "inkl. Mehrwertsteuer"
 
 #: templates/hosting/payment.html:55
 msgid "Billing Address"
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 7698251f..024d77db 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -38,7 +38,7 @@
                 </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">
-                        <span>{%trans "Total including VAT" %}</span>
+                        {%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-6 col-md-6 col-lg-6"></div>

From e481ff947d408181cc9d84ff8ffa61549f0fa58a Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sun, 16 Jul 2017 23:55:29 +0530
Subject: [PATCH 31/56] Added code for tranlating Enter your credit card number
 in payment.js

---
 hosting/static/hosting/js/payment.js   | 6 +++++-
 hosting/templates/hosting/payment.html | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index edae127c..7b964db0 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -115,9 +115,13 @@ $(document).ready(function () {
             }
         };
 
+        var enter_ccard_text = "Enter your credit card number";
+        if (typeof window.enter_ccard_text !== 'undefined') {
+            enter_ccard_text = window.enter_ccard_text
+        }
         var cardNumberElement = elements.create('cardNumber', {
             style: credit_card_text_style,
-            placeholder: "Enter your credit card number"
+            placeholder: enter_ccard_text
         });
         cardNumberElement.mount('#card-number-element');
 
diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index 024d77db..f03ba6e2 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -176,6 +176,7 @@
 {% 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}}";

From d8fa3430e6d8e596013376319614e93c8caa1c28 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 00:33:48 +0530
Subject: [PATCH 32/56] Removed box-shadow and set font-weight 400 in mobile
 view in the billing details

---
 hosting/static/hosting/css/landing-page.css | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 85c80b0d..b3e908a9 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -620,9 +620,15 @@ a.unlink:hover {
     .card-cvc-element {
     padding-left: 10px;
     }
+    
     .hide-mobile{
     display:none;
     }
+    
+    #billing-form .form-control {
+    box-shadow: none !important;
+    font-weight: 400;
+}
 }
 
 @media (min-width: 1200px) {

From 20a5414f6197df983c4185b7d3c62babc341bdbc Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 01:06:24 +0530
Subject: [PATCH 33/56] Translated processing and Enter your credit card number

---
 hosting/locale/de/LC_MESSAGES/django.po | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 9e342ad1..986bc79b 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-16 23:45+0530\n"
+"POT-Creation-Date: 2017-07-17 00:53+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"
@@ -435,7 +435,11 @@ msgstr ""
 
 #: templates/hosting/payment.html:178
 msgid "Processing"
-msgstr ""
+msgstr "Weiter"
+
+#: templates/hosting/payment.html:179
+msgid "Enter your credit card number"
+msgstr "Bitte gib deine Kreditkartennummer ein"
 
 #: templates/hosting/reset_password.html:15
 msgid "Reset your password"

From 467bb8f11442b0281d99a32c57f6efa2af2ce8e7 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 01:17:12 +0530
Subject: [PATCH 34/56] Fixed a bug for Enter your credit card number text not
 showing up in german

---
 hosting/static/hosting/js/payment.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index 7b964db0..7d5eefec 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -116,8 +116,8 @@ $(document).ready(function () {
         };
 
         var enter_ccard_text = "Enter your credit card number";
-        if (typeof window.enter_ccard_text !== 'undefined') {
-            enter_ccard_text = window.enter_ccard_text
+        if (typeof window.enter_your_card_text !== 'undefined') {
+            enter_ccard_text = window.enter_your_card_text;
         }
         var cardNumberElement = elements.create('cardNumber', {
             style: credit_card_text_style,

From 00f98de6fdb5eeff59a415cde72fe36069feb1de Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:11:23 +0530
Subject: [PATCH 35/56] deiner -> Deiner, deine -> Deine

---
 hosting/locale/de/LC_MESSAGES/django.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 986bc79b..d102e74a 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -381,7 +381,7 @@ msgid ""
 "                                "
 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 "
 "speichern keine Informationen in unserer Datenbank."
 
@@ -395,7 +395,7 @@ msgid ""
 "                                        "
 msgstr ""
 "\n"
-"Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
+"Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe Deiner "
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
@@ -429,7 +429,7 @@ msgid ""
 "                                            "
 msgstr ""
 "\n"
-"Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe deiner "
+"Es wird noch keine Bezahlung vorgenommen. Nach der Eingabe Deiner "
 "Kreditkateninformationen wirst du auf die Bestellbestätigungsseite "
 "weitergeleitet."
 
@@ -439,7 +439,7 @@ msgstr "Weiter"
 
 #: templates/hosting/payment.html:179
 msgid "Enter your credit card number"
-msgstr "Bitte gib deine Kreditkartennummer ein"
+msgstr "Deine Kreditkartennummer"
 
 #: templates/hosting/reset_password.html:15
 msgid "Reset your password"

From 56e8734a277c74e1663b6f74c6fc026211571c15 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:12:12 +0530
Subject: [PATCH 36/56] font-weight -> 300 and outline none to the submit
 button in payment page

---
 hosting/static/hosting/css/landing-page.css | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index b3e908a9..23189492 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -515,10 +515,11 @@ a.unlink:hover {
 }
 
 .stripe-payment-btn {
+    outline: none;
     width: auto;
     float: right;
     font-style: normal;
-    font-weight: bold;
+    font-weight: 300;
     position: absolute;
     right: 0;
 }

From 3edc426cc4435095ae3524ec34b92c573b257939 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:13:27 +0530
Subject: [PATCH 37/56] Using same styles for Card number, CVV and MM/YY

---
 hosting/static/hosting/js/payment.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index 7d5eefec..7045029d 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -126,12 +126,12 @@ $(document).ready(function () {
         cardNumberElement.mount('#card-number-element');
 
         var cardExpiryElement = elements.create('cardExpiry', {
-            style: credit_card_cvv_style
+            style: credit_card_text_style
         });
         cardExpiryElement.mount('#card-expiry-element');
 
         var cardCvcElement = elements.create('cardCvc', {
-            style: credit_card_cvv_style
+            style: credit_card_text_style
         });
         cardCvcElement.mount('#card-cvc-element');
         cardNumberElement.on('change', function (event) {

From a746fe4af448f3ef98ea09292ed954bb511935ab Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:14:08 +0530
Subject: [PATCH 38/56] Removed inline style

---
 hosting/templates/hosting/payment.html | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index f03ba6e2..a202f534 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -95,8 +95,7 @@
                                 </div>
                                 <div class="col-xs-12">
                                     <div class="col-xs-6 pull-right">
-                                        <button style="width: 100px; float: right; font-style: normal; font-weight: bold; position: absolute; right: 0;"
-                                                id="payment_button_with_creditcard" class="btn btn-success"
+                                        <button id="payment_button_with_creditcard" class="btn btn-success stripe-payment-btn"
                                                 type="submit">
                                             {%trans "Submit" %}
                                         </button>

From ec4b47ccb63c8fc77d61d44c89885b548d38482e Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:50:59 +0530
Subject: [PATCH 39/56] Fixed overlapping issue of date and billing address in
 dcl order_detail.html

---
 .../templates/datacenterlight/order_detail.html   | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/datacenterlight/templates/datacenterlight/order_detail.html b/datacenterlight/templates/datacenterlight/order_detail.html
index da95161c..f8b66a73 100644
--- a/datacenterlight/templates/datacenterlight/order_detail.html
+++ b/datacenterlight/templates/datacenterlight/order_detail.html
@@ -25,7 +25,13 @@
                     </div>
                     <hr>
                     <div class="row">
-                        <div class="col-xs-6">
+                        <div class="col-xs-12 col-sm-6 pull-right text-right">
+                            <address>
+                                <strong>{% trans "Date"%}:</strong><br>
+                                <span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
+                            </address>
+                        </div>
+                        <div class="col-xs-12 col-sm-6">
                             <address>
                             <h3><b>{% trans "Billed To:"%}</b></h3>
                             {% with request.session.billing_address_data as billing_address %}
@@ -34,13 +40,6 @@
                             {% endwith %}
                             </address>
                         </div>
-                        <div class="col-xs-6 text-right">
-                            <address>
-                                <strong>{% trans "Date"%}:</strong><br>
-                                <span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
-                            </address>
-
-                        </div>
                     </div>
                     <div class="row">
                         <div class="col-xs-6">

From 7359703de8af337b37ab2d63b60f22a502195e4f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:51:49 +0530
Subject: [PATCH 40/56] Fixed responsive issue for tablet devices

---
 hosting/static/hosting/css/landing-page.css | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 23189492..b61b48e8 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -657,11 +657,17 @@ a.unlink:hover {
     }
 
     .content-dashboard {
-        width: auto !important;
+        /*width: auto !important;*/
     }
 
 }
 
+@media only screen and (max-width: 1040px) and (min-width: 768px) {
+    .content-dashboard {
+        width: 96% !important;
+    }
+}
+
 @media only screen and (max-width: 1330px) and (min-width: 1200px) {
     .content-dashboard {
         width: 100% !important;

From f10b7c0017ebf5c9f14bfcd4f50c5f3045bc3fc9 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:52:41 +0530
Subject: [PATCH 41/56] Fixed responsive issue

---
 hosting/templates/hosting/payment.html | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/hosting/templates/hosting/payment.html b/hosting/templates/hosting/payment.html
index a202f534..d03713c1 100644
--- a/hosting/templates/hosting/payment.html
+++ b/hosting/templates/hosting/payment.html
@@ -3,16 +3,16 @@
 {% 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 container">
+<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-1 col-md-1 col-lg-1 tbl-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-4 col-md-4 col-lg-4 tbl-header">
+                    <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">
@@ -23,10 +23,10 @@
                     </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-1 col-md-1 col-lg-1 tbl-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-4 col-md-4 col-lg-4 tbl-content">
+                    <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">

From 9bb4742607cc502b2382558c795559e493cdd481 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:53:18 +0530
Subject: [PATCH 42/56] Fixed overlapping issue of date and billing address in
 hosting order_detail.html

---
 hosting/templates/hosting/order_detail.html | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html
index 761550fe..1df028b3 100644
--- a/hosting/templates/hosting/order_detail.html
+++ b/hosting/templates/hosting/order_detail.html
@@ -24,15 +24,7 @@
     		</div>
     		<hr>
     		<div class="row">
-    			<div class="col-xs-6">
-    				<address>
-                    <h3><b>{% trans "Billed To:"%}</b></h3>
-    					{{user.name}}<br>
-                        {{order.billing_address.street_address}},{{order.billing_address.postal_code}}<br>
-                        {{order.billing_address.city}}, {{order.billing_address.country}}.
-    				</address>
-    			</div>
-                <div class="col-xs-6 text-right">
+				<div class="col-xs-12 col-md-6 pull-right text-right">
                     <address>
                         <strong>{% trans "Date"%}:</strong><br>
                         <span id="order-created_at">{{order.created_at|date:'Y-m-d H:i'}}</span><br><br>
@@ -44,6 +36,15 @@
                     </address>
 
                 </div>
+    			<div class="col-xs-12 col-md-6">
+    				<address>
+                    <h3><b>{% trans "Billed To:"%}</b></h3>
+    					{{user.name}}<br>
+                        {{order.billing_address.street_address}},{{order.billing_address.postal_code}}<br>
+                        {{order.billing_address.city}}, {{order.billing_address.country}}.
+    				</address>
+    			</div>
+                
     		</div>
     		<div class="row">
     			<div class="col-xs-6">

From 3f6250862b656ee657ee0953f271e0946a83b92d Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 02:57:24 +0530
Subject: [PATCH 43/56] Changed text align left to the date in the
 order_detail.html both in dcl and hosting

---
 datacenterlight/templates/datacenterlight/order_detail.html | 2 +-
 hosting/templates/hosting/order_detail.html                 | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/datacenterlight/templates/datacenterlight/order_detail.html b/datacenterlight/templates/datacenterlight/order_detail.html
index f8b66a73..b2269bb1 100644
--- a/datacenterlight/templates/datacenterlight/order_detail.html
+++ b/datacenterlight/templates/datacenterlight/order_detail.html
@@ -25,7 +25,7 @@
                     </div>
                     <hr>
                     <div class="row">
-                        <div class="col-xs-12 col-sm-6 pull-right text-right">
+                        <div class="col-xs-12 col-sm-6 pull-right text-left">
                             <address>
                                 <strong>{% trans "Date"%}:</strong><br>
                                 <span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html
index 1df028b3..2712d129 100644
--- a/hosting/templates/hosting/order_detail.html
+++ b/hosting/templates/hosting/order_detail.html
@@ -24,7 +24,7 @@
     		</div>
     		<hr>
     		<div class="row">
-				<div class="col-xs-12 col-md-6 pull-right text-right">
+				<div class="col-xs-12 col-md-6 pull-right text-left">
                     <address>
                         <strong>{% trans "Date"%}:</strong><br>
                         <span id="order-created_at">{{order.created_at|date:'Y-m-d H:i'}}</span><br><br>

From c938af51a5f2369651b960c5691ef75031354b61 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 03:16:23 +0530
Subject: [PATCH 44/56] Added font-weight-> 300 to .split-section .split-text
 .lead in dcl landing-page.css

---
 datacenterlight/static/datacenterlight/css/landing-page.css | 1 +
 1 file changed, 1 insertion(+)

diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index 42b9ed70..fe07e9f5 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -322,6 +322,7 @@ h6 {
 .split-section .split-text .lead{
     font-size: 21px;
     color: #3a3a3a;
+    font-weight: 300 !important;
 }
 .split-section .split-text .split-title{
     position: relative;

From 834810baf0b7264ba8ff64790f521014bc164fd8 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 23:18:58 +0530
Subject: [PATCH 45/56] Added padding to enlarge the Submit payment button

---
 hosting/static/hosting/css/landing-page.css | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index b61b48e8..93edad97 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -521,6 +521,8 @@ a.unlink:hover {
     font-style: normal;
     font-weight: 300;
     position: absolute;
+    padding-left: 30px;
+    padding-right: 30px;
     right: 0;
 }
 

From 832ec48e93b6c3bcffbc4c95a8e907fb96df68d7 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Mon, 17 Jul 2017 23:35:31 +0530
Subject: [PATCH 46/56] Cleaned up some commented out code

---
 hosting/static/hosting/js/payment.js | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/hosting/static/hosting/js/payment.js b/hosting/static/hosting/js/payment.js
index 7045029d..6149a30a 100644
--- a/hosting/static/hosting/js/payment.js
+++ b/hosting/static/hosting/js/payment.js
@@ -51,7 +51,6 @@ $(document).ready(function () {
     var hasCreditcard = window.hasCreditcard || false;
     if (!hasCreditcard) {
         var stripe = Stripe(window.stripeKey);
-        /* new card */
         var element_style = {
             fonts: [{
                 family: 'lato-light',
@@ -135,13 +134,10 @@ $(document).ready(function () {
         });
         cardCvcElement.mount('#card-cvc-element');
         cardNumberElement.on('change', function (event) {
-            // Switch brand logo
             if (event.brand) {
                 setBrandIcon(event.brand);
             }
-            //setOutcome(event);
         });
-        /* new card end */
     }
     console.log("has creditcard", hasCreditcard);
     // hasCreditcard= true;

From f4aec68bfd598f06596082ae2a6d8020185a8256 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 18 Jul 2017 00:30:32 +0530
Subject: [PATCH 47/56] Added style to right align date in desktop view in
 Order Confirm page

---
 .../templates/datacenterlight/order_detail.html |  2 +-
 hosting/static/hosting/css/landing-page.css     | 17 ++++++++++++++++-
 hosting/templates/hosting/order_detail.html     |  2 +-
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/datacenterlight/templates/datacenterlight/order_detail.html b/datacenterlight/templates/datacenterlight/order_detail.html
index b2269bb1..4b8862df 100644
--- a/datacenterlight/templates/datacenterlight/order_detail.html
+++ b/datacenterlight/templates/datacenterlight/order_detail.html
@@ -25,7 +25,7 @@
                     </div>
                     <hr>
                     <div class="row">
-                        <div class="col-xs-12 col-sm-6 pull-right text-left">
+                        <div class="col-xs-12 col-sm-6 pull-right order-confirm-date">
                             <address>
                                 <strong>{% trans "Date"%}:</strong><br>
                                 <span id="order-created_at">{% now "Y-m-d H:i" %}</span><br><br>
diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css
index 93edad97..b1972eed 100644
--- a/hosting/static/hosting/css/landing-page.css
+++ b/hosting/static/hosting/css/landing-page.css
@@ -541,28 +541,39 @@ a.unlink:hover {
 .card-cvc-element label {
     padding-left: 10px;
 }
+
 .card-element {
     margin-bottom: 10px;
     padding: 0;
 }
+
 .card-element label{
     width:100%;
     margin-bottom:0px;
 }
+
 .my-input {
    border-bottom: 1px solid #ccc;
  }
+
 .card-cvc-element .my-input {
     padding-left: 10px;
 }
+
 #card-errors {
     clear: both;
     padding: 0 0 10px;
     color: #eb4d5c;
 }
+
 .credit-card-goup{
     padding: 0;
 }
+
+.order-confirm-date{
+    text-align:right;
+}
+
 @media (max-width: 767px) {
     .dcl-order-table-total span {
         padding-left: 3px;
@@ -631,7 +642,11 @@ a.unlink:hover {
     #billing-form .form-control {
     box-shadow: none !important;
     font-weight: 400;
-}
+    }
+
+    .order-confirm-date{
+        text-align:left;
+    }
 }
 
 @media (min-width: 1200px) {
diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html
index 2712d129..9231bca8 100644
--- a/hosting/templates/hosting/order_detail.html
+++ b/hosting/templates/hosting/order_detail.html
@@ -24,7 +24,7 @@
     		</div>
     		<hr>
     		<div class="row">
-				<div class="col-xs-12 col-md-6 pull-right text-left">
+				<div class="col-xs-12 col-md-6 pull-right order-confirm-date">
                     <address>
                         <strong>{% trans "Date"%}:</strong><br>
                         <span id="order-created_at">{{order.created_at|date:'Y-m-d H:i'}}</span><br><br>

From af46927b9d83019e9632f664b4ed7b1283a54f9f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 18 Jul 2017 01:35:33 +0530
Subject: [PATCH 48/56] Changed the font weight of the lead text to 300

---
 .../static/datacenterlight/css/landing-page.css           | 5 +++++
 datacenterlight/templates/datacenterlight/index.html      | 2 +-
 .../templates/datacenterlight/whydatacenterlight.html     | 8 ++++----
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index fe07e9f5..14eaef9d 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -324,6 +324,11 @@ h6 {
     color: #3a3a3a;
     font-weight: 300 !important;
 }
+
+.new-lead {
+    font-weight: 300 !important;
+}
+
 .split-section .split-text .split-title{
     position: relative;
     margin-bottom: 25px;
diff --git a/datacenterlight/templates/datacenterlight/index.html b/datacenterlight/templates/datacenterlight/index.html
index f37faf08..548d8305 100755
--- a/datacenterlight/templates/datacenterlight/index.html
+++ b/datacenterlight/templates/datacenterlight/index.html
@@ -130,7 +130,7 @@
             <div class="row text-center">
                 <div class="col-xs-12 col-md-6 text">
                     <h2 class="section-heading">{% trans "Simple and affordable: Try our virtual machine with featherlight price." %}</h2>
-                    <p class="lead">{% trans "Affordable VM hosting based in Switzerland" %}</p>
+                    <p class="lead new-lead">{% trans "Affordable VM hosting based in Switzerland" %}</p>
                 </div>
 
                 <div class="col-xs-12 col-md-6 hero-feature">
diff --git a/datacenterlight/templates/datacenterlight/whydatacenterlight.html b/datacenterlight/templates/datacenterlight/whydatacenterlight.html
index 3cd10074..948a51b2 100644
--- a/datacenterlight/templates/datacenterlight/whydatacenterlight.html
+++ b/datacenterlight/templates/datacenterlight/whydatacenterlight.html
@@ -88,7 +88,7 @@
                 <div class="col-xs-12 col-sm-8 col-md-7 text-right">
                         <div class="tech-sub-sec">
                             <h2>{% trans "We believe in giving back to the FOSS community." %}</h2>
-                            <p class="lead">{% blocktrans %}Data Center Light is the child of free and open source software (FOSS) movement. <br>We grew up with it, live by it, and believe in it.<br> The more we work on our data center,<br> the more we contribute back to the FOSS community.{% endblocktrans %}</p>
+                            <p class="lead new-lead">{% blocktrans %}Data Center Light is the child of free and open source software (FOSS) movement. <br>We grew up with it, live by it, and believe in it.<br> The more we work on our data center,<br> the more we contribute back to the FOSS community.{% endblocktrans %}</p>
                         </div>
                 </div>
             </div>
@@ -104,7 +104,7 @@
                         <h2>{% trans "We bring the future to you." %}</h2>
                     </div>
                     <div class="col-xs-12 col-sm-7 col-md-8 col-lg-8 text-left tech-sub-sec landscape-xs-6">
-                            <p class="lead">{% blocktrans %} Data Center Light uses the most modern technologies out there.<br>
+                            <p class="lead new-lead">{% blocktrans %} Data Center Light uses the most modern technologies out there.<br>
                             Your VM needs only IPv6. Data Center Light provides<br> transparent two-way IPv6/IPv4 translation.
                             {% endblocktrans %}</p>
                     </div>
@@ -119,7 +119,7 @@
                     </div>
                     <div class="col-xs-12 col-sm-5 col-md-4 col-lg-4 text-right tech-sub-sec  padding-vertical landscape-xs-4">
                         <div>
-                            <p class="lead">{% blocktrans %} No more spinning metal plates! Data Center Light uses only SSDs. We keep things faster and lighter. {% endblocktrans %}</p>
+                            <p class="lead new-lead">{% blocktrans %} No more spinning metal plates! Data Center Light uses only SSDs. We keep things faster and lighter. {% endblocktrans %}</p>
                         </div>
                     </div>
                 </div>
@@ -136,7 +136,7 @@
             <div class="row text-center">
                 <div class="col-xs-12 col-md-6 text">
                     <h2 class="section-heading">{% trans "Starting from only 15CHF per month. Try now." %}</h2>
-                    <p class="lead">{% trans "Actions speak louder than words. Let's do it, try our VM now." %}</p>
+                    <p class="lead new-lead">{% trans "Actions speak louder than words. Let's do it, try our VM now." %}</p>
                 </div>
 
                 <div class="col-xs-12 col-md-6 hero-feature">

From a2631a9e8d4d486752ce483a8b276f7e390bd447 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 18 Jul 2017 03:03:36 +0530
Subject: [PATCH 49/56] Added impacthub partner text and logo. Adjusted the
 layout for various screens.

---
 .../digitalglarus/img/impacthub_logo.jpg      | Bin 0 -> 9280 bytes
 .../templates/digitalglarus/index.html        |  55 +++++++++++++++++-
 2 files changed, 52 insertions(+), 3 deletions(-)
 create mode 100644 digitalglarus/static/digitalglarus/img/impacthub_logo.jpg

diff --git a/digitalglarus/static/digitalglarus/img/impacthub_logo.jpg b/digitalglarus/static/digitalglarus/img/impacthub_logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..075fe83ea621fb359ac8c17bbd89ecbf2866066c
GIT binary patch
literal 9280
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
HZdd;oEdXj=

literal 0
HcmV?d00001

diff --git a/digitalglarus/templates/digitalglarus/index.html b/digitalglarus/templates/digitalglarus/index.html
index 0a371bb1..b8664bc6 100644
--- a/digitalglarus/templates/digitalglarus/index.html
+++ b/digitalglarus/templates/digitalglarus/index.html
@@ -121,7 +121,48 @@
   p a{
     color: #ecf0f1;
   }
-
+  .section-top-content {
+    font-size: 30px;
+    font-weight: 600;
+    padding-top: 50px;
+   }
+  .section-top-content span{
+    font-weight: 300;
+   }
+   .section-top-txt {
+    padding-top: 80px;
+    text-transform: uppercase;
+    text-align: right;
+   }
+   .section-top-img {
+	   padding:0px;
+	 }
+@media(max-width:500px)  {
+	.section-top-txt {
+    padding: 55px 5px 0 0px;
+	}
+	.section-top-content {
+    font-size: 28px;
+   }
+}
+@media(max-width:360px)  {
+	.section-top-txt {
+    padding: 32px 5px 0 0px;
+	}
+	.section-top-content {
+    font-size: 18px;
+   }
+}
+@media screen and (min-device-width: 768px) and (max-device-width: 991px) { 
+	.section-top-txt {
+    padding-top: 43px;
+     }
+}
+@media screen and (min-device-width: 992px) and (max-device-width: 1200px) { 
+	.section-top-txt {
+    padding-top: 65px;
+     }
+}
   </style>
 
 
@@ -132,7 +173,15 @@
     <section id="services">
       <div class="container">
     <div class="row">
-      <div class="col-lg-12 text-center wow fadeInDown">
+      <div class="col-lg-12 text-center wow fadeInDown section-top-content">
+        <div class="col-lg-3 col-sm-2 col-xs-12"></div>
+        <div class="col-lg-6 col-sm-10 col-xs-12">
+			<div class="col-lg-5 col-sm-5 col-xs-6 section-top-txt">Partner <span>of</span></div>
+			<div class="col-lg-7 col-sm-4 col-xs-6 section-top-img"><img src="{% static 'digitalglarus/img/impacthub_logo.jpg' %}" class="img-responsive" alt=""></div>
+		</div>
+        <div class="col-lg-3 col-sm-12 col-xs-12"></div>
+      </div>
+      <div class="col-lg-12 col-xs-12 text-center wow fadeInDown">
         <h2 class="section-heading">In Digital Glarus you can..</h2>
         <hr class="primary">
       </div>
@@ -526,4 +575,4 @@
   </div>
 </div> -->
 
-{% endblock %}
\ No newline at end of file
+{% endblock %}

From 04fe427571d9916ddef462151c887c7d90f35bda Mon Sep 17 00:00:00 2001
From: "M.Ravi" <mondi.ravi@gmail.com>
Date: Tue, 18 Jul 2017 19:47:39 +0200
Subject: [PATCH 50/56] Added link to impact hub logo

---
 digitalglarus/templates/digitalglarus/index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/digitalglarus/templates/digitalglarus/index.html b/digitalglarus/templates/digitalglarus/index.html
index b8664bc6..b57e54b5 100644
--- a/digitalglarus/templates/digitalglarus/index.html
+++ b/digitalglarus/templates/digitalglarus/index.html
@@ -177,7 +177,7 @@
         <div class="col-lg-3 col-sm-2 col-xs-12"></div>
         <div class="col-lg-6 col-sm-10 col-xs-12">
 			<div class="col-lg-5 col-sm-5 col-xs-6 section-top-txt">Partner <span>of</span></div>
-			<div class="col-lg-7 col-sm-4 col-xs-6 section-top-img"><img src="{% static 'digitalglarus/img/impacthub_logo.jpg' %}" class="img-responsive" alt=""></div>
+			<div class="col-lg-7 col-sm-4 col-xs-6 section-top-img"><a href="https://zurich.impacthub.ch" target="_blank"><img src="{% static 'digitalglarus/img/impacthub_logo.jpg' %}" class="img-responsive" alt=""></a></div>
 		</div>
         <div class="col-lg-3 col-sm-12 col-xs-12"></div>
       </div>

From 32312646aed931d98c4803a2ad43c1e706ef3b36 Mon Sep 17 00:00:00 2001
From: "M.Ravi" <mondi.ravi@gmail.com>
Date: Tue, 18 Jul 2017 19:56:04 +0200
Subject: [PATCH 51/56] Updated the Changelog

---
 Changelog | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/Changelog b/Changelog
index 7e174401..d23979ae 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,12 @@
+1.0.20: 2017-07-18
+    * #3590: [digitalglarus] Added impact hub partner logo and text in digitalglarus
+             [datacenterlight, hosting] Fixed overlapping of date and billing address in the mobile view
+    * #3580: [datacenterlight, hosting] Introduced newly designed payment page. Customized Stripe credit card input fields
+    * #3568: [all] Improved the way of adding Google analytics (ga) code. We now have ga code for ungleich, digitalglarus, blog, hosting
+             and datacenterlight
+    * #3564: [datacenterlight] Improved calculator form validations, both client side and server side
+             [datacenterlight] Changed "Place order" button to "Submit" in the payment page
+    * #3540: [datacenterlight] Improved credit card section with Stripe clarification texts and corresponding DE translations
 1.0.19: 2017-07-09
     * [blog] Added a space between "Posted on" and the "Date"
     * [datacenterlight, digitalglarus] Introduced Google Analytics for DCL and digitalglarus.ch

From bc10cf5e4157f1f65e6c9cc1ff6e4d223570b21e Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Wed, 19 Jul 2017 02:44:40 +0530
Subject: [PATCH 52/56] Set font size to 21px to all new-lead elements

---
 datacenterlight/static/datacenterlight/css/landing-page.css | 1 +
 1 file changed, 1 insertion(+)

diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index 14eaef9d..6775bd09 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -327,6 +327,7 @@ h6 {
 
 .new-lead {
     font-weight: 300 !important;
+    font-size: 21px !important;
 }
 
 .split-section .split-text .split-title{

From 50f7227b10cce806dc485084eee6688cfd78bdd6 Mon Sep 17 00:00:00 2001
From: Polycarp Okock <deaspo@users.noreply.github.com>
Date: Thu, 20 Jul 2017 15:00:14 +0300
Subject: [PATCH 53/56] Updated Order_detail

Added the tag to load the Card holder name entered from the billing address
---
 datacenterlight/templates/datacenterlight/order_detail.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/datacenterlight/templates/datacenterlight/order_detail.html b/datacenterlight/templates/datacenterlight/order_detail.html
index 4b8862df..8b1180bb 100644
--- a/datacenterlight/templates/datacenterlight/order_detail.html
+++ b/datacenterlight/templates/datacenterlight/order_detail.html
@@ -35,7 +35,7 @@
                             <address>
                             <h3><b>{% trans "Billed To:"%}</b></h3>
                             {% with request.session.billing_address_data as billing_address %}
-                                {{request.session.user.name}}<br> {{billing_address|get_value_from_dict:'street_address'}}, {{billing_address|get_value_from_dict:'postal_code'}}<br>
+                                {{billing_address|get_value_from_dict:'cardholder_name'}}<br> {{billing_address|get_value_from_dict:'street_address'}}, {{billing_address|get_value_from_dict:'postal_code'}}<br>
                                 {{billing_address|get_value_from_dict:'city'}}, {{billing_address|get_value_from_dict:'country'}}.
                             {% endwith %}
                             </address>

From 7a8154a907b74c1dbc7b0bfdd9b8becce5f9020c Mon Sep 17 00:00:00 2001
From: Polycarp Okock <deaspo@users.noreply.github.com>
Date: Thu, 20 Jul 2017 15:02:59 +0300
Subject: [PATCH 54/56] Updated Views

Added the cardholder_name as one of the fields retrieved from the Payment page
---
 datacenterlight/views.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/datacenterlight/views.py b/datacenterlight/views.py
index ea7ca3ef..6b0e0d7e 100644
--- a/datacenterlight/views.py
+++ b/datacenterlight/views.py
@@ -343,6 +343,7 @@ class PaymentOrderView(FormView):
         if billing_address_data:
             form_kwargs.update({
                 'initial': {
+                    'cardholder_name': billing_address_data['cardholder_name'],
                     'street_address': billing_address_data['street_address'],
                     'city': billing_address_data['city'],
                     'postal_code': billing_address_data['postal_code'],

From 38413820bec2d222781b31778ce74283277f30c5 Mon Sep 17 00:00:00 2001
From: Miguel Cardenas <miguelcarde.3@gmail.com>
Date: Thu, 20 Jul 2017 11:13:08 -0500
Subject: [PATCH 55/56] font family late light for titles

---
 datacenterlight/static/datacenterlight/css/landing-page.css | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index 17ef3dbd..0f5b1a45 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -24,7 +24,7 @@ h3,
 h4,
 h5,
 h6 {
-    font-family: 'Lato', sans-serif;
+    font-family: 'Lato-Light', sans-serif;
     font-weight: 300;
 }
 /*blue light #5A74AF*/

From 884fd6cda1088a0fd1a115ab46cf022195903a53 Mon Sep 17 00:00:00 2001
From: Andrii Marynets <andrii.marynets@gmail.com>
Date: Thu, 20 Jul 2017 22:10:09 +0300
Subject: [PATCH 56/56] Fix :hover on mobile device

---
 datacenterlight/templates/datacenterlight/includes/_navbar.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/datacenterlight/templates/datacenterlight/includes/_navbar.html b/datacenterlight/templates/datacenterlight/includes/_navbar.html
index cb1a7180..b5cfacfe 100644
--- a/datacenterlight/templates/datacenterlight/includes/_navbar.html
+++ b/datacenterlight/templates/datacenterlight/includes/_navbar.html
@@ -48,7 +48,7 @@
 				{% endif %}
 				<i class="fa fa-globe" aria-hidden="true"></i>
 				</div>
-				<div class="drop-language">
+				<div onclick="return true" class="drop-language">
 				{% if LANGUAGE_CODE == 'en-us'%} 
 				<a class="url" href="{% change_lang 'de' %}">Deutsch</a>
 				{% else %}