Merge branch 'master' into task/4362/fix_need_of_cms_dummy_page
This commit is contained in:
		
				commit
				
					
						2d5927bc31
					
				
			
		
					 13 changed files with 112 additions and 29 deletions
				
			
		|  | @ -9,6 +9,7 @@ env: | |||
| install: "pip install -r requirements.txt" | ||||
| script: | ||||
| - flake8 | ||||
| - python manage.py compilemessages | ||||
| - python manage.py test -v 3 | ||||
| # - coverage run --source='.' manage.py test dynamicweb -v 3 | ||||
| # - coverage report | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| 1.6.2: 2018-04-01: | ||||
| 1.6.3: 2018-04-05 | ||||
|     * #4377: [cms] header btn external link fix | ||||
|     * #4378: [dcl cms] update CMS Integration to have different content for different domains | ||||
| 1.6.2: 2018-04-01 | ||||
|     * bgfix: [dcl] Fix user activation email style; add/correct some DE text | ||||
|     * #4373: [dcl] update footer menu for pw reset/login/signup/activation request pages | ||||
| 1.6.1: 2018-03-28 | ||||
|  | @ -70,7 +73,7 @@ | |||
|     * [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts | ||||
|     * [cms] Remove <p> tag for ungleich cms customer item template | ||||
| 1.2.12: 2017-12-09 | ||||
|     * #3594: [digitalglarus] Remove white scroll bar on the right in mobile     | ||||
|     * #3594: [digitalglarus] Remove white scroll bar on the right in mobile | ||||
|     * #3905: [ungleich] Update ungleich.ch header into a slider | ||||
|     * #3968: [ungleich] Fix navbar logo alignment | ||||
|     *        [all] Enable logging custom modules | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ from .cms_models import CMSIntegration | |||
| 
 | ||||
| 
 | ||||
| class CMSIntegrationAdmin(PlaceholderAdminMixin, admin.ModelAdmin): | ||||
|     pass | ||||
|     list_display = ('name', 'domain') | ||||
| 
 | ||||
| 
 | ||||
| admin.site.register(CMSIntegration, CMSIntegrationAdmin) | ||||
|  |  | |||
|  | @ -1,14 +1,15 @@ | |||
| from cms.models.fields import PlaceholderField | ||||
| from cms.models.pluginmodel import CMSPlugin | ||||
| from django.contrib.sites.models import Site | ||||
| from django.db import models | ||||
| from django.utils.safestring import mark_safe | ||||
| from djangocms_text_ckeditor.fields import HTMLField | ||||
| from filer.fields.image import FilerImageField | ||||
| from cms.models.fields import PlaceholderField | ||||
| 
 | ||||
| 
 | ||||
| class CMSIntegration(models.Model): | ||||
|     name = models.CharField( | ||||
|         max_length=100, unique=True, default='default', | ||||
|         max_length=100, default='default', | ||||
|         help_text=( | ||||
|             'A unique name for the Integration. This name will be used to ' | ||||
|             'fetch the Integration into pages' | ||||
|  | @ -20,6 +21,10 @@ class CMSIntegration(models.Model): | |||
|     navbar_placeholder = PlaceholderField( | ||||
|         'datacenterlight_navbar', related_name='dcl-navbar-placeholder+' | ||||
|     ) | ||||
|     domain = models.ForeignKey(Site, null=True, blank=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         unique_together = ('name', 'domain') | ||||
| 
 | ||||
|     def __str__(self): | ||||
|         return self.name | ||||
|  |  | |||
|  | @ -6,8 +6,16 @@ class Command(BaseCommand): | |||
|     help = '''Creates cms integration objects for datacenterlight''' | ||||
| 
 | ||||
|     def handle(self, *args, **options): | ||||
|         obj, created = CMSIntegration.objects.get_or_create(name='default') | ||||
|         self.create_cms_integration() | ||||
| 
 | ||||
|     def create_cms_integration(self, site=None): | ||||
|         obj, created = CMSIntegration.objects.get_or_create( | ||||
|             name='default', domain=site | ||||
|         ) | ||||
|         domain_name = site.domain if site else 'All Sites' | ||||
|         if created: | ||||
|             print('created the default CMSIntegration object') | ||||
|             print('created the default CMSIntegration object for', domain_name) | ||||
|         else: | ||||
|             print('default CMSIntegration object already exists') | ||||
|             print( | ||||
|                 'default CMSIntegration object already exists for', domain_name | ||||
|             ) | ||||
|  |  | |||
							
								
								
									
										43
									
								
								datacenterlight/migrations/0018_auto_20180403_1930.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								datacenterlight/migrations/0018_auto_20180403_1930.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # Generated by Django 1.9.4 on 2018-04-03 17:08 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| import django.db.models.deletion | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     replaces = [('datacenterlight', '0018_auto_20180403_1930'), ('datacenterlight', '0019_auto_20180403_2054')] | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('datacenterlight', '0017_auto_20180329_0056'), | ||||
|         ('sites', '0002_alter_domain_unique'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.AlterField( | ||||
|             model_name='dclcontactpluginmodel', | ||||
|             name='organization_name', | ||||
|             field=models.CharField(blank=True, default='ungleich glarus ag', max_length=100), | ||||
|         ), | ||||
|         migrations.AlterField( | ||||
|             model_name='dclfooterpluginmodel', | ||||
|             name='copyright_label', | ||||
|             field=models.CharField(blank=True, default='ungleich glarus ag', help_text='Name of the company alongside the copyright year', max_length=100), | ||||
|         ), | ||||
|         migrations.AddField( | ||||
|             model_name='cmsintegration', | ||||
|             name='domain', | ||||
|             field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.Site'), | ||||
|         ), | ||||
|         migrations.AlterField( | ||||
|             model_name='cmsintegration', | ||||
|             name='name', | ||||
|             field=models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100), | ||||
|         ), | ||||
|         migrations.AlterUniqueTogether( | ||||
|             name='cmsintegration', | ||||
|             unique_together=set([('name', 'domain')]), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -74,6 +74,17 @@ a.list-group-item-danger.active:focus { | |||
|   padding: 10px; | ||||
| } | ||||
| 
 | ||||
| #logoWhite, | ||||
| .navbar-transparent #logoBlack { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| #logoBlack, | ||||
| .navbar-transparent #logoWhite { | ||||
|   display: block; | ||||
|   width: 220px; | ||||
| } | ||||
| 
 | ||||
| @media (min-width: 768px) { | ||||
|   .navbar-right { | ||||
|     margin-right: 10px; | ||||
|  |  | |||
|  | @ -1,3 +1,12 @@ | |||
| .navbar-transparent #logoWhite { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| .navbar-transparent #logoBlack { | ||||
|   display: block; | ||||
|   width: 220px; | ||||
| } | ||||
| 
 | ||||
| .topnav .navbar-fixed-top .navbar-collapse { | ||||
|   max-height: 740px; | ||||
| } | ||||
|  |  | |||
|  | @ -141,17 +141,6 @@ textarea { | |||
|   color: #fff; | ||||
| } | ||||
| 
 | ||||
| #logoWhite, | ||||
| .navbar-transparent #logoBlack { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| #logoBlack, | ||||
| .navbar-transparent #logoWhite { | ||||
|   display: block; | ||||
|   width: 220px; | ||||
| } | ||||
| 
 | ||||
| .nav-language { | ||||
|   position: relative; | ||||
| } | ||||
|  |  | |||
|  | @ -113,10 +113,10 @@ | |||
|             } else if (href) { | ||||
|                 var path = $(this).prop('href').split('#'); | ||||
|                 var currentPath = window.location.origin + window.location.pathname; | ||||
|                 if (!path[1]) { | ||||
|                     window.location = href; | ||||
|                 } else if (currentPath == path[0]) { | ||||
|                 if (currentPath == path[0] && path[1]) { | ||||
|                     scrollToElement('#' + path[1]); | ||||
|                 } else { | ||||
|                     window.location = href; | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|  |  | |||
|  | @ -11,11 +11,11 @@ | |||
|       <span class="icon-bar"></span> | ||||
|     </button> | ||||
|     {% if instance.logo_dark or instance.logo_light %} | ||||
|       <a href="{{ instance.logo_url|default:'/' }}" id="logoBlack" class="navbar-brand topnav"><img src="{{ instance.get_logo_dark }}"></a> | ||||
|       <a href="{{ instance.logo_url|default:'/' }}" id="logoWhite" class="navbar-brand topnav"><img src="{{ instance.get_logo_light }}"></a> | ||||
|       <a href="{{ instance.logo_url|default:'/' }}" id="logoBlack" class="navbar-brand"><img src="{{ instance.get_logo_dark }}"></a> | ||||
|       <a href="{{ instance.logo_url|default:'/' }}" id="logoWhite" class="navbar-brand"><img src="{{ instance.get_logo_light }}"></a> | ||||
|     {% else %} | ||||
|       <a href="/" id="logoBlack" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a> | ||||
|       <a href="/" id="logoWhite" class="navbar-brand topnav"><img src="{% static 'datacenterlight/img/logo_white.svg' %}"></a> | ||||
|       <a href="/" id="logoBlack" class="navbar-brand"><img src="{% static 'datacenterlight/img/logo_black.svg' %}"></a> | ||||
|       <a href="/" id="logoWhite" class="navbar-brand"><img src="{% static 'datacenterlight/img/logo_white.svg' %}"></a> | ||||
|     {% endif %} | ||||
|   </div> | ||||
|   <div class="collapse navbar-collapse" id="dcl-topnav"> | ||||
|  |  | |||
							
								
								
									
										14
									
								
								datacenterlight/utils.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								datacenterlight/utils.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| from django.contrib.sites.models import Site | ||||
| 
 | ||||
| from .cms_models import CMSIntegration | ||||
| 
 | ||||
| 
 | ||||
| def get_cms_integration(name): | ||||
|     current_site = Site.objects.get_current() | ||||
|     try: | ||||
|         cms_integration = CMSIntegration.objects.get( | ||||
|             name=name, domain=current_site | ||||
|         ) | ||||
|     except CMSIntegration.DoesNotExist: | ||||
|         cms_integration = CMSIntegration.objects.get(name=name, domain=None) | ||||
|     return cms_integration | ||||
|  | @ -24,7 +24,7 @@ from utils.stripe_utils import StripeUtils | |||
| from utils.tasks import send_plain_email_task | ||||
| from .forms import ContactForm | ||||
| from .models import VMTemplate | ||||
| from .cms_models import CMSIntegration | ||||
| from .utils import get_cms_integration | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
|  | @ -220,7 +220,7 @@ class PaymentOrderView(FormView): | |||
|             'site_url': reverse('datacenterlight:index'), | ||||
|             'login_form': HostingUserLoginForm(prefix='login_form'), | ||||
|             'billing_address_form': billing_address_form, | ||||
|             'cms_integration': CMSIntegration.objects.get(name='default') | ||||
|             'cms_integration': get_cms_integration('default') | ||||
|         }) | ||||
|         return context | ||||
| 
 | ||||
|  | @ -358,7 +358,7 @@ class OrderConfirmationView(DetailView): | |||
|             'billing_address_data': ( | ||||
|                 request.session.get('billing_address_data') | ||||
|             ), | ||||
|             'cms_integration': CMSIntegration.objects.get(name='default') | ||||
|             'cms_integration': get_cms_integration('default') | ||||
|         } | ||||
|         return render(request, self.template_name, context) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue