Merge branch 'master' into bugfix/3621/mobile_signup
This commit is contained in:
commit
ede12cc624
14 changed files with 170 additions and 109 deletions
20
Changelog
20
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
|
1.0.21: 2017-07-21
|
||||||
* #3591: [datacenterlight, payment] Fixed card holder name to appear on Confirm Order page
|
* #3591: [datacenterlight, payment] Fixed card holder name to appear on Confirm Order page
|
||||||
* #3558: [datacenterlight] Changed font family and background color for header
|
* #3558: [datacenterlight] Changed font family and background color for header
|
||||||
* #3581: [datacenterlight] Lead font weight change
|
* #3581: [datacenterlight] Lead font weight change
|
||||||
* #3584: [all] Add flag is_superuser=True in MyUserManager
|
* #3584: [all] Add flag is_superuser=True in MyUserManager
|
||||||
1.0.20: 2017-07-18
|
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
|
* #3590: [digitalglarus] Added impact hub partner logo and text in digitalglarus
|
||||||
[datacenterlight, hosting] Fixed overlapping of date and billing address in the mobile view
|
[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
|
* #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
|
* #3568: [all] Improved the way of adding Google analytics (ga) code. We now have ga code for ungleich, digitalglarus, blog, hosting
|
||||||
and datacenterlight
|
and datacenterlight
|
||||||
* #3564: [datacenterlight] Improved calculator form validations, both client side and server side
|
* #3564: [datacenterlight] Improved calculator form validations, both client side and server side
|
||||||
|
|
|
@ -4,9 +4,9 @@ from .views import IndexView, LoginView, ContactView
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^/?$', IndexView.as_view(), name='index'),
|
url(r'^$', IndexView.as_view(), name='index'),
|
||||||
url(r'/login/', LoginView.as_view(), name='login'),
|
url(r'login/', LoginView.as_view(), name='login'),
|
||||||
url(r'/contact', ContactView.as_view(), name='contact'),
|
url(r'contact', ContactView.as_view(), name='contact'),
|
||||||
# url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
# url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
||||||
# url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'),
|
# url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -156,6 +156,14 @@ h6 {
|
||||||
background-color: transparent;
|
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 {
|
.navbar-default .btn-link {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
@ -196,44 +204,61 @@ h6 {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
font-family: 'Lato', sans-serif;
|
font-family: 'Lato', sans-serif;
|
||||||
}
|
}
|
||||||
|
.nav-language .drop-language{
|
||||||
.nav-language .drop-language {
|
/*position: absolute;*/
|
||||||
position: absolute;
|
|
||||||
top: 45px;
|
top: 45px;
|
||||||
left: -8px;
|
left: auto !important;
|
||||||
background: #fff;
|
/* background: #fff; */
|
||||||
width: 100px;
|
width: 100px;
|
||||||
|
min-width: 100px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
padding: 9px 10px;
|
padding: 9px 10px;
|
||||||
-webkit-box-shadow: -8px 13px 31px -8px rgba(77, 77, 77, 1);
|
-webkit-box-shadow: -8px 13px 31px -8px rgba(77,77,77,1);
|
||||||
-moz-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);
|
box-shadow: -8px 13px 31px -8px rgba(77,77,77,1);
|
||||||
display: none;
|
/*display: none;*/
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
/* margin-left: 10px; */
|
/* margin-left: 10px; */
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-language .drop-language a {
|
.nav-language .open .drop-language{
|
||||||
cursor: pointer;
|
width: 100px;
|
||||||
font-family: 'Lato', sans-serif;
|
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;
|
background: transparent;
|
||||||
border: 1px solid #fff;
|
border: 1px solid #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-transparent .nav-language .drop-language a {
|
.navbar-transparent .nav-language .drop-language a {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
padding: 5px 10px !important;
|
||||||
font-family: 'Lato-Light', sans-serif;
|
font-family: 'Lato-Light', sans-serif;
|
||||||
}
|
}
|
||||||
|
/* .nav-language:hover .drop-language{
|
||||||
.nav-language:hover .drop-language {
|
|
||||||
display: block;
|
display: block;
|
||||||
}
|
} */
|
||||||
|
|
||||||
.intro-header {
|
.intro-header {
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -1188,8 +1213,8 @@ tech-sub-sec h2 {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #777;
|
color: #777;
|
||||||
}
|
}
|
||||||
.nav-language:hover {
|
.nav-language:hover{
|
||||||
height: 80px;
|
/*height: 80px;*/
|
||||||
}
|
}
|
||||||
.navbar-transparent .nav-language .select-language {
|
.navbar-transparent .nav-language .select-language {
|
||||||
color: #777;
|
color: #777;
|
||||||
|
|
|
@ -91,16 +91,12 @@
|
||||||
var href = $(this).attr('data-url');
|
var href = $(this).attr('data-url');
|
||||||
$('.navbar-collapse').removeClass('in');
|
$('.navbar-collapse').removeClass('in');
|
||||||
$('.navbar-collapse').addClass('collapsing');
|
$('.navbar-collapse').addClass('collapsing');
|
||||||
var url = window.location.pathname;
|
if ($(href).length) {
|
||||||
var urlSplit = url.split('/');
|
|
||||||
if (urlSplit.length === 3 && urlSplit[2] === 'datacenterlight') {
|
|
||||||
$('html, body').animate({
|
$('html, body').animate({
|
||||||
scrollTop: $(href).offset().top
|
scrollTop: $(href).offset().top
|
||||||
}, 1000);
|
}, 1000);
|
||||||
} else {
|
} else {
|
||||||
var allUrl = window.location.href;
|
window.location.href = '/datacenterlight' + href;
|
||||||
var redirect = allUrl.split('whydatacenterlight')
|
|
||||||
window.location.href = '/en-us/datacenterlight' + href;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{% load staticfiles i18n%}
|
{% load staticfiles i18n%} {% get_current_language as LANGUAGE_CODE %} {% load custom_tags %}
|
||||||
{% get_current_language as LANGUAGE_CODE %}
|
|
||||||
{% load custom_tags %}
|
|
||||||
<nav class="navbar navbar-default navbar-fixed-top topnav">
|
<nav class="navbar navbar-default navbar-fixed-top topnav">
|
||||||
<div class="topnav">
|
<div class="topnav">
|
||||||
<!-- Brand and toggle get grouped for better mobile display -->
|
<!-- Brand and toggle get grouped for better mobile display -->
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||||
|
@ -33,14 +31,25 @@
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'datacenterlight:index' %}/whydatacenterlight" >{% trans "Why Data Center Light?" %}</a>
|
<a href="{% url 'datacenterlight:whydatacenterlight' %}" >{% trans "Why Data Center Light?" %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="url" href="{% url 'datacenterlight:index' %}#contact" data-url="#contact" >{% trans "Contact" %}</a>
|
<a class="url" href="{% url 'datacenterlight:index' %}#contact" data-url="#contact" >{% trans "Contact" %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<li>
|
||||||
|
{% if LANGUAGE_CODE == 'en-us'%}
|
||||||
|
<a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch <i class="fa fa-globe" aria-hidden="true"></i></a>
|
||||||
|
{% else %}
|
||||||
|
<a class="on-hover-border" href="{% change_lang 'en-us' %}">English <i class="fa fa-globe" aria-hidden="true"></i></a>
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
{% comment %}
|
||||||
|
<!-- to be used when more than one option for language -->
|
||||||
<li class="nav-language">
|
<li class="nav-language">
|
||||||
<div class="select-language">
|
<div class="dropdown">
|
||||||
|
<div class="dropdown-toggle select-language" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
||||||
{% if LANGUAGE_CODE == 'en-us'%}
|
{% if LANGUAGE_CODE == 'en-us'%}
|
||||||
<span>English</span>
|
<span>English</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -48,18 +57,18 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<i class="fa fa-globe" aria-hidden="true"></i>
|
<i class="fa fa-globe" aria-hidden="true"></i>
|
||||||
</div>
|
</div>
|
||||||
|
<ul class="dropdown-menu drop-language dropdown-menu-right">
|
||||||
<div class="drop-language">
|
|
||||||
{% if LANGUAGE_CODE == 'en-us'%}
|
{% if LANGUAGE_CODE == 'en-us'%}
|
||||||
<a href="{% change_lang 'de' %}">Deutsch</a>
|
<li><a class="url" href="{% change_lang 'de' %}">Deutsch</a></li>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% change_lang 'en-us' %}" >English</a>
|
<li><a class="url" href="{% change_lang 'en-us' %}">English</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div><!-- /.navbar-collapse -->
|
|
||||||
</div>
|
</div>
|
||||||
|
</li>
|
||||||
|
{% endcomment %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- /.navbar-collapse -->
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
|
@ -5,13 +5,13 @@ from .views import IndexView, BetaProgramView, LandingProgramView, BetaAccessVie
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^/?$', IndexView.as_view(), name='index'),
|
url(r'^$', IndexView.as_view(), name='index'),
|
||||||
url(r'^/whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'),
|
url(r'^whydatacenterlight/?$', WhyDataCenterLightView.as_view(), name='whydatacenterlight'),
|
||||||
url(r'^/beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
url(r'^beta-program/?$', BetaProgramView.as_view(), name='beta'),
|
||||||
url(r'^/landing/?$', LandingProgramView.as_view(), name='landing'),
|
url(r'^landing/?$', LandingProgramView.as_view(), name='landing'),
|
||||||
url(r'^/pricing/?$', PricingView.as_view(), name='pricing'),
|
url(r'^pricing/?$', PricingView.as_view(), name='pricing'),
|
||||||
url(r'^/payment/?$', PaymentOrderView.as_view(), name='payment'),
|
url(r'^payment/?$', PaymentOrderView.as_view(), name='payment'),
|
||||||
url(r'^/order-confirmation/?$', OrderConfirmationView.as_view(), name='order_confirmation'),
|
url(r'^order-confirmation/?$', OrderConfirmationView.as_view(), name='order_confirmation'),
|
||||||
url(r'^/order-success/?$', SuccessView.as_view(), name='order_success'),
|
url(r'^order-success/?$', SuccessView.as_view(), name='order_success'),
|
||||||
url(r'^/beta_access?$', BetaAccessView.as_view(), name='beta_access'),
|
url(r'^beta_access?$', BetaAccessView.as_view(), name='beta_access'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
from .views import ContactView, IndexView, HistoryView, LoginView, SignupView,\
|
from .views import ContactView, IndexView, HistoryView, LoginView, SignupView,\
|
||||||
|
@ -20,7 +21,7 @@ urlpatterns = [
|
||||||
url(_(r'contact/?$'), ContactView.as_view(), name='contact'),
|
url(_(r'contact/?$'), ContactView.as_view(), name='contact'),
|
||||||
url(_(r'login/?$'), LoginView.as_view(), name='login'),
|
url(_(r'login/?$'), LoginView.as_view(), name='login'),
|
||||||
url(_(r'signup/?$'), SignupView.as_view(), name='signup'),
|
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'),
|
{'next_page': '/digitalglarus/login?logged_out=true'}, name='logout'),
|
||||||
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
||||||
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
||||||
|
|
|
@ -199,13 +199,11 @@ DATABASES = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AUTHENTICATION_BACKENDS = (
|
AUTHENTICATION_BACKENDS = (
|
||||||
'guardian.backends.ObjectPermissionBackend',
|
'guardian.backends.ObjectPermissionBackend',
|
||||||
'django.contrib.auth.backends.ModelBackend',
|
'django.contrib.auth.backends.ModelBackend',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# Internationalization
|
# Internationalization
|
||||||
# https://docs.djangoproject.com/en/1.7/topics/i18n/
|
# 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'},)}
|
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'},)}
|
||||||
AUTH_USER_MODEL = 'membership.CustomUser'
|
AUTH_USER_MODEL = 'membership.CustomUser'
|
||||||
|
|
||||||
|
|
||||||
# PAYMENT
|
# PAYMENT
|
||||||
|
|
||||||
STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services"
|
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'
|
ANONYMOUS_USER_NAME = 'anonymous@ungleich.ch'
|
||||||
GUARDIAN_GET_INIT_ANONYMOUS_USER = 'membership.models.get_anonymous_user_instance'
|
GUARDIAN_GET_INIT_ANONYMOUS_USER = 'membership.models.get_anonymous_user_instance'
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# configurations for opennebula-integration #
|
# configurations for opennebula-integration #
|
||||||
#############################################
|
#############################################
|
||||||
|
@ -508,7 +504,6 @@ OPENNEBULA_PORT = env('OPENNEBULA_PORT')
|
||||||
# default value is /RPC2
|
# default value is /RPC2
|
||||||
OPENNEBULA_ENDPOINT = env('OPENNEBULA_ENDPOINT')
|
OPENNEBULA_ENDPOINT = env('OPENNEBULA_ENDPOINT')
|
||||||
|
|
||||||
|
|
||||||
# dcl email configurations
|
# dcl email configurations
|
||||||
DCL_TEXT = env('DCL_TEXT')
|
DCL_TEXT = env('DCL_TEXT')
|
||||||
DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS')
|
DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS')
|
||||||
|
@ -526,6 +521,28 @@ GOOGLE_ANALYTICS_PROPERTY_IDS = {
|
||||||
'dynamicweb-staging.ungleich.ch': 'staging'
|
'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')
|
DEBUG = bool_env('DEBUG')
|
||||||
|
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
from django.conf.urls import patterns, include, url
|
from django.conf.urls import include, url
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
# deprecated in version 1.8
|
|
||||||
from django.conf.urls.i18n import i18n_patterns
|
from django.conf.urls.i18n import i18n_patterns
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
|
from django.views import i18n, static as static_view
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from hosting.views import RailsHostingView, DjangoHostingView, NodeJSHostingView
|
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'^nosystemd/', include('nosystemd.urls', namespace="nosystemd")),
|
||||||
url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
|
url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
|
||||||
url(r'^jsi18n/(?P<packages>\S+?)/$',
|
url(r'^jsi18n/(?P<packages>\S+?)/$',
|
||||||
'django.views.i18n.javascript_catalog'),
|
i18n.javascript_catalog),
|
||||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
||||||
# note the django CMS URLs included via i18n_patterns
|
# note the django CMS URLs included via i18n_patterns
|
||||||
urlpatterns += i18n_patterns('',
|
urlpatterns += i18n_patterns(
|
||||||
url(r'^/?$', LandingView.as_view()),
|
url(r'^$', LandingView.as_view()),
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
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(r'^hosting/', RedirectView.as_view(
|
||||||
url=reverse_lazy('hosting:login')), name='redirect_hosting_login'),
|
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'^membership/', include(membership_urls)),
|
||||||
url(r'^digitalglarus/', include('digitalglarus.urls',
|
url(r'^digitalglarus/', include('digitalglarus.urls',
|
||||||
namespace="digitalglarus")),
|
namespace="digitalglarus")),
|
||||||
|
@ -43,11 +43,11 @@ urlpatterns += i18n_patterns('',
|
||||||
url(r'^blog/', include('ungleich.urls', namespace='ungleich')),
|
url(r'^blog/', include('ungleich.urls', namespace='ungleich')),
|
||||||
url(r'^', include('cms.urls'))
|
url(r'^', include('cms.urls'))
|
||||||
)
|
)
|
||||||
urlpatterns += patterns('',
|
urlpatterns += [
|
||||||
url(r'^media/(?P<path>.*)$',
|
url(r'^media/(?P<path>.*)$',
|
||||||
'django.views.static.serve', {
|
static_view.serve, {
|
||||||
'document_root': settings.MEDIA_ROOT,
|
'document_root': settings.MEDIA_ROOT,
|
||||||
}),
|
}),
|
||||||
)
|
]
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
urlpatterns += patterns('', url(r'^__debug__/', include(debug_toolbar.urls)))
|
urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
|
||||||
|
|
|
@ -721,3 +721,8 @@ a.unlink:hover {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.footer-light a:hover, .footer-light a:focus, .footer-light a:active {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
|
@ -118,7 +118,9 @@
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
<div class="footer-light">
|
||||||
{% include "datacenterlight/includes/_footer.html" %}
|
{% include "datacenterlight/includes/_footer.html" %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!-- jQuery -->
|
<!-- jQuery -->
|
||||||
<script src="{% static 'hosting/js/jquery.js' %}"></script>
|
<script src="{% static 'hosting/js/jquery.js' %}"></script>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
||||||
from .views import DjangoHostingView, RailsHostingView, PaymentVMView,\
|
from .views import DjangoHostingView, RailsHostingView, PaymentVMView,\
|
||||||
NodeJSHostingView, LoginView, SignupView, SignupValidateView, SignupValidatedView, IndexView, \
|
NodeJSHostingView, LoginView, SignupView, SignupValidateView, SignupValidatedView, IndexView, \
|
||||||
|
@ -39,7 +40,7 @@ urlpatterns = [
|
||||||
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
||||||
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
||||||
PasswordResetConfirmView.as_view(), name='reset_password_confirm'),
|
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'),
|
{'next_page': '/hosting/login?logged_out=true'}, name='logout'),
|
||||||
url(r'^validate/(?P<validate_slug>.*)/$', SignupValidatedView.as_view(), name='validate')
|
url(r'^validate/(?P<validate_slug>.*)/$', SignupValidatedView.as_view(), name='validate')
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
||||||
from .views import LandingView, LoginView, SignupView, PasswordResetView,\
|
from .views import LandingView, LoginView, SignupView, PasswordResetView,\
|
||||||
PasswordResetConfirmView, DonationView, DonationDetailView, ChangeDonatorStatusDetailView,\
|
PasswordResetConfirmView, DonationView, DonationDetailView, ChangeDonatorStatusDetailView,\
|
||||||
|
@ -8,7 +9,7 @@ urlpatterns = [
|
||||||
url(r'^$', LandingView.as_view(), name='landing'),
|
url(r'^$', LandingView.as_view(), name='landing'),
|
||||||
url(r'^login/?$', LoginView.as_view(), name='login'),
|
url(r'^login/?$', LoginView.as_view(), name='login'),
|
||||||
url(r'^signup/?$', SignupView.as_view(), name='signup'),
|
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'),
|
{'next_page': '/nosystemd/login?logged_out=true'}, name='logout'),
|
||||||
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
url(r'reset-password/?$', PasswordResetView.as_view(), name='reset_password'),
|
||||||
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
url(r'reset-password-confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$',
|
||||||
|
|
Loading…
Reference in a new issue