Merge branch 'master' into task/4379/price_without_vat
This commit is contained in:
		
				commit
				
					
						b9d44b510f
					
				
			
		
					 13 changed files with 65 additions and 39 deletions
				
			
		|  | @ -1,3 +1,9 @@ | ||||||
|  | 1.6.5: 2018-04-08 | ||||||
|  |     * #4396: [ungleich] add favicon to ungleich blog | ||||||
|  |     * #4327: [dcl] fix navbar logo repeat | ||||||
|  |     * bgfix: [hosting] fix broken footer links | ||||||
|  |     * bgfix: [dcl] remove ghost migrations from squashed migration | ||||||
|  |     * bgfix: [cms] redirect multi-tenant urls to /cms also | ||||||
| 1.6.4: 2018-04-06 | 1.6.4: 2018-04-06 | ||||||
|     * #4362: [cms] Fix the need of dummy home page for different CMS-based sites |     * #4362: [cms] Fix the need of dummy home page for different CMS-based sites | ||||||
| 1.6.3: 2018-04-05 | 1.6.3: 2018-04-05 | ||||||
|  |  | ||||||
|  | @ -8,8 +8,6 @@ import django.db.models.deletion | ||||||
| 
 | 
 | ||||||
| class Migration(migrations.Migration): | class Migration(migrations.Migration): | ||||||
| 
 | 
 | ||||||
|     replaces = [('datacenterlight', '0018_auto_20180403_1930'), ('datacenterlight', '0019_auto_20180403_2054')] |  | ||||||
| 
 |  | ||||||
