diff --git a/Changelog b/Changelog index aa0d73bf..1c0be867 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,5 @@ +next + * bgfix: fix header slider interval issue 1.6: 2018-03-25 * #4266: [dcl cms] add promotional section plugin * #3842: [dcl, hosting] change number formatting for all the numbers from german to english locale diff --git a/datacenterlight/admin.py b/datacenterlight/admin.py new file mode 100644 index 00000000..974006a6 --- /dev/null +++ b/datacenterlight/admin.py @@ -0,0 +1,10 @@ +from django.contrib import admin +from cms.admin.placeholderadmin import PlaceholderAdminMixin +from .cms_models import CMSIntegration + + +class CMSIntegrationAdmin(PlaceholderAdminMixin, admin.ModelAdmin): + pass + + +admin.site.register(CMSIntegration, CMSIntegrationAdmin) diff --git a/datacenterlight/cms_models.py b/datacenterlight/cms_models.py index 0f46e831..2f63c150 100644 --- a/datacenterlight/cms_models.py +++ b/datacenterlight/cms_models.py @@ -3,6 +3,27 @@ from django.db import models from django.utils.safestring import mark_safe from djangocms_text_ckeditor.fields import HTMLField from filer.fields.image import FilerImageField +from cms.models.fields import PlaceholderField + + +class CMSIntegration(models.Model): + name = models.CharField( + max_length=100, unique=True, default='default', + help_text=( + 'A unique name for the Integration. This name will be used to ' + 'fetch the Integration into pages' + ) + ) + footer_placeholder = PlaceholderField( + 'datacenterlight_footer', related_name='dcl-footer-placeholder+' + ) + navbar_placeholder = PlaceholderField( + 'datacenterlight_navbar', related_name='dcl-navbar-placeholder+' + ) + + def __str__(self): + return self.name + # Models for CMS Plugins diff --git a/datacenterlight/management/commands/cmsintegrate.py b/datacenterlight/management/commands/cmsintegrate.py new file mode 100644 index 00000000..5b4f72d2 --- /dev/null +++ b/datacenterlight/management/commands/cmsintegrate.py @@ -0,0 +1,13 @@ +from django.core.management.base import BaseCommand +from datacenterlight.cms_models import CMSIntegration + + +class Command(BaseCommand): + help = '''Creates cms integration objects for datacenterlight''' + + def handle(self, *args, **options): + obj, created = CMSIntegration.objects.get_or_create(name='default') + if created: + print('created the default CMSIntegration object') + else: + print('default CMSIntegration object already exists') diff --git a/datacenterlight/migrations/0016_cmsintegration.py b/datacenterlight/migrations/0016_cmsintegration.py new file mode 100644 index 00000000..bdd1813a --- /dev/null +++ b/datacenterlight/migrations/0016_cmsintegration.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2018-03-27 15:31 +from __future__ import unicode_literals + +import cms.models.fields +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('datacenterlight', '0015_auto_20180323_0011'), + ('cms', '0014_auto_20160404_1908'), + ] + + operations = [ + migrations.CreateModel( + name='CMSIntegration', + fields=[ + ('id', models.AutoField(auto_created=True, + primary_key=True, serialize=False, verbose_name='ID')), + ('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, + on_delete=django.db.models.deletion.CASCADE, slotname='datacenterlight_navbar', to='cms.Placeholder')), + ('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, + on_delete=django.db.models.deletion.CASCADE, slotname='datacenterlight_footer', to='cms.Placeholder')), + ('name', models.CharField(default='default', + help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100, unique=True)), + ], + ), + ] diff --git a/datacenterlight/migrations/0017_auto_20180329_0056.py b/datacenterlight/migrations/0017_auto_20180329_0056.py new file mode 100644 index 00000000..136e6dbd --- /dev/null +++ b/datacenterlight/migrations/0017_auto_20180329_0056.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.4 on 2018-03-28 19:26 +from __future__ import unicode_literals + +import cms.models.fields +from django.db import migrations +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('datacenterlight', '0016_cmsintegration'), + ] + + operations = [ + migrations.AlterField( + model_name='cmsintegration', + name='footer_placeholder', + field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.Placeholder'), + ), + migrations.AlterField( + model_name='cmsintegration', + name='navbar_placeholder', + field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.Placeholder'), + ), + ] diff --git a/datacenterlight/static/datacenterlight/css/common.css b/datacenterlight/static/datacenterlight/css/common.css index e24cf671..214dbfd9 100644 --- a/datacenterlight/static/datacenterlight/css/common.css +++ b/datacenterlight/static/datacenterlight/css/common.css @@ -1,7 +1,7 @@ body, html { width: 100%; - min-height: 100%; + height: 100%; } body, @@ -84,8 +84,24 @@ a.list-group-item-danger.active:focus { } } +.navbar .dcl-link { + display: block; + padding: 15px; + color: #777; +} + +.navbar .dcl-link:focus, +.navbar .dcl-link:active, +.navbar .dcl-link:hover { + text-decoration: none; +} + +.navbar .dropdown-menu .dcl-link { + padding: 1px 10px; +} + p.copyright { - margin: 15px 0 0; + margin: 15px 0; } footer { @@ -95,4 +111,23 @@ footer { footer a { color: #777; +} + +footer .dcl-link-separator { + position: relative; + padding-left: 10px; +} + +footer .dcl-link-separator::before { + content: ""; + position: absolute; + display: inline-block; + top: 9px; + bottom: 0; + left: -2px; + right: 0; + width: 2px; + height: 2px; + border-radius: 100%; + background: #777; } \ No newline at end of file diff --git a/datacenterlight/static/datacenterlight/css/hosting.css b/datacenterlight/static/datacenterlight/css/hosting.css index 800fb533..8769ed60 100644 --- a/datacenterlight/static/datacenterlight/css/hosting.css +++ b/datacenterlight/static/datacenterlight/css/hosting.css @@ -15,8 +15,8 @@ } @media(min-width: 768px) { - .navbar-default .navbar-nav>li>a, - .navbar-right .highlights-dropdown .dropdown-menu>li>a { + .navbar-default .navbar-nav>li a, + .navbar-right .highlights-dropdown .dropdown-menu>li a { font-weight: 300; } .navbar-right .highlights-dropdown .dropdown-menu { @@ -26,7 +26,7 @@ } } -.navbar-right .highlights-dropdown .dropdown-menu>li>a { +.navbar-right .highlights-dropdown .dropdown-menu>li a { font-size: 13px; font-family: 'Lato', sans-serif; padding: 1px 10px 1px 18px !important; @@ -34,9 +34,9 @@ color: #333; } -.navbar-right .highlights-dropdown .dropdown-menu>li>a:hover, -.navbar-right .highlights-dropdown .dropdown-menu>li>a:focus, -.navbar-right .highlights-dropdown .dropdown-menu>li>a:active { +.navbar-right .highlights-dropdown .dropdown-menu>li a:hover, +.navbar-right .highlights-dropdown .dropdown-menu>li a:focus, +.navbar-right .highlights-dropdown .dropdown-menu>li a:active { background: transparent; text-decoration: underline !important; } @@ -144,9 +144,9 @@ } @media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu>.active>a, - .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus, - .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover { + .navbar-default .navbar-nav .open .dropdown-menu>.active a, + .navbar-default .navbar-nav .open .dropdown-menu>.active a:focus, + .navbar-default .navbar-nav .open .dropdown-menu>.active a:hover { background-color: transparent; } } @@ -163,7 +163,7 @@ } .content-dashboard { - min-height: calc(100vh - 60px); + min-height: calc(100vh - 86px); width: 100%; margin: 0 auto; max-width: 1120px; diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css index 3ac46295..38e84a59 100755 --- a/datacenterlight/static/datacenterlight/css/landing-page.css +++ b/datacenterlight/static/datacenterlight/css/landing-page.css @@ -99,15 +99,13 @@ textarea { } } +.navbar-transparent .navbar-nav>li a, .navbar-transparent .navbar-nav>.open>a, .navbar-transparent .navbar-nav>.open>a:focus, .navbar-transparent .navbar-nav>.open>a:hover { color: #fff; } -.navbar-transparent .navbar-nav>li a { - color: #fff; -} .navbar-transparent .navbar-nav>li a:focus, .navbar-transparent .navbar-nav>li a:active, @@ -123,22 +121,6 @@ textarea { background: transparent; } -.navbar .dcl-link { - display: block; - padding: 15px; - color: #777; -} - -.navbar .dcl-link:focus, -.navbar .dcl-link:active, -.navbar .dcl-link:hover { - text-decoration: none; -} - -.navbar .dropdown-menu .dcl-link { - padding: 1px 10px; -} - .navbar-transparent .navbar-nav>li>.on-hover-border { transition: all 0.3s linear; box-shadow: none; @@ -1233,24 +1215,6 @@ footer { transform: rotate(45deg); } -footer .dcl-link-separator { - position: relative; - padding-left: 10px; -} - -footer .dcl-link-separator::before { - content: ""; - position: absolute; - display: inline-block; - top: 9px; - bottom: 0; - left: -2px; - right: 0; - width: 2px; - height: 2px; - border-radius: 100%; - background: #777; -} /* new styles for whydcl section cms plugin (to replace older style) */ diff --git a/datacenterlight/templates/datacenterlight/base_hosting.html b/datacenterlight/templates/datacenterlight/base_hosting.html index 1f8bf1d9..e863d46b 100644 --- a/datacenterlight/templates/datacenterlight/base_hosting.html +++ b/datacenterlight/templates/datacenterlight/base_hosting.html @@ -1,4 +1,4 @@ -{% load staticfiles i18n %} +{% load staticfiles i18n cms_tags sekizai_tags %} {% get_current_language as LANGUAGE_CODE %} @@ -23,9 +23,15 @@ + {% if request.toolbar.edit_mode %} + + {% endif %} {% block css_extra %} {% endblock css_extra %} + {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %} + {% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %} + @@ -43,28 +49,17 @@
+ {% cms_toolbar %} - {% block navbar %} - {% include "hosting/includes/_navbar_user.html" %} - {% endblock navbar %} + {% render_placeholder cms_integration.navbar_placeholder %}{% trans "Configuration"%} {{request.session.template.name}}
{%trans "Total" %} ({%trans "including VAT" %}) {{request.session.specs.price}} CHF/{% trans "Month" %}
+{%trans "Total" %} ({%trans "including VAT" %}) {{request.session.specs.price|intcomma}} CHF/{% trans "Month" %}
diff --git a/datacenterlight/templates/datacenterlight/order_detail.html b/datacenterlight/templates/datacenterlight/order_detail.html index 6b103970..78ed43c0 100644 --- a/datacenterlight/templates/datacenterlight/order_detail.html +++ b/datacenterlight/templates/datacenterlight/order_detail.html @@ -1,5 +1,5 @@ {% extends "datacenterlight/base_hosting.html" %} -{% load staticfiles bootstrap3 i18n custom_tags %} +{% load staticfiles bootstrap3 i18n custom_tags humanize %} {% block content %}{% trans "Memory" %}: - {{vm.memory}} GB + {{vm.memory|intcomma}} GB
{% trans "Disk space" %}: - {{vm.disk_size}} GB + {{vm.disk_size|intcomma}} GB
{% trans "Total" %} - {{vm.price}} CHF + {{vm.price|intcomma}} CHF
{% trans "Total" %} - {{vm.price}} CHF + {{vm.price|intcomma}} CHF