Merge branch 'master' into task/3553
This commit is contained in:
		
				commit
				
					
						6b77d2eaff
					
				
			
		
					 11 changed files with 73 additions and 44 deletions
				
			
		
							
								
								
									
										18
									
								
								Changelog
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								Changelog
									
										
									
									
									
								
							|  | @ -1,20 +1,22 @@ | ||||||
|  | 1.0.22: 2017-07-28 | ||||||
|  |     * #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 | ||||||
| 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'), | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -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))] | ||||||
|  |  | ||||||
|  | @ -714,3 +714,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