|     dependencies = [ |     dependencies = [ | ||||||
|         ('datacenterlight', '0017_auto_20180329_0056'), |         ('datacenterlight', '0017_auto_20180329_0056'), | ||||||
|         ('sites', '0002_alter_domain_unique'), |         ('sites', '0002_alter_domain_unique'), | ||||||
|  |  | ||||||
|  | @ -74,6 +74,10 @@ a.list-group-item-danger.active:focus { | ||||||
|   padding: 10px; |   padding: 10px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .navbar-brand > img { | ||||||
|  |   height: 100%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #logoWhite, | #logoWhite, | ||||||
| .navbar-transparent #logoBlack { | .navbar-transparent #logoBlack { | ||||||
|   display: none; |   display: none; | ||||||
|  | @ -82,7 +86,6 @@ a.list-group-item-danger.active:focus { | ||||||
| #logoBlack, | #logoBlack, | ||||||
| .navbar-transparent #logoWhite { | .navbar-transparent #logoWhite { | ||||||
|   display: block; |   display: block; | ||||||
|   width: 220px; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @media (min-width: 768px) { | @media (min-width: 768px) { | ||||||
|  |  | ||||||
|  | @ -89,10 +89,6 @@ textarea { | ||||||
|   border-radius: 6px; |   border-radius: 6px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .navbar-brand > img { |  | ||||||
|   max-height: 30px; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @media (max-width: 767px) { | @media (max-width: 767px) { | ||||||
|   .navbar-default .navbar-nav>li>a{ |   .navbar-default .navbar-nav>li>a{ | ||||||
|     font-weight: 400; |     font-weight: 400; | ||||||
|  |  | ||||||
|  | @ -4,15 +4,15 @@ | ||||||
|     <div class="container"> |     <div class="container"> | ||||||
|         <ul class="list-inline"> |         <ul class="list-inline"> | ||||||
|             <li> |             <li> | ||||||
|                <a class="url-init" href="{% url 'datacenterlight:index' %}">{% trans "Home" %}</a> |                <a class="url-init" href="https://{{MULTISITE_CMS_FALLBACK}}">{% trans "Home" %}</a> | ||||||
|             </li> |             </li> | ||||||
|             <li class="footer-menu-divider">⋅</li> |             <li class="footer-menu-divider">⋅</li> | ||||||
|             <li> |             <li> | ||||||
|                 <a class="url-init" href="{% url 'datacenterlight:index' %}#contact">{% trans "Contact" %}</a> |                 <a class="url-init" href="https://{{MULTISITE_CMS_FALLBACK}}#contact">{% trans "Contact" %}</a> | ||||||
|             </li> |             </li> | ||||||
|             <li class="footer-menu-divider">⋅</li> |             <li class="footer-menu-divider">⋅</li> | ||||||
|             <li> |             <li> | ||||||
|                 <a class="url-init" href="/cms/terms-of-service">{% trans "Terms of Service" %}</a> |                 <a class="url-init" href="https://{{MULTISITE_CMS_FALLBACK}}/cms/terms-of-service">{% trans "Terms of Service" %}</a> | ||||||
|             </li> |             </li> | ||||||
|         </ul> |         </ul> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ urlpatterns = [ | ||||||
|     url(r'^g/$', IndexView.as_view(), name='index_g'), |     url(r'^g/$', IndexView.as_view(), name='index_g'), | ||||||
|     url(r'^f/$', IndexView.as_view(), name='index_f'), |     url(r'^f/$', IndexView.as_view(), name='index_f'), | ||||||
|     url(r'^l/$', IndexView.as_view(), name='index_l'), |     url(r'^l/$', IndexView.as_view(), name='index_l'), | ||||||
|     url(r'^new/$', RedirectView.as_view(url='/cms/datacenterlight/'), |     url(r'^new/$', RedirectView.as_view(url='/cms/'), | ||||||
|         name='cms_index'), |         name='cms_index'), | ||||||
|     url(r'^whydatacenterlight/?$', WhyDataCenterLightView.as_view(), |     url(r'^whydatacenterlight/?$', WhyDataCenterLightView.as_view(), | ||||||
|         name='whydatacenterlight'), |         name='whydatacenterlight'), | ||||||
|  |  | ||||||
|  | @ -57,7 +57,7 @@ | ||||||
|       ga('send', 'pageview'); |       ga('send', 'pageview'); | ||||||
| 
 | 
 | ||||||
|     </script> |     </script> | ||||||
|     <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon"> |     <link rel="shortcut icon" href="{% static 'digitalglarus/img/favicon.ico' %}" type="image/x-icon"> | ||||||
|     <style id="igtranslator-color" type="text/css"></style> |     <style id="igtranslator-color" type="text/css"></style> | ||||||
|     <style type="text/css"> |     <style type="text/css"> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| from django.shortcuts import redirect | from django.shortcuts import redirect | ||||||
|  | from django.conf import settings | ||||||
| from django.core.urlresolvers import reverse | from django.core.urlresolvers import reverse | ||||||
| 
 | 
 | ||||||
| from opennebula_api.serializers import VirtualMachineTemplateSerializer | from opennebula_api.serializers import VirtualMachineTemplateSerializer | ||||||
|  | @ -24,3 +25,10 @@ class ProcessVMSelectionMixin(object): | ||||||
|             request.session['next'] = reverse('hosting:payment') |             request.session['next'] = reverse('hosting:payment') | ||||||
|             return redirect(reverse('hosting:login')) |             return redirect(reverse('hosting:login')) | ||||||
|         return redirect(reverse('hosting:payment')) |         return redirect(reverse('hosting:payment')) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class HostingContextMixin(object): | ||||||
|  |     def get_context_data(self, **kwargs): | ||||||
|  |         context = super().get_context_data(**kwargs) | ||||||
|  |         context['MULTISITE_CMS_FALLBACK'] = settings.MULTISITE_CMS_FALLBACK | ||||||
|  |         return context | ||||||
|  |  | ||||||
|  | @ -54,7 +54,7 @@ from .forms import ( | ||||||
|     HostingUserSignupForm, HostingUserLoginForm, UserHostingKeyForm, |     HostingUserSignupForm, HostingUserLoginForm, UserHostingKeyForm, | ||||||
|     generate_ssh_key_name |     generate_ssh_key_name | ||||||
| ) | ) | ||||||
| from .mixins import ProcessVMSelectionMixin | from .mixins import ProcessVMSelectionMixin, HostingContextMixin | ||||||
| from .models import ( | from .models import ( | ||||||
|     HostingOrder, HostingBill, HostingPlan, UserHostingKey, VMDetail |     HostingOrder, HostingBill, HostingPlan, UserHostingKey, VMDetail | ||||||
| ) | ) | ||||||
|  | @ -213,13 +213,13 @@ class IndexView(View): | ||||||
|         return render(request, self.template_name, context) |         return render(request, self.template_name, context) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class LoginView(LoginViewMixin): | class LoginView(HostingContextMixin, LoginViewMixin): | ||||||
|     template_name = "hosting/login.html" |     template_name = "hosting/login.html" | ||||||
|     form_class = HostingUserLoginForm |     form_class = HostingUserLoginForm | ||||||
|     success_url = reverse_lazy('hosting:dashboard') |     success_url = reverse_lazy('hosting:dashboard') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SignupView(CreateView): | class SignupView(HostingContextMixin, CreateView): | ||||||
|     template_name = 'hosting/signup.html' |     template_name = 'hosting/signup.html' | ||||||
|     form_class = HostingUserSignupForm |     form_class = HostingUserSignupForm | ||||||
|     model = CustomUser |     model = CustomUser | ||||||
|  | @ -248,7 +248,7 @@ class SignupView(CreateView): | ||||||
|         return super(SignupView, self).get(request, *args, **kwargs) |         return super(SignupView, self).get(request, *args, **kwargs) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SignupValidateView(TemplateView): | class SignupValidateView(HostingContextMixin, TemplateView): | ||||||
|     template_name = "hosting/signup_validate.html" |     template_name = "hosting/signup_validate.html" | ||||||
| 
 | 
 | ||||||
|     def get_context_data(self, **kwargs): |     def get_context_data(self, **kwargs): | ||||||
|  | @ -272,7 +272,7 @@ class SignupValidateView(TemplateView): | ||||||
|         return context |         return context | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SignupValidatedView(SignupValidateView): | class SignupValidatedView(SignupValidateView, HostingContextMixin): | ||||||
|     template_name = "hosting/signup_validate.html" |     template_name = "hosting/signup_validate.html" | ||||||
| 
 | 
 | ||||||
|     def get_context_data(self, **kwargs): |     def get_context_data(self, **kwargs): | ||||||
|  | @ -307,7 +307,7 @@ class SignupValidatedView(SignupValidateView): | ||||||
|             email.send() |             email.send() | ||||||
|         else: |         else: | ||||||
|             home_url = '<a href="' + \ |             home_url = '<a href="' + \ | ||||||
|                        reverse('datacenterlight:index') + \ |                        reverse('datacenterlight:cms_index') + \ | ||||||
|                        '">Data Center Light</a>' |                        '">Data Center Light</a>' | ||||||
|             message = '{sorry_message} <br />{go_back_to} {hurl}'.format( |             message = '{sorry_message} <br />{go_back_to} {hurl}'.format( | ||||||
|                 sorry_message=_("Sorry. Your request is invalid."), |                 sorry_message=_("Sorry. Your request is invalid."), | ||||||
|  | @ -325,7 +325,8 @@ class SignupValidatedView(SignupValidateView): | ||||||
|         return super(SignupValidatedView, self).get(request, *args, **kwargs) |         return super(SignupValidatedView, self).get(request, *args, **kwargs) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ResendActivationEmailView(ResendActivationLinkViewMixin): | class ResendActivationEmailView(HostingContextMixin, | ||||||
|  |                                 ResendActivationLinkViewMixin): | ||||||
|     template_name = 'hosting/resend_activation_link.html' |     template_name = 'hosting/resend_activation_link.html' | ||||||
|     form_class = ResendActivationEmailForm |     form_class = ResendActivationEmailForm | ||||||
|     success_url = reverse_lazy('hosting:login') |     success_url = reverse_lazy('hosting:login') | ||||||
|  | @ -333,7 +334,7 @@ class ResendActivationEmailView(ResendActivationLinkViewMixin): | ||||||
|     email_template_name = 'user_activation' |     email_template_name = 'user_activation' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class PasswordResetView(PasswordResetViewMixin): | class PasswordResetView(HostingContextMixin, PasswordResetViewMixin): | ||||||
|     site = 'dcl' |     site = 'dcl' | ||||||
|     template_name = 'hosting/reset_password.html' |     template_name = 'hosting/reset_password.html' | ||||||
|     form_class = PasswordResetRequestForm |     form_class = PasswordResetRequestForm | ||||||
|  | @ -341,7 +342,8 @@ class PasswordResetView(PasswordResetViewMixin): | ||||||
|     template_email_path = 'hosting/emails/' |     template_email_path = 'hosting/emails/' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class PasswordResetConfirmView(PasswordResetConfirmViewMixin): | class PasswordResetConfirmView(HostingContextMixin, | ||||||
|  |                                PasswordResetConfirmViewMixin): | ||||||
|     template_name = 'hosting/confirm_reset_password.html' |     template_name = 'hosting/confirm_reset_password.html' | ||||||
|     success_url = reverse_lazy('hosting:login') |     success_url = reverse_lazy('hosting:login') | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -35,6 +35,8 @@ | ||||||
|     {% render_block "external-css" %} |     {% render_block "external-css" %} | ||||||
|     {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %} |     {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %} | ||||||
| 
 | 
 | ||||||
|  |     <link rel="shortcut icon" href="{% static 'ungleich_page/img/favicon.ico' %}"/> | ||||||
|  | 
 | ||||||
|     <!-- Google analytics --> |     <!-- Google analytics --> | ||||||
|     {% include "google_analytics.html" %} |     {% include "google_analytics.html" %} | ||||||
|     <!-- End Google Analytics --> |     <!-- End Google Analytics --> | ||||||
|  |  | ||||||
|  | @ -1,9 +1,11 @@ | ||||||
| .topnav img { | #logoWhite, | ||||||
|     height: 100%; | .navbar-transparent #logoBlack { | ||||||
|  |   display: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #logoBlack, | ||||||
| .navbar-transparent #logoWhite { | .navbar-transparent #logoWhite { | ||||||
|     width: 140px; |   display: block; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .navbar-default { | .navbar-default { | ||||||
|  | @ -12,6 +14,15 @@ | ||||||
|     padding: 5px; |     padding: 5px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @media (max-width: 767px) { | ||||||
|  |     .navbar-transparent #logoBlack { | ||||||
|  |       display: block; | ||||||
|  |     } | ||||||
|  |     .navbar-transparent #logoWhite { | ||||||
|  |       display: none; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| @media (min-width: 768px) { | @media (min-width: 768px) { | ||||||
|     .navbar-transparent { |     .navbar-transparent { | ||||||
|         padding: 20px; |         padding: 20px; | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
|     <!-- External Fonts --> |     <!-- External Fonts --> | ||||||
|     <link href="//fonts.googleapis.com/css?family=Lato:300,400,600,700" rel="stylesheet" type="text/css"> |     <link href="//fonts.googleapis.com/css?family=Lato:300,400,600,700" rel="stylesheet" type="text/css"> | ||||||
| 
 | 
 | ||||||
|     <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" /> |     <link rel="shortcut icon" href="{% static 'ungleich_page/img/favicon.ico' %}" type="image/x-icon" /> | ||||||
| 
 | 
 | ||||||
|     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> |     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> | ||||||
|     <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> |     <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | ||||||
|  |  | ||||||
|  | @ -50,8 +50,8 @@ | ||||||
|               <span class="icon-bar"></span> |               <span class="icon-bar"></span> | ||||||
|               <span class="icon-bar"></span> |               <span class="icon-bar"></span> | ||||||
|             </button> |             </button> | ||||||
|             <a href="{% url 'ungleich_page:landing' %}" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'ungleich_page/img/logo_black.svg' %}"></a> |             <a href="https://ungleich.ch" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'ungleich_page/img/logo_black.svg' %}"></a> | ||||||
|             <a href="{% url 'ungleich_page:landing' %}" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'ungleich_page/img/logo_white.svg' %}"></a> |             <a href="https://ungleich.ch" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'ungleich_page/img/logo_white.svg' %}"></a> | ||||||
|         </div> |         </div> | ||||||
|         <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> |         <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> | ||||||
|           <!-- Start Navbar collapse--> |           <!-- Start Navbar collapse--> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue