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;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@
 | 
				
			||||||
        <div class="container">
 | 
					        <div class="container">
 | 
				
			||||||
            <div class="row">
 | 
					            <div class="row">
 | 
				
			||||||
                <div class="col-lg-12">
 | 
					                <div class="col-lg-12">
 | 
				
			||||||
                    
 | 
					
 | 
				
			||||||
                    <ul class="list-inline">
 | 
					                    <ul class="list-inline">
 | 
				
			||||||
                        {% if request.resolver_match.url_name == "index" %}
 | 
					                        {% if request.resolver_match.url_name == "index" %}
 | 
				
			||||||
                         <li>
 | 
					                         <li>
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,7 @@
 | 
				
			||||||
                            </li>
 | 
					                            </li>
 | 
				
			||||||
                        {% endif %}
 | 
					                        {% endif %}
 | 
				
			||||||
                    </ul>
 | 
					                    </ul>
 | 
				
			||||||
                          
 | 
					
 | 
				
			||||||
                    <p class="copyright text-muted small">Copyright © ungleich GmbH {% now "Y" %}. All Rights Reserved</p>
 | 
					                    <p class="copyright text-muted small">Copyright © ungleich GmbH {% now "Y" %}. All Rights Reserved</p>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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">
 | 
				
			||||||
| 
						 | 
					@ -22,44 +20,55 @@
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><!-- Start Navbar collapse-->
 | 
					  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><!-- Start Navbar collapse-->
 | 
				
			||||||
    <ul class="nav navbar-nav navbar-right">
 | 
					    <ul class="nav navbar-nav navbar-right">
 | 
				
			||||||
		{% if request.resolver_match.url_name == "index" or request.resolver_match.url_name == "whydatacenterlight" %}
 | 
					        {% if request.resolver_match.url_name == "index" or request.resolver_match.url_name == "whydatacenterlight" %}
 | 
				
			||||||
           <li class="dropdown">
 | 
					           <li class="dropdown">
 | 
				
			||||||
                <a class="dropdown-toggle  visible-mobile" href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}<span class="caret"></span></a>
 | 
					                <a class="dropdown-toggle  visible-mobile" href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}<span class="caret"></span></a>
 | 
				
			||||||
                <a class="dropdown-toggle url disabled visible-desktop menu-url" data-url="#how" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}<span class="caret"></span></a>
 | 
					                <a class="dropdown-toggle url disabled visible-desktop menu-url" data-url="#how" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Highlights" %}<span class="caret"></span></a>
 | 
				
			||||||
			<ul class="dropdown-menu">
 | 
					            <ul class="dropdown-menu">
 | 
				
			||||||
				<li><a class="url menu-url" data-url="#your" href="#your">{% trans "Scale out" %}</a></li>
 | 
					                <li><a class="url menu-url" data-url="#your" href="#your">{% trans "Scale out" %}</a></li>
 | 
				
			||||||
				<li><a class="url menu-url" data-url="#our" href="#our">{% trans "Reliable and light" %}</a></li>
 | 
					                <li><a class="url menu-url" data-url="#our" href="#our">{% trans "Reliable and light" %}</a></li>
 | 
				
			||||||
				<li> <a class="url menu-url" data-url="#price" href="#price">{% trans "Order VM" %}</a></li>
 | 
					                <li> <a class="url menu-url" data-url="#price" href="#price">{% trans "Order VM" %}</a></li>
 | 
				
			||||||
			</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 class="nav-language">
 | 
					 | 
				
			||||||
				<div class="select-language">
 | 
					 | 
				
			||||||
				{% if LANGUAGE_CODE == 'en-us'%}
 | 
					 | 
				
			||||||
				<span>English</span>
 | 
					 | 
				
			||||||
				{% else %}
 | 
					 | 
				
			||||||
				<span>Deutsch</span>
 | 
					 | 
				
			||||||
				{% endif %}
 | 
					 | 
				
			||||||
				<i class="fa fa-globe" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
				</div>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<div class="drop-language">
 | 
					        <li>
 | 
				
			||||||
				{% if LANGUAGE_CODE == 'en-us'%}
 | 
					          {% if LANGUAGE_CODE == 'en-us'%}
 | 
				
			||||||
				<a href="{% change_lang 'de' %}">Deutsch</a>
 | 
					            <a class="on-hover-border" href="{% change_lang 'de' %}">Deutsch  <i class="fa fa-globe" aria-hidden="true"></i></a>
 | 
				
			||||||
				{% else %}
 | 
					          {% else %}
 | 
				
			||||||
				<a href="{% change_lang 'en-us' %}" >English</a>
 | 
					            <a class="on-hover-border" href="{% change_lang 'en-us' %}">English  <i class="fa fa-globe" aria-hidden="true"></i></a>
 | 
				
			||||||
				{% endif %}
 | 
					          {% endif %}
 | 
				
			||||||
				</div>
 | 
					        </li>
 | 
				
			||||||
 | 
					        {% comment %}
 | 
				
			||||||
			</li>
 | 
					        <!-- to be used when more than one option for language -->
 | 
				
			||||||
        </ul>
 | 
					        <li class="nav-language">
 | 
				
			||||||
  </div><!-- /.navbar-collapse -->
 | 
					          <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'%}
 | 
				
			||||||
 | 
					                <span>English</span>
 | 
				
			||||||
 | 
					              {% else %}
 | 
				
			||||||
 | 
					                <span>Deutsch</span>
 | 
				
			||||||
 | 
					              {% endif %}
 | 
				
			||||||
 | 
					              <i class="fa fa-globe" aria-hidden="true"></i>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <ul class="dropdown-menu drop-language dropdown-menu-right">
 | 
				
			||||||
 | 
					              {% if LANGUAGE_CODE == 'en-us'%}
 | 
				
			||||||
 | 
					                <li><a class="url" href="{% change_lang 'de' %}">Deutsch</a></li>
 | 
				
			||||||
 | 
					              {% else %}
 | 
				
			||||||
 | 
					                <li><a class="url" href="{% change_lang 'en-us' %}">English</a></li>
 | 
				
			||||||
 | 
					              {% endif %}
 | 
				
			||||||
 | 
					            </ul>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					        {% endcomment %}
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <!-- /.navbar-collapse -->
 | 
				
			||||||
  </div>
 | 
					  </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,9 +521,31 @@ 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:
 | 
				
			||||||
    from .local import * # flake8: noqa
 | 
					    from .local import *  # flake8: noqa
 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
    from .prod import * # flake8: noqa
 | 
					    from .prod import *  # flake8: noqa
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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 %}
 | 
				
			||||||
        {% include "datacenterlight/includes/_footer.html" %}
 | 
					        <div class="footer-light">
 | 
				
			||||||
 | 
					            {% 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…
	
	Add table
		Add a link
		
	
		Reference in a new issue