From 9beacd6f6a5d7430b40d2283ccd1a3d702992e8b Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 2 Dec 2017 08:45:31 +0100
Subject: [PATCH 01/16] Introduce ungleich Header with Background and Image
 Slider plugin

---
 ungleich_page/cms_plugins.py                  | 39 ++++++++++++++++-
 ...eichheaderwithbackgroundimageslideritem.py | 43 +++++++++++++++++++
 ungleich_page/models.py                       | 21 +++++++++
 ...der_with_background_image_slider_item.html |  4 ++
 .../header_with_background_image_slider.html  | 31 +++++++++++++
 5 files changed, 137 insertions(+), 1 deletion(-)
 create mode 100644 ungleich_page/migrations/0016_ungleichheaderwithbackgroundimageslider_ungleichheaderwithbackgroundimageslideritem.py
 create mode 100644 ungleich_page/templates/ungleich_page/ungleich/_header_with_background_image_slider_item.html
 create mode 100644 ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html

diff --git a/ungleich_page/cms_plugins.py b/ungleich_page/cms_plugins.py
index c8dbe735..766ccb8c 100644
--- a/ungleich_page/cms_plugins.py
+++ b/ungleich_page/cms_plugins.py
@@ -5,7 +5,9 @@ from .models import (
     UngelichContactUsSection, UngelichTextSection, Service, ServiceItem,
     About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader,
     UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer,
-    UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader
+    UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader,
+    UngleichHeaderWithBackgroundImageSlider,
+    UngleichHeaderWithBackgroundImageSliderItem
 )
 
 
@@ -224,6 +226,41 @@ class UngleichHeaderItemPlugin(CMSPluginBase):
         return context
 
 
+@plugin_pool.register_plugin
+class UngleichHeaderBackgroundImageAndTextSliderPlugin(CMSPluginBase):
+    name = "ungleich Header with Background and Image Slider Plugin"
+    model = UngleichHeaderWithBackgroundImageSlider
+    render_template = (
+        'ungleich_page/ungleich/header_with_background_image_slider.html'
+    )
+    cache = False
+    allow_children = True
+    child_classes = ['UngleichHeaderBackgroundImageAndTextItemPlugin']
+
+    def render(self, context, instance, placeholder):
+        context['instance'] = instance
+        return context
+
+
+@plugin_pool.register_plugin
+class UngleichHeaderBackgroundImageAndTextItemPlugin(CMSPluginBase):
+    name = "ungleich Header with Background and Image and Text Item Plugin"
+    model = UngleichHeaderWithBackgroundImageSliderItem
+    render_template = (
+        'ungleich_page/ungleich/_header_with_background_image_slider_item.html'
+    )
+    cache = False
+    require_parent = True
+    parent_classes = ['UngleichHeaderBackgroundImageAndTextSliderPlugin']
+
+    def render(self, context, instance, placeholder):
+        context = super(
+            UngleichHeaderBackgroundImageAndTextItemPlugin, self
+        ).render(context, instance, placeholder)
+        context['instance'] = instance
+        return context
+
+
 @plugin_pool.register_plugin
 class UngleichProductsPlugin(CMSPluginBase):
     name = "ungleich Products Plugin"
diff --git a/ungleich_page/migrations/0016_ungleichheaderwithbackgroundimageslider_ungleichheaderwithbackgroundimageslideritem.py b/ungleich_page/migrations/0016_ungleichheaderwithbackgroundimageslider_ungleichheaderwithbackgroundimageslideritem.py
new file mode 100644
index 00000000..acbff47b
--- /dev/null
+++ b/ungleich_page/migrations/0016_ungleichheaderwithbackgroundimageslider_ungleichheaderwithbackgroundimageslideritem.py
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.4 on 2017-12-02 07:30
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import djangocms_text_ckeditor.fields
+import filer.fields.image
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('filer', '0004_auto_20160328_1434'),
+        ('cms', '0014_auto_20160404_1908'),
+        ('ungleich_page', '0015_ungleichsimpleheader'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='UngleichHeaderWithBackgroundImageSlider',
+            fields=[
+                ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
+                ('carousel_data_interval', models.IntegerField(default=2000)),
+            ],
+            options={
+                'abstract': False,
+            },
+            bases=('cms.cmsplugin',),
+        ),
+        migrations.CreateModel(
+            name='UngleichHeaderWithBackgroundImageSliderItem',
+            fields=[
+                ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
+                ('description', djangocms_text_ckeditor.fields.HTMLField(default='<div class="intro-cap">We  Design, Configure &amp; Maintain <br>Your Linux Infrastructure</div><p class="intro_lead">Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that needs to configured, we provide comprehensive solutions. Amazon, rackspace or bare metal servers, we configure for you.</p><p style="text-align: right;"><a class="btn btn-trans" href="">Learn More</a></p>')),
+                ('background_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_header_slider_item_image', to='filer.Image')),
+            ],
+            options={
+                'abstract': False,
+            },
+            bases=('cms.cmsplugin',),
+        ),
+    ]
diff --git a/ungleich_page/models.py b/ungleich_page/models.py
index aec629ee..5c226ad4 100644
--- a/ungleich_page/models.py
+++ b/ungleich_page/models.py
@@ -124,6 +124,27 @@ class UngleichHeader(CMSPlugin):
     carousel_data_interval = models.IntegerField(default=5000)
 
 
+class UngleichHeaderWithBackgroundImageSliderItem(CMSPlugin):
+    background_image = FilerImageField(
+        null=True, blank=True,
+        related_name="ungleich_header_slider_item_image",
+        on_delete=models.SET_NULL
+    )
+    description = HTMLField(
+        default='<div class="intro-cap">We  Design, Configure &amp; Maintain '
+                '<br>Your Linux Infrastructure</div><p class="intro_lead">'
+                'Ruby on Rails, Django, Java, Webserver, Mailserver, any '
+                'infrastructure that needs to configured, we provide '
+                'comprehensive solutions. Amazon, rackspace or bare metal '
+                'servers, we configure for you.</p><p style="text-align: '
+                'right;"><a class="btn btn-trans" href="">Learn More</a></p>'
+    )
+
+
+class UngleichHeaderWithBackgroundImageSlider(CMSPlugin):
+    carousel_data_interval = models.IntegerField(default=2000)
+
+
 class UngleichHeaderItem(CMSPlugin):
     image = FilerImageField(
         null=True,
diff --git a/ungleich_page/templates/ungleich_page/ungleich/_header_with_background_image_slider_item.html b/ungleich_page/templates/ungleich_page/ungleich/_header_with_background_image_slider_item.html
new file mode 100644
index 00000000..063a0a7b
--- /dev/null
+++ b/ungleich_page/templates/ungleich_page/ungleich/_header_with_background_image_slider_item.html
@@ -0,0 +1,4 @@
+<div class="bg_img" style="background-image:url({{ instance.background_image.url }})"></div>
+<div class="container">
+  {{ instance.description }}
+</div>
\ No newline at end of file
diff --git a/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html b/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html
new file mode 100644
index 00000000..b211aef9
--- /dev/null
+++ b/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html
@@ -0,0 +1,31 @@
+{% load cms_tags %}
+<header class="header_slider">
+  <div id="carousel-header-ungleich" class="carousel slide" data-interval="{{ instance.carousel_data_interval}}">
+    <!-- Indicators -->
+      {% if instance.child_plugin_instances|length > 1  %}
+        <ol class="carousel-indicators">
+          {% for plugin in instance.child_plugin_instances %}
+              <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li>
+          {% endfor %}
+        </ol>
+      {% endif %}
+    <!-- Wrapper for slides -->
+    <div class="carousel-inner" role="listbox">
+        {% for plugin in instance.child_plugin_instances %}
+        <div class="item {% if forloop.counter0 == 0 %}active{% endif %}">
+          {% render_plugin plugin %}
+        </div>
+        {% endfor %}
+    </div>
+      {% if instance.child_plugin_instances|length > 1  %}
+    <a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev">
+      <span class="fa fa-angle-left" aria-hidden="true"></span>
+      <span class="sr-only">Previous</span>
+    </a>
+    <a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next">
+      <span class="fa fa-angle-right" aria-hidden="true"></span>
+      <span class="sr-only">Next</span>
+    </a>
+      {% endif %}
+  </div>
+</header>
\ No newline at end of file

From f7c606906ce70e8939581e0a388d04feefef4ddd Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 2 Dec 2017 08:54:07 +0100
Subject: [PATCH 02/16] Rearrange code

---
 .../header_with_background_image_slider.html  | 34 +++++++++----------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html b/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html
index b211aef9..a3ee0d37 100644
--- a/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html
+++ b/ungleich_page/templates/ungleich_page/ungleich/header_with_background_image_slider.html
@@ -2,13 +2,13 @@
 <header class="header_slider">
   <div id="carousel-header-ungleich" class="carousel slide" data-interval="{{ instance.carousel_data_interval}}">
     <!-- Indicators -->
-      {% if instance.child_plugin_instances|length > 1  %}
-        <ol class="carousel-indicators">
-          {% for plugin in instance.child_plugin_instances %}
-              <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li>
-          {% endfor %}
-        </ol>
-      {% endif %}
+    {% if instance.child_plugin_instances|length > 1  %}
+      <ol class="carousel-indicators">
+        {% for plugin in instance.child_plugin_instances %}
+            <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li>
+        {% endfor %}
+      </ol>
+    {% endif %}
     <!-- Wrapper for slides -->
     <div class="carousel-inner" role="listbox">
         {% for plugin in instance.child_plugin_instances %}
@@ -17,15 +17,15 @@
         </div>
         {% endfor %}
     </div>
-      {% if instance.child_plugin_instances|length > 1  %}
-    <a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev">
-      <span class="fa fa-angle-left" aria-hidden="true"></span>
-      <span class="sr-only">Previous</span>
-    </a>
-    <a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next">
-      <span class="fa fa-angle-right" aria-hidden="true"></span>
-      <span class="sr-only">Next</span>
-    </a>
-      {% endif %}
+    {% if instance.child_plugin_instances|length > 1  %}
+      <a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev">
+        <span class="fa fa-angle-left" aria-hidden="true"></span>
+        <span class="sr-only">Previous</span>
+      </a>
+      <a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next">
+        <span class="fa fa-angle-right" aria-hidden="true"></span>
+        <span class="sr-only">Next</span>
+      </a>
+    {% endif %}
   </div>
 </header>
\ No newline at end of file

From b9f232ac0a111f0dd74626ca1a1187fdf09b6d84 Mon Sep 17 00:00:00 2001
From: Arvind Tiwari <tiwariav@gmail.com>
Date: Sat, 9 Dec 2017 05:17:27 +0530
Subject: [PATCH 03/16] unlgiech logo alignment fix

---
 ungleich_page/static/ungleich_page/css/agency.css | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ungleich_page/static/ungleich_page/css/agency.css b/ungleich_page/static/ungleich_page/css/agency.css
index 1a27a4e1..c99f2af9 100755
--- a/ungleich_page/static/ungleich_page/css/agency.css
+++ b/ungleich_page/static/ungleich_page/css/agency.css
@@ -280,7 +280,10 @@ fieldset[disabled] .btn-xl.active {
     }
 
     .navbar-default .navbar-brand {
-       padding: 8px;
+       padding: 4px 8px 12px;
+    }
+    .navbar-default.navbar-shrink .navbar-brand {
+       padding: 6px 8px 10px;
     }
 }
 

