diff --git a/Changelog b/Changelog index 98142cd4..5ab95416 100644 --- a/Changelog +++ b/Changelog @@ -1,20 +1,24 @@ +1.0.22: 2017-07-30 + * #3593: [datacenterlight] Removed underbars between social icons in index + * #3509: [datacenterlight, hosting] Made navbar transparent and removed mobile navbar bug in login/signup/reset-password + * #3592: [datacenterlight] Changed “Order Now” button text to “Continue/weiter” + * #3579: [datacenterlight] Removed “blinks” on click on navbar menus + * #3577: [datacenterlight] Added backend CPU, RAM, SSD fields validation + * #3615: [datacenterlight] Decoupled landing VM templates from OpenNebula + * #3604: [datacenterlight, hosting] Font colour change for better visibility in signup/login/password request footer links + [all] Introduced ENABLE_DEBUG_LOGGING + * #3542: [datacenterlight, hosting] Fixed warning messages and deprecated url + * #3603: [datacenterlight] Removed navbar language option dropdown + * #3629: [datacenterlight] Fixed navbar language switching bug 1.0.21: 2017-07-21 * #3591: [datacenterlight, payment] Fixed card holder name to appear on Confirm Order page * #3558: [datacenterlight] Changed font family and background color for header * #3581: [datacenterlight] Lead font weight change * #3584: [all] Add flag is_superuser=True in MyUserManager 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. Cust1.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 translationsomized 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 diff --git a/alplora/urls.py b/alplora/urls.py index 071bb2ac..058f5499 100644 --- a/alplora/urls.py +++ b/alplora/urls.py @@ -4,9 +4,9 @@ from .views import IndexView, LoginView, ContactView urlpatterns = [ - url(r'^/?$', IndexView.as_view(), name='index'), - url(r'/login/', LoginView.as_view(), name='login'), - url(r'/contact', ContactView.as_view(), name='contact'), + url(r'^$', IndexView.as_view(), name='index'), + url(r'login/', LoginView.as_view(), name='login'), + url(r'contact', ContactView.as_view(), name='contact'), # url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'), # url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'), ] diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css index 07ecc3b6..ba2546c8 100755 --- a/datacenterlight/static/datacenterlight/css/landing-page.css +++ b/datacenterlight/static/datacenterlight/css/landing-page.css @@ -156,6 +156,14 @@ h6 { background-color: transparent; } +.navbar-transparent .navbar-nav>li>.on-hover-border { + transition: all 0.3s linear; + box-shadow: none; +} +.navbar-transparent .navbar-nav>li>.on-hover-border:hover { + box-shadow: 0 0 0 1px #eee; + border-radius: 5px; +} .navbar-default .btn-link { box-shadow: none; } @@ -196,44 +204,61 @@ h6 { margin-right: 5px; font-family: 'Lato', sans-serif; } - -.nav-language .drop-language { - position: absolute; +.nav-language .drop-language{ + /*position: absolute;*/ top: 45px; - left: -8px; - background: #fff; + left: auto !important; + /* background: #fff; */ width: 100px; + min-width: 100px; height: 40px; padding: 9px 10px; - -webkit-box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1); - -moz-box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1); - box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1); - display: none; + -webkit-box-shadow: -8px 13px 31px -8px rgba(77,77,77,1); + -moz-box-shadow: -8px 13px 31px -8px rgba(77,77,77,1); + box-shadow: -8px 13px 31px -8px rgba(77,77,77,1); + /*display: none;*/ z-index: 100; /* margin-left: 10px; */ text-align: center; border-radius: 4px; } -.nav-language .drop-language a { - cursor: pointer; - font-family: 'Lato', sans-serif; +.nav-language .open .drop-language{ + width: 100px; + min-width: 100px; } -.navbar-transparent .nav-language .drop-language { +.nav-language .drop-language a{ + cursor: pointer; + padding: 5px 10px !important; + font-family: 'Lato-Light', sans-serif; +} + +/* Show the dropdown menu on hover */ +@media (min-width: 769px) { + .nav-language .dropdown:hover .dropdown-menu { + display: block; + } +} +@media (max-width: 767px){ + .nav-language .open .dropdown-menu>li>a { + line-height: 1.42857143; + } +} + +.navbar-transparent .nav-language .drop-language{ background: transparent; border: 1px solid #fff; } .navbar-transparent .nav-language .drop-language a { color: #fff; + padding: 5px 10px !important; font-family: 'Lato-Light', sans-serif; } - -.nav-language:hover .drop-language { +/* .nav-language:hover .drop-language{ display: block; -} - +} */ .intro-header { height: 100vh; text-align: center; @@ -1188,8 +1213,8 @@ tech-sub-sec h2 { font-size: 14px; color: #777; } - .nav-language:hover { - height: 80px; + .nav-language:hover{ + /*height: 80px;*/ } .navbar-transparent .nav-language .select-language { color: #777; diff --git a/datacenterlight/static/datacenterlight/js/main.js b/datacenterlight/static/datacenterlight/js/main.js index 44b92a0c..5594fe11 100644 --- a/datacenterlight/static/datacenterlight/js/main.js +++ b/datacenterlight/static/datacenterlight/js/main.js @@ -91,16 +91,12 @@ var href = $(this).attr('data-url'); $('.navbar-collapse').removeClass('in'); $('.navbar-collapse').addClass('collapsing'); - var url = window.location.pathname; - var urlSplit = url.split('/'); - if (urlSplit.length === 3 && urlSplit[2] === 'datacenterlight') { + if ($(href).length) { $('html, body').animate({ scrollTop: $(href).offset().top }, 1000); } else { - var allUrl = window.location.href; - var redirect = allUrl.split('whydatacenterlight') - window.location.href = '/en-us/datacenterlight' + href; + window.location.href = '/datacenterlight' + href; } }); } diff --git a/datacenterlight/templates/datacenterlight/includes/_footer.html b/datacenterlight/templates/datacenterlight/includes/_footer.html index 2a53c2e1..f9d0758c 100644 --- a/datacenterlight/templates/datacenterlight/includes/_footer.html +++ b/datacenterlight/templates/datacenterlight/includes/_footer.html @@ -4,7 +4,7 @@
- +
    {% if request.resolver_match.url_name == "index" %}
  • @@ -45,7 +45,7 @@
  • {% endif %}
- +
diff --git a/datacenterlight/templates/datacenterlight/includes/_navbar.html b/datacenterlight/templates/datacenterlight/includes/_navbar.html index 84358b4d..99f6a4a8 100644 --- a/datacenterlight/templates/datacenterlight/includes/_navbar.html +++ b/datacenterlight/templates/datacenterlight/includes/_navbar.html @@ -1,8 +1,6 @@ -{% load staticfiles i18n%} -{% get_current_language as LANGUAGE_CODE %} -{% load custom_tags %} +{% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} {% load custom_tags %}
- + \ No newline at end of file diff --git a/datacenterlight/urls.py b/datacenterlight/urls.py index a08bacdb..a3aed7a6 100644 --- a/datacenterlight/urls.py +++ b/datacenterlight/urls.py @@ -5,13 +5,13 @@ from .views import IndexView, BetaProgramView, LandingProgramView, BetaAccessVie urlpatterns = [ - url(r'^/?$', IndexView.as_view(), name='index'), - url(r'^/whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'), - url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'), - url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'), - url(r'^/pricing/?$', PricingView.as_view(), name='pricing'), - url(r'^/payment/?$', PaymentOrderView.as_view(), name='payment'), - url(r'^/order-confirmation/?$', OrderConfirmationView.as_view(), name='order_confirmation'), - url(r'^/order-success/?$', SuccessView.as_view(), name='order_success'), - url(r'^/beta_access?$', BetaAccessView.as_view(), name='beta_access'), + url(r'^$', IndexView.as_view(), name='index'), + url(r'^whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'), + url(r'^beta-program/?$', BetaProgramView.as_view(), name='beta'), + url(r'^landing/?$', LandingProgramView.as_view(), name='landing'), + url(r'^pricing/?$', PricingView.as_view(), name='pricing'), + url(r'^payment/?$', PaymentOrderView.as_view(), name='payment'), + url(r'^order-confirmation/?$', OrderConfirmationView.as_view(), name='order_confirmation'), + url(r'^order-success/?$', SuccessView.as_view(), name='order_success'), + url(r'^beta_access?$', BetaAccessView.as_view(), name='beta_access'), ] diff --git a/digitalglarus/urls.py b/digitalglarus/urls.py index eba9896e..92cd8e11 100644 --- a/digitalglarus/urls.py +++ b/digitalglarus/urls.py @@ -1,5 +1,6 @@ from django.conf.urls import url from django.utils.translation import ugettext_lazy as _ +from django.contrib.auth import views as auth_views from . import views from .views import ContactView, IndexView, HistoryView, LoginView, SignupView,\ @@ -20,7 +21,7 @@ urlpatterns = [ url(_(r'contact/?$'), ContactView.as_view(), name='contact'), url(_(r'login/?$'), LoginView.as_view(), name='login'), url(_(r'signup/?$'), SignupView.as_view(), name='signup'), - url(r'^logout/?$', 'django.contrib.auth.views.logout', + url(r'^logout/?$', auth_views.logout, {'next_page': '/digitalglarus/login?logged_out=true'}, name='logout'), url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'), url(r'reset-password-confirm/(?P[0-9A-Za-z]+)-(?P.+)/$', diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py index 5e10a1a5..40187f84 100644 --- a/dynamicweb/settings/base.py +++ b/dynamicweb/settings/base.py @@ -199,13 +199,11 @@ DATABASES = { } } - AUTHENTICATION_BACKENDS = ( 'guardian.backends.ObjectPermissionBackend', 'django.contrib.auth.backends.ModelBackend', ) - # Internationalization # https://docs.djangoproject.com/en/1.7/topics/i18n/ @@ -464,7 +462,6 @@ META_USE_SITES = True PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'},)} AUTH_USER_MODEL = 'membership.CustomUser' - # PAYMENT STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services" @@ -481,7 +478,6 @@ STRIPE_API_PUBLIC_KEY = env('STRIPE_API_PUBLIC_KEY') ANONYMOUS_USER_NAME = 'anonymous@ungleich.ch' GUARDIAN_GET_INIT_ANONYMOUS_USER = 'membership.models.get_anonymous_user_instance' - ############################################# # configurations for opennebula-integration # ############################################# @@ -508,7 +504,6 @@ OPENNEBULA_PORT = env('OPENNEBULA_PORT') # default value is /RPC2 OPENNEBULA_ENDPOINT = env('OPENNEBULA_ENDPOINT') - # dcl email configurations DCL_TEXT = env('DCL_TEXT') DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS') @@ -526,9 +521,31 @@ GOOGLE_ANALYTICS_PROPERTY_IDS = { 'dynamicweb-staging.ungleich.ch': 'staging' } +ENABLE_DEBUG_LOGGING = bool_env('ENABLE_DEBUG_LOGGING') + +if ENABLE_DEBUG_LOGGING: + LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'filename': "{PROJECT_DIR}/debug.log".format(PROJECT_DIR=PROJECT_DIR), + }, + }, + 'loggers': { + 'django': { + 'handlers': ['file'], + 'level': 'DEBUG', + 'propagate': True, + }, + }, + } + DEBUG = bool_env('DEBUG') if DEBUG: - from .local import * # flake8: noqa + from .local import * # flake8: noqa else: - from .prod import * # flake8: noqa + from .prod import * # flake8: noqa diff --git a/dynamicweb/urls.py b/dynamicweb/urls.py index 66bf74df..b5cccff3 100644 --- a/dynamicweb/urls.py +++ b/dynamicweb/urls.py @@ -1,8 +1,8 @@ -from django.conf.urls import patterns, include, url +from django.conf.urls import include, url from django.contrib import admin -# deprecated in version 1.8 from django.conf.urls.i18n import i18n_patterns from django.conf.urls.static import static +from django.views import i18n, static as static_view from django.conf import settings from hosting.views import RailsHostingView, DjangoHostingView, NodeJSHostingView @@ -22,17 +22,17 @@ urlpatterns = [url(r'^index.html$', LandingView.as_view()), url(r'^nosystemd/', include('nosystemd.urls', namespace="nosystemd")), url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')), url(r'^jsi18n/(?P\S+?)/$', - 'django.views.i18n.javascript_catalog'), + i18n.javascript_catalog), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # note the django CMS URLs included via i18n_patterns -urlpatterns += i18n_patterns('', - url(r'^/?$', LandingView.as_view()), +urlpatterns += i18n_patterns( + url(r'^$', LandingView.as_view()), url(r'^admin/', include(admin.site.urls)), - url(r'^datacenterlight', include('datacenterlight.urls', namespace="datacenterlight")), + url(r'^datacenterlight/', include('datacenterlight.urls', namespace="datacenterlight")), url(r'^hosting/', RedirectView.as_view( url=reverse_lazy('hosting:login')), name='redirect_hosting_login'), - url(r'^alplora', include('alplora.urls', namespace="alplora")), + url(r'^alplora/', include('alplora.urls', namespace="alplora")), url(r'^membership/', include(membership_urls)), url(r'^digitalglarus/', include('digitalglarus.urls', namespace="digitalglarus")), @@ -43,11 +43,11 @@ urlpatterns += i18n_patterns('', url(r'^blog/', include('ungleich.urls', namespace='ungleich')), url(r'^', include('cms.urls')) ) -urlpatterns += patterns('', +urlpatterns += [ url(r'^media/(?P.*)$', - 'django.views.static.serve', { + static_view.serve, { 'document_root': settings.MEDIA_ROOT, }), - ) + ] if settings.DEBUG: - urlpatterns += patterns('', url(r'^__debug__/', include(debug_toolbar.urls))) + urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))] diff --git a/hosting/static/hosting/css/landing-page.css b/hosting/static/hosting/css/landing-page.css index 63a2f54a..a7d69094 100644 --- a/hosting/static/hosting/css/landing-page.css +++ b/hosting/static/hosting/css/landing-page.css @@ -714,3 +714,8 @@ a.unlink:hover { width: 100% !important; } } + + +.footer-light a:hover, .footer-light a:focus, .footer-light a:active { + color: #ddd; +} \ No newline at end of file diff --git a/hosting/templates/hosting/base_short.html b/hosting/templates/hosting/base_short.html index 39b5a0fc..b4f4949e 100644 --- a/hosting/templates/hosting/base_short.html +++ b/hosting/templates/hosting/base_short.html @@ -119,7 +119,9 @@ {% else %} - {% include "datacenterlight/includes/_footer.html" %} + {% endif %} diff --git a/hosting/urls.py b/hosting/urls.py index fc8198ef..ea96af77 100644 --- a/hosting/urls.py +++ b/hosting/urls.py @@ -1,4 +1,5 @@ from django.conf.urls import url +from django.contrib.auth import views as auth_views from .views import DjangoHostingView, RailsHostingView, PaymentVMView,\ NodeJSHostingView, LoginView, SignupView, SignupValidateView, SignupValidatedView, IndexView, \ @@ -41,7 +42,7 @@ urlpatterns = [ url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'), url(r'reset-password-confirm/(?P[0-9A-Za-z]+)-(?P.+)/$', PasswordResetConfirmView.as_view(), name='reset_password_confirm'), - url(r'^logout/?$', 'django.contrib.auth.views.logout', + url(r'^logout/?$', auth_views.logout, {'next_page': '/hosting/login?logged_out=true'}, name='logout'), url(r'^validate/(?P.*)/$', SignupValidatedView.as_view(), name='validate') ] diff --git a/nosystemd/urls.py b/nosystemd/urls.py index d95127da..7c3965f8 100644 --- a/nosystemd/urls.py +++ b/nosystemd/urls.py @@ -1,4 +1,5 @@ from django.conf.urls import url +from django.contrib.auth import views as auth_views from .views import LandingView, LoginView, SignupView, PasswordResetView,\ PasswordResetConfirmView, DonationView, DonationDetailView, ChangeDonatorStatusDetailView,\ @@ -8,7 +9,7 @@ urlpatterns = [ url(r'^$', LandingView.as_view(), name='landing'), url(r'^login/?$', LoginView.as_view(), name='login'), url(r'^signup/?$', SignupView.as_view(), name='signup'), - url(r'^logout/?$', 'django.contrib.auth.views.logout', + url(r'^logout/?$', auth_views.logout, {'next_page': '/nosystemd/login?logged_out=true'}, name='logout'), url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'), url(r'reset-password-confirm/(?P[0-9A-Za-z]+)-(?P.+)/$',