From 6515195af548df9e5cd26cbfbd03e94faf879b3a Mon Sep 17 00:00:00 2001
From: Arvind Tiwari <tiwariav@gmail.com>
Date: Sat, 9 Dec 2017 05:19:07 +0530
Subject: [PATCH 04/16] digitalglarus logo alignment fix

---
 digitalglarus/static/digitalglarus/css/agency.css | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/digitalglarus/static/digitalglarus/css/agency.css b/digitalglarus/static/digitalglarus/css/agency.css
index 4ac531c2..7e9b0c11 100755
--- a/digitalglarus/static/digitalglarus/css/agency.css
+++ b/digitalglarus/static/digitalglarus/css/agency.css
@@ -235,7 +235,7 @@ fieldset[disabled] .btn-xl.active {
 .navbar-default .navbar-brand {
 	font-family: "Helvetica Neue", Helvetica, Arial, cursive;
 	color: #a1cfd7;
-	padding-top: 10px;
+	padding-top: 11px;
 }
 
 .navbar-default .navbar-brand:hover,

From 4fd3be277621b3f29c5a4bb0c43a4055f334571c Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 9 Dec 2017 07:21:35 +0100
Subject: [PATCH 05/16] Update Changelog

---
 Changelog | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Changelog b/Changelog
index d3d4adee..ad5d1b68 100644
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,5 @@
 Next release:
+    * #3594: [digitalglarus] Remove white scroll bar on the right in mobile    
     * #3905: [ungleich] Update ungleich.ch header into a slider
     *        [all] Enable logging custom modules
 1.2.11: 2017-11-30

From ef7352a891a74fe145f2c6411c025d073048f376 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 9 Dec 2017 16:31:34 +0100
Subject: [PATCH 06/16] Add width: 100% to #portfolio .portfolio-item
 .portfolio-caption

---
 ungleich_page/static/ungleich_page/css/agency.css | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ungleich_page/static/ungleich_page/css/agency.css b/ungleich_page/static/ungleich_page/css/agency.css
index 1a27a4e1..6d1ce4c6 100755
--- a/ungleich_page/static/ungleich_page/css/agency.css
+++ b/ungleich_page/static/ungleich_page/css/agency.css
@@ -440,6 +440,7 @@ section h3.section-subheading {
     max-width: 400px;
     text-align: center;
     background-color: #fff;
+    width: 100%;
 }
 
 #portfolio .portfolio-item .portfolio-caption h4 {

From 180539df9a57dc506319e1d3da4870b55358dba0 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 9 Dec 2017 16:37:10 +0100
Subject: [PATCH 07/16] Update Changelog for 1.2.12

---
 Changelog | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index ad5d1b68..7dcae542 100644
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,4 @@
-Next release:
+1.2.12: 2017-12-09
     * #3594: [digitalglarus] Remove white scroll bar on the right in mobile    
     * #3905: [ungleich] Update ungleich.ch header into a slider
     *        [all] Enable logging custom modules

From 8fac9758b1e7aafcb6b0cfc44e6aaca6db582bb0 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 9 Dec 2017 17:28:32 +0100
Subject: [PATCH 08/16] Update Changelog

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

diff --git a/Changelog b/Changelog
index 7dcae542..581ad846 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,5 @@
+Next release:
+    * [cms]: Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
 1.2.12: 2017-12-09
     * #3594: [digitalglarus] Remove white scroll bar on the right in mobile    
     * #3905: [ungleich] Update ungleich.ch header into a slider

From 2fcb96b2096359c402a9153a6a0975abcdd15ba5 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 9 Dec 2017 18:30:39 +0100
Subject: [PATCH 09/16] Remove <p> tag for ungleich cms customer item template

---
 .../templates/ungleich_page/ungleich/_customer_item.html        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ungleich_page/templates/ungleich_page/ungleich/_customer_item.html b/ungleich_page/templates/ungleich_page/ungleich/_customer_item.html
index 794bcb06..d49183ae 100644
--- a/ungleich_page/templates/ungleich_page/ungleich/_customer_item.html
+++ b/ungleich_page/templates/ungleich_page/ungleich/_customer_item.html
@@ -1,2 +1,2 @@
 <a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a>
-<p class="carousel-text text-muted text-center">{{ instance.description }}</p>
\ No newline at end of file
+{{ instance.description }}
\ No newline at end of file

From 6c81ffbdda9d6d4b10827a6e144505c947a00d73 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Sat, 9 Dec 2017 18:54:28 +0100
Subject: [PATCH 10/16] Update Changelog for 1.2.13

---
 Changelog | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Changelog b/Changelog
index 581ad846..ad39c20d 100644
--- a/Changelog
+++ b/Changelog
@@ -1,13 +1,13 @@
-Next release:
-    * [cms]: Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
+1.2.13: 2017-12-09
+    * [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
+    * [cms] Remove <p> tag for ungleich cms customer item template
 1.2.12: 2017-12-09
     * #3594: [digitalglarus] Remove white scroll bar on the right in mobile    
     * #3905: [ungleich] Update ungleich.ch header into a slider
     *        [all] Enable logging custom modules
 1.2.11: 2017-11-30
     * [all] TravisCI: Test against python 3.4.2 only
-    * [ungleich] Remove data-replaced image in ungleich CMS services item
-    plugin template
+    * [ungleich] Remove data-replaced image in ungleich CMS services item plugin template
 1.2.10: 2017-11-26
     * #3843: [ungleich] Add generic ungleich CMS template
     * #3672: [all] Clean existing automated tests

From 8d64915d71dd2b2ff1d2258764802146fb4467e8 Mon Sep 17 00:00:00 2001
From: Arvind Tiwari <tiwariav@gmail.com>
Date: Mon, 11 Dec 2017 00:47:55 +0530
Subject: [PATCH 11/16] invoice footer added

---
 hosting/static/hosting/css/order.css          | 19 ++++++++-
 hosting/templates/hosting/order_detail.html   |  9 +++--
 .../templates/hosting/virtual_machines.html   | 40 +++++++++----------
 hosting/urls.py                               |  3 +-
 4 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/hosting/static/hosting/css/order.css b/hosting/static/hosting/css/order.css
index 8e9226e2..734566a5 100644
--- a/hosting/static/hosting/css/order.css
+++ b/hosting/static/hosting/css/order.css
@@ -7,7 +7,7 @@
 
 @media(min-width: 768px) {
     .order-detail-container {
-        padding: 30px;
+        padding: 30px 30px 20px;
     }
 }
 
@@ -53,7 +53,7 @@
 }
 
 .order-detail-container .order-details {
-    margin-bottom: 30px;
+    margin-bottom: 15px;
 }
 
 .order-detail-container .order-details strong {
@@ -90,3 +90,18 @@
         width: 16px;
     }
 }
+
+.order_detail_footer {
+    font-size: 9px;
+    letter-spacing: 1px;
+    color: #333333;
+}
+
+.order_detail_footer strong {
+    font-size: 11px;
+}
+
+
+#virtual_machine_create_form {
+    padding: 15px 0;
+}
\ No newline at end of file
diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html
index fe200f6e..6ea4f36f 100644
--- a/hosting/templates/hosting/order_detail.html
+++ b/hosting/templates/hosting/order_detail.html
@@ -135,9 +135,7 @@
                     </div>
                 </div>
             </div>
-            {% if not order %}
-                <hr>
-            {% endif %}
+            <hr>
         </div>
         {% if not order %}
             {% block submit_btn %}
@@ -155,6 +153,11 @@
                     </div>
                 </form>
             {% endblock submit_btn %}
+        {% else %}
+            <div class="order_detail_footer">
+                <strong>ungleich glarus ag</strong>&nbsp;&nbsp;Bahnhotstrasse 1, 8783 Linthal, Switzerland<br>
+                www.datacenterlight.ch&nbsp;&nbsp;|&nbsp;&nbsp;info@datacenterlight.ch
+            </div>
         {% endif %}
     {% endif %}
 </div>
diff --git a/hosting/templates/hosting/virtual_machines.html b/hosting/templates/hosting/virtual_machines.html
index 6329cc10..467d9d39 100644
--- a/hosting/templates/hosting/virtual_machines.html
+++ b/hosting/templates/hosting/virtual_machines.html
@@ -39,27 +39,25 @@
             </thead>
             <tbody>
                 {% for vm in vms %}
-                <tr>
-                    <td data-header="ID">{{vm.vm_id}}</td>
-                    {% if vm.ipv6  %}
-                        <td data-header="IPv4">{{vm.ipv4}}</td>
-                        <td data-header="IPv6">{{vm.ipv6}}</td>
-                    {% endif %}
-                    <td data-header="{% trans 'Status' %}">
-                        <strong>
-                            {% if vm.state == 'ACTIVE' %}
-                                <span class="vm-status-active">{{vm.state|title}}</span>
-                            {% elif  vm.state == 'FAILED' %}
-                                <span class="vm-status-failed">{{vm.state|title}}</span>
-                            {% else %}
-                                <span class="vm-status">{{vm.state|title}}</span>
-                            {% endif %}
-                        </strong>
-                    </td>
-                    <td class="text-right last-td">
-                        <a class="btn btn-vm-detail" href="{% url 'hosting:virtual_machines' vm.vm_id %}">{% trans "View Detail" %}</a>
-                    </td>
-                </tr>
+                    <tr>
+                        <td data-header="ID">{{vm.vm_id}}</td>
+                        <td data-header="IPv4">{% if vm.ipv4 %}{{vm.ipv4}}{% endif %}</td>
+                        <td data-header="IPv6">{% if vm.ipv6 %}{{vm.ipv6}}{% endif %}</td>
+                        <td data-header="{% trans 'Status' %}">
+                            <strong>
+                                {% if vm.state == 'ACTIVE' %}
+                                    <span class="vm-status-active">{{vm.state|title}}</span>
+                                {% elif  vm.state == 'FAILED' %}
+                                    <span class="vm-status-failed">{{vm.state|title}}</span>
+                                {% else %}
+                                    <span class="vm-status">{{vm.state|title}}</span>
+                                {% endif %}
+                            </strong>
+                        </td>
+                        <td class="text-right last-td">
+                            <a class="btn btn-vm-detail" href="{% url 'hosting:virtual_machines' vm.vm_id %}">{% trans "View Detail" %}</a>
+                        </td>
+                    </tr>
                 {% endfor %}
             </tbody>
         </table>
diff --git a/hosting/urls.py b/hosting/urls.py
index b00a199c..2112c493 100644
--- a/hosting/urls.py
+++ b/hosting/urls.py
@@ -8,7 +8,8 @@ from .views import (
     MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView,
     HostingPricingView, CreateVirtualMachinesView, HostingBillListView,
     HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView,
-    SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView)
+    SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView
+)
 
 
 urlpatterns = [

From 54185792cf499e33b287a2a928e3c46884e77051 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 12 Dec 2017 20:48:47 +0100
Subject: [PATCH 12/16] Add resend activation link in the landing payment page

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

diff --git a/datacenterlight/templates/datacenterlight/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html
index d195690b..447662cc 100644
--- a/datacenterlight/templates/datacenterlight/landing_payment.html
+++ b/datacenterlight/templates/datacenterlight/landing_payment.html
@@ -39,7 +39,7 @@
                         <p>
                             {% trans "Don't have an account yet?" %}<br>
                             {% trans "You can sign up by filling in the information below." %}<br>
-                            <a href="{% url 'hosting:reset_password' %}">{% trans "Forgot password?" %}</a>
+                            <a href="{% url 'hosting:reset_password' %}">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}">{% trans "Resend activation link" %}?</a>
                         </p>
                     {% endif %}
                 </div>

From 56962d5fdf05eccf32f1689a449db260f3e4e657 Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 12 Dec 2017 20:58:02 +0100
Subject: [PATCH 13/16] Use target=_blank for links in landing payment page

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

diff --git a/datacenterlight/templates/datacenterlight/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html
index 447662cc..d64de46c 100644
--- a/datacenterlight/templates/datacenterlight/landing_payment.html
+++ b/datacenterlight/templates/datacenterlight/landing_payment.html
@@ -39,7 +39,7 @@
                         <p>
                             {% trans "Don't have an account yet?" %}<br>
                             {% trans "You can sign up by filling in the information below." %}<br>
-                            <a href="{% url 'hosting:reset_password' %}">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}">{% trans "Resend activation link" %}?</a>
+                            <a href="{% url 'hosting:reset_password' %}" _target="blank">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}" _target="blank">{% trans "Resend activation link" %}?</a>
                         </p>
                     {% endif %}
                 </div>

From a339f65170e123e488ab46a94163a08ff3b6b37f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 12 Dec 2017 21:02:18 +0100
Subject: [PATCH 14/16] Correct _target to target and blank to _blank

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

diff --git a/datacenterlight/templates/datacenterlight/landing_payment.html b/datacenterlight/templates/datacenterlight/landing_payment.html
index d64de46c..f2f75e9c 100644
--- a/datacenterlight/templates/datacenterlight/landing_payment.html
+++ b/datacenterlight/templates/datacenterlight/landing_payment.html
@@ -39,7 +39,7 @@
                         <p>
                             {% trans "Don't have an account yet?" %}<br>
                             {% trans "You can sign up by filling in the information below." %}<br>
-                            <a href="{% url 'hosting:reset_password' %}" _target="blank">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}" _target="blank">{% trans "Resend activation link" %}?</a>
+                            <a href="{% url 'hosting:reset_password' %}" target="_blank">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}" target="_blank">{% trans "Resend activation link" %}?</a>
                         </p>
                     {% endif %}
                 </div>

From 546d7fe5ebcede27bc089d232ae67f7ce49a333f Mon Sep 17 00:00:00 2001
From: PCoder <purple.coder@yahoo.co.uk>
Date: Tue, 12 Dec 2017 21:31:13 +0100
Subject: [PATCH 15/16] Update Changelog

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

diff --git a/Changelog b/Changelog
index ad39c20d..4cfa2564 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,5 @@
+Next:
+    * #3911: [dcl] Integrate resend activation link into dcl landing payment page
 1.2.13: 2017-12-09
     * [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
     * [cms] Remove <p> tag for ungleich cms customer item template

From f4fb2e5d1384701b530f872f5aa27a477b503fde Mon Sep 17 00:00:00 2001
From: Arvind Tiwari <tiwariav@gmail.com>
Date: Wed, 13 Dec 2017 23:42:17 +0530
Subject: [PATCH 16/16] Update Changelog

---
 Changelog | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Changelog b/Changelog
index 4cfa2564..6b8b1370 100644
--- a/Changelog
+++ b/Changelog
@@ -1,5 +1,6 @@
 Next:
     * #3911: [dcl] Integrate resend activation link into dcl landing payment page
+    * #3972: [hosting] Add ungleich company info to invoice footer
 1.2.13: 2017-12-09
     * [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
     * [cms] Remove <p> tag for ungleich cms customer item template