Merge pull request #537 from pcoder/task/3843/generic_ungleich_cms_template
Task/3843/generic ungleich cms template
This commit is contained in:
		
				commit
				
					
						4034487ee4
					
				
			
		
					 28 changed files with 841 additions and 16 deletions
				
			
		|  | @ -31,3 +31,14 @@ def get_value_from_dict(dict_data, key): | ||||||
|         return dict_data.get(key) |         return dict_data.get(key) | ||||||
|     else: |     else: | ||||||
|         return "" |         return "" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @register.filter('multiply') | ||||||
|  | def multiply(value, arg): | ||||||
|  |     """ | ||||||
|  |     usage: {{ quantity|multiply:price }} | ||||||
|  |     :param value: | ||||||
|  |     :param arg: | ||||||
|  |     :return: | ||||||
|  |     """ | ||||||
|  |     return value*arg | ||||||
|  |  | ||||||
|  | @ -219,6 +219,7 @@ CMS_TEMPLATES = ( | ||||||
|     # dcl |     # dcl | ||||||
|     ('datacenterlight/cms_page.html', gettext('Data Center Light')), |     ('datacenterlight/cms_page.html', gettext('Data Center Light')), | ||||||
|     ('ungleich_page/glasfaser_cms_page.html', gettext('Glasfaser')), |     ('ungleich_page/glasfaser_cms_page.html', gettext('Glasfaser')), | ||||||
|  |     ('ungleich_page/ungleich_cms_page.html', gettext('ungleich')), | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| DATABASES = { | DATABASES = { | ||||||
|  |  | ||||||
|  | @ -3,7 +3,9 @@ from cms.plugin_pool import plugin_pool | ||||||
| 
 | 
 | ||||||
| from .models import ( | from .models import ( | ||||||
|     UngelichContactUsSection, UngelichTextSection, Service, ServiceItem, |     UngelichContactUsSection, UngelichTextSection, Service, ServiceItem, | ||||||
|     About, AboutItem, SectionWithImage |     About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader, | ||||||
|  |     UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer, | ||||||
|  |     UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -145,3 +147,157 @@ class GlasfaserAboutItemPlugin(CMSPluginBase): | ||||||
|         ) |         ) | ||||||
|         context['instance'] = instance |         context['instance'] = instance | ||||||
|         return context |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichServicesPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Services Plugin" | ||||||
|  |     model = Service | ||||||
|  |     render_template = "ungleich_page/ungleich/section_services.html" | ||||||
|  |     cache = False | ||||||
|  |     allow_children = True | ||||||
|  |     child_classes = ['UngleichServicesItemPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context['service_instance'] = instance | ||||||
|  |         context['section_id'] = get_section_id(instance, 'services') | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichServicesItemPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Service Item Plugin" | ||||||
|  |     model = UngleichServiceItem | ||||||
|  |     render_template = "ungleich_page/ungleich/_services_item.html" | ||||||
|  |     cache = False | ||||||
|  |     require_parent = True | ||||||
|  |     parent_classes = ['UngleichServicesPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context = super(UngleichServicesItemPlugin, self).render( | ||||||
|  |             context, instance, placeholder | ||||||
|  |         ) | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichHeaderWithTextAndImagePlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Header with Text and Image Plugin" | ||||||
|  |     model = UngleichSimpleHeader | ||||||
|  |     render_template = "ungleich_page/ungleich/header.html" | ||||||
|  |     cache = False | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichHeaderWithTextAndImageSliderPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Header with Text and Image Slider Plugin" | ||||||
|  |     model = UngleichHeader | ||||||
|  |     render_template = "ungleich_page/ungleich/header_with_slider.html" | ||||||
|  |     cache = False | ||||||
|  |     allow_children = True | ||||||
|  |     child_classes = ['UngleichHeaderItemPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichHeaderItemPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Header Item Plugin" | ||||||
|  |     model = UngleichHeaderItem | ||||||
|  |     render_template = "ungleich_page/ungleich/_header_item.html" | ||||||
|  |     cache = False | ||||||
|  |     require_parent = True | ||||||
|  |     parent_classes = ['UngleichHeaderWithTextAndImageSliderPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context = super(UngleichHeaderItemPlugin, self).render( | ||||||
|  |             context, instance, placeholder | ||||||
|  |         ) | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichProductsPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Products Plugin" | ||||||
|  |     model = UngleichProduct | ||||||
|  |     render_template = "ungleich_page/ungleich/section_products.html" | ||||||
|  |     cache = False | ||||||
|  |     allow_children = True | ||||||
|  |     child_classes = ['UngleichProductsItemPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context['product_instance'] = instance | ||||||
|  |         context['section_id'] = get_section_id(instance, 'products') | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichProductsItemPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Product Item Plugin" | ||||||
|  |     model = UngleichProductItem | ||||||
|  |     render_template = "ungleich_page/ungleich/_products_item.html" | ||||||
|  |     cache = False | ||||||
|  |     require_parent = True | ||||||
|  |     parent_classes = ['UngleichProductsPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context = super(UngleichProductsItemPlugin, self).render( | ||||||
|  |             context, instance, placeholder | ||||||
|  |         ) | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichCustomerSectionPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Customer Section Plugin" | ||||||
|  |     model = UngleichCustomer | ||||||
|  |     render_template = "ungleich_page/ungleich/section_customers.html" | ||||||
|  |     cache = False | ||||||
|  |     allow_children = True | ||||||
|  |     child_classes = ['UngleichCustomerItemPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context['customer_instance'] = instance | ||||||
|  |         context['section_id'] = get_section_id(instance, 'customer') | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichCustomerItemPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich Customer Item Plugin" | ||||||
|  |     model = UngleichCustomerItem | ||||||
|  |     render_template = "ungleich_page/ungleich/_customer_item.html" | ||||||
|  |     cache = False | ||||||
|  |     require_parent = True | ||||||
|  |     parent_classes = ['UngleichCustomerSectionPlugin'] | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context = super(UngleichCustomerItemPlugin, self).render( | ||||||
|  |             context, instance, placeholder | ||||||
|  |         ) | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @plugin_pool.register_plugin | ||||||
|  | class UngleichHTMLPlugin(CMSPluginBase): | ||||||
|  |     name = "ungleich HTML Plugin" | ||||||
|  |     model = UngleichHTMLOnly | ||||||
|  |     render_template = "ungleich_page/ungleich/html_block.html" | ||||||
|  |     cache = False | ||||||
|  | 
 | ||||||
|  |     def render(self, context, instance, placeholder): | ||||||
|  |         context = super(UngleichHTMLPlugin, self).render( | ||||||
|  |             context, instance, placeholder | ||||||
|  |         ) | ||||||
|  |         context['instance'] = instance | ||||||
|  |         return context | ||||||
|  |  | ||||||
							
								
								
									
										21
									
								
								ungleich_page/migrations/0007_auto_20171117_1011.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ungleich_page/migrations/0007_auto_20171117_1011.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-17 10:11 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | import djangocms_text_ckeditor.fields | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('ungleich_page', '0006_aboutitem_link_url'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name='ungelichpicture', | ||||||
|  |             name='title', | ||||||
|  |             field=djangocms_text_ckeditor.fields.HTMLField(), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										29
									
								
								ungleich_page/migrations/0008_ungleichserviceitem.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								ungleich_page/migrations/0008_ungleichserviceitem.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-17 18:49 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import filer.fields.image | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('filer', '0004_auto_20160328_1434'), | ||||||
|  |         ('ungleich_page', '0007_auto_20171117_1011'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichServiceItem', | ||||||
|  |             fields=[ | ||||||
|  |                 ('serviceitem_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ungleich_page.ServiceItem')), | ||||||
|  |                 ('data_replaced_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='service_item_data_replaced_image', to='filer.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('ungleich_page.serviceitem',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -0,0 +1,44 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-19 11:28 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import djangocms_text_ckeditor.fields | ||||||
|  | import filer.fields.image | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('filer', '0004_auto_20160328_1434'), | ||||||
|  |         ('cms', '0014_auto_20160404_1908'), | ||||||
|  |         ('ungleich_page', '0008_ungleichserviceitem'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichHeader', | ||||||
|  |             fields=[ | ||||||
|  |                 ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), | ||||||
|  |                 ('carousel_data_interval', models.IntegerField(default=5000)), | ||||||
|  |                 ('background_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_header_background_image', to='filer.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('cms.cmsplugin',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichHeaderItem', | ||||||
|  |             fields=[ | ||||||
|  |                 ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), | ||||||
|  |                 ('description', djangocms_text_ckeditor.fields.HTMLField()), | ||||||
|  |                 ('image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_header_item_image', to='filer.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('cms.cmsplugin',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										21
									
								
								ungleich_page/migrations/0010_auto_20171119_1404.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ungleich_page/migrations/0010_auto_20171119_1404.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-19 14:04 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | import djangocms_text_ckeditor.fields | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('ungleich_page', '0009_ungleichheader_ungleichheaderitem'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name='service', | ||||||
|  |             name='sub_title', | ||||||
|  |             field=djangocms_text_ckeditor.fields.HTMLField(), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -0,0 +1,38 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-21 19:04 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('ungleich_page', '0010_auto_20171119_1404'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichProduct', | ||||||
|  |             fields=[ | ||||||
|  |                 ('service_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ungleich_page.Service')), | ||||||
|  |                 ('section_class', models.CharField(blank=True, default='', max_length=100)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('ungleich_page.service',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichProductItem', | ||||||
|  |             fields=[ | ||||||
|  |                 ('serviceitem_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ungleich_page.ServiceItem')), | ||||||
|  |                 ('url', models.URLField(blank=True, default='', max_length=300)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('ungleich_page.serviceitem',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -0,0 +1,46 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-23 08:11 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import djangocms_text_ckeditor.fields | ||||||
|  | import filer.fields.image | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('filer', '0004_auto_20160328_1434'), | ||||||
|  |         ('cms', '0014_auto_20160404_1908'), | ||||||
|  |         ('ungleich_page', '0011_ungleichproduct_ungleichproductitem'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichCustomer', | ||||||
|  |             fields=[ | ||||||
|  |                 ('service_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ungleich_page.Service')), | ||||||
|  |                 ('section_class', models.CharField(blank=True, default='', max_length=100)), | ||||||
|  |                 ('carousel_data_interval', models.IntegerField(default=3000)), | ||||||
|  |                 ('bottom_text', djangocms_text_ckeditor.fields.HTMLField(default='<h3 class="section-subheading text-muted">*ungleich means not equal to (≠) U+2260.</h3>')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('ungleich_page.service',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichCustomerItem', | ||||||
|  |             fields=[ | ||||||
|  |                 ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), | ||||||
|  |                 ('url', models.URLField(blank=True, default='', max_length=300)), | ||||||
|  |                 ('description', djangocms_text_ckeditor.fields.HTMLField()), | ||||||
|  |                 ('image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='customer_item_image', to='filer.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('cms.cmsplugin',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										29
									
								
								ungleich_page/migrations/0013_ungleichhtmlonly.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								ungleich_page/migrations/0013_ungleichhtmlonly.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-23 11:49 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import djangocms_text_ckeditor.fields | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('cms', '0014_auto_20160404_1908'), | ||||||
|  |         ('ungleich_page', '0012_ungleichcustomer_ungleichcustomeritem'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichHTMLOnly', | ||||||
|  |             fields=[ | ||||||
|  |                 ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), | ||||||
|  |                 ('HTML', djangocms_text_ckeditor.fields.HTMLField()), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('cms.cmsplugin',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										20
									
								
								ungleich_page/migrations/0014_ungleichhtmlonly_name.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								ungleich_page/migrations/0014_ungleichhtmlonly_name.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-24 07:00 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('ungleich_page', '0013_ungleichhtmlonly'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AddField( | ||||||
|  |             model_name='ungleichhtmlonly', | ||||||
|  |             name='name', | ||||||
|  |             field=models.CharField(blank=True, default='', max_length=50), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										33
									
								
								ungleich_page/migrations/0015_ungleichsimpleheader.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								ungleich_page/migrations/0015_ungleichsimpleheader.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.4 on 2017-11-24 19:12 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import djangocms_text_ckeditor.fields | ||||||
|  | import filer.fields.image | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('filer', '0004_auto_20160328_1434'), | ||||||
|  |         ('cms', '0014_auto_20160404_1908'), | ||||||
|  |         ('ungleich_page', '0014_ungleichhtmlonly_name'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='UngleichSimpleHeader', | ||||||
|  |             fields=[ | ||||||
|  |                 ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), | ||||||
|  |                 ('text', djangocms_text_ckeditor.fields.HTMLField()), | ||||||
|  |                 ('background_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_simple_header_background_image', to='filer.Image')), | ||||||
|  |                 ('image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_simple_header_image', to='filer.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('cms.cmsplugin',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -11,7 +11,7 @@ class UngelichPicture(CMSPlugin): | ||||||
|         related_name="image", |         related_name="image", | ||||||
|         on_delete=models.SET_NULL |         on_delete=models.SET_NULL | ||||||
|     ) |     ) | ||||||
|     title = models.CharField(max_length=400) |     title = HTMLField() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class SectionWithImage(UngelichPicture): | class SectionWithImage(UngelichPicture): | ||||||
|  | @ -54,7 +54,7 @@ class UngelichTextSection(CMSPlugin): | ||||||
| class Service(CMSPlugin): | class Service(CMSPlugin): | ||||||
|     menu_text = models.CharField(max_length=100, default="", blank=True) |     menu_text = models.CharField(max_length=100, default="", blank=True) | ||||||
|     title = models.CharField(max_length=200) |     title = models.CharField(max_length=200) | ||||||
|     sub_title = models.CharField(max_length=200) |     sub_title = HTMLField() | ||||||
| 
 | 
 | ||||||
|     def __str__(self): |     def __str__(self): | ||||||
|         return self.title |         return self.title | ||||||
|  | @ -87,3 +87,84 @@ class AboutItem(UngelichPicture): | ||||||
|         return "{alignment} - {title}".format( |         return "{alignment} - {title}".format( | ||||||
|             alignment=alignment, title=self.title |             alignment=alignment, title=self.title | ||||||
|         ) |         ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichServiceItem(ServiceItem): | ||||||
|  |     data_replaced_image = FilerImageField( | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         related_name="service_item_data_replaced_image", | ||||||
|  |         on_delete=models.SET_NULL | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichSimpleHeader(CMSPlugin): | ||||||
|  |     background_image = FilerImageField( | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         related_name="ungleich_simple_header_background_image", | ||||||
|  |         on_delete=models.SET_NULL | ||||||
|  |     ) | ||||||
|  |     image = FilerImageField( | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         related_name="ungleich_simple_header_image", | ||||||
|  |         on_delete=models.SET_NULL | ||||||
|  |     ) | ||||||
|  |     text = HTMLField() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichHeader(CMSPlugin): | ||||||
|  |     background_image = FilerImageField( | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         related_name="ungleich_header_background_image", | ||||||
|  |         on_delete=models.SET_NULL | ||||||
|  |     ) | ||||||
|  |     carousel_data_interval = models.IntegerField(default=5000) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichHeaderItem(CMSPlugin): | ||||||
|  |     image = FilerImageField( | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         related_name="ungleich_header_item_image", | ||||||
|  |         on_delete=models.SET_NULL | ||||||
|  |     ) | ||||||
|  |     description = HTMLField() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichProductItem(ServiceItem): | ||||||
|  |     url = models.URLField(max_length=300, default="", blank=True) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichProduct(Service): | ||||||
|  |     section_class = models.CharField(max_length=100, default="", blank=True) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichCustomer(Service): | ||||||
|  |     section_class = models.CharField(max_length=100, default="", blank=True) | ||||||
|  |     carousel_data_interval = models.IntegerField(default=3000) | ||||||
|  |     bottom_text = HTMLField( | ||||||
|  |         default='<h3 class="section-subheading text-muted">*ungleich means ' | ||||||
|  |                 'not equal to (≠) U+2260.</h3>' | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichCustomerItem(CMSPlugin): | ||||||
|  |     image = FilerImageField( | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         related_name="customer_item_image", | ||||||
|  |         on_delete=models.SET_NULL | ||||||
|  |     ) | ||||||
|  |     url = models.URLField(max_length=300, default="", blank=True) | ||||||
|  |     description = HTMLField() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class UngleichHTMLOnly(CMSPlugin): | ||||||
|  |     name = models.CharField(max_length=50, default="", blank=True) | ||||||
|  |     HTML = HTMLField() | ||||||
|  | 
 | ||||||
|  |     def __str__(self): | ||||||
|  |         return self.name | ||||||
|  |  | ||||||
|  | @ -7,6 +7,17 @@ | ||||||
|     color: #494949; |     color: #494949; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .header-vh { | ||||||
|  |     height: 30px; | ||||||
|  | } | ||||||
|  | .intro-cap-sans-transform p { | ||||||
|  |     font-family: 'Raleway', 'Helvetica Neue', 'Open Sans Bold', Helvetica, Arial, 'Arial Bold', sans-serif; | ||||||
|  |     font-size: 26px; | ||||||
|  |     font-style: normal; | ||||||
|  |     font-weight: 200; | ||||||
|  |     color: #FFF; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .intro-cap { | .intro-cap { | ||||||
|     font-family: 'Raleway', 'Helvetica Neue', 'Open Sans Bold', Helvetica, Arial, 'Arial Bold', sans-serif; |     font-family: 'Raleway', 'Helvetica Neue', 'Open Sans Bold', Helvetica, Arial, 'Arial Bold', sans-serif; | ||||||
|     font-size: 26px; |     font-size: 26px; | ||||||
|  | @ -111,3 +122,52 @@ | ||||||
|     paddding: 10px; |     paddding: 10px; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | .header_slider { | ||||||
|  |     height: 100vh; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .header_slider > .carousel { | ||||||
|  |     display: flex; | ||||||
|  |     flex-direction: column; | ||||||
|  |     height: 100%; | ||||||
|  |     align-items: stretch; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .header_slider > .carousel .item { | ||||||
|  |     padding-top: 150px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | .timeline>li .timeline-panel { | ||||||
|  |     display: flex; | ||||||
|  |     min-height: 80px; | ||||||
|  |     align-items: center; | ||||||
|  |     padding-bottom: 15px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .flex-justify-content-end{ | ||||||
|  |     justify-content: flex-end; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .flex-justify-content-start{ | ||||||
|  |     justify-content: flex-start; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .timeline>li.timeline-inverted>.timeline-panel { | ||||||
|  |     padding-bottom: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @media (min-width: 768px) and (max-width: 991px) { | ||||||
|  |     .timeline>li .timeline-panel { | ||||||
|  |         min-height: 100px; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media (min-width: 992px) { | ||||||
|  |     .timeline>li .timeline-panel { | ||||||
|  |         min-height: 170px; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
|       <img class="img-circle img-responsive" src="{{ instance.image.url }}" alt=""> |       <img class="img-circle img-responsive" src="{{ instance.image.url }}" alt=""> | ||||||
|     </div> |     </div> | ||||||
|     {% if instance.link_url %}</a>{% endif %} |     {% if instance.link_url %}</a>{% endif %} | ||||||
|     <div class="timeline-panel wow {% if instance.inverted %}slideInRight{% else %}slideInLeft{% endif %}"> |     <div class="timeline-panel wow {% if instance.inverted %}slideInRight flex-justify-content-start {% else %}slideInLeft flex-justify-content-end{% endif %}"> | ||||||
|       <div class="timeline-body"> |       <div class="timeline-body"> | ||||||
|         <p>{{ instance.title }}</p> |         <p>{{ instance.title }}</p> | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ | ||||||
|             {% render_plugin plugin %} |             {% render_plugin plugin %} | ||||||
|             </div> |             </div> | ||||||
|         {% endfor %} |         {% endfor %} | ||||||
| 
 |  | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </section> | </section> | ||||||
|  | @ -1,17 +1,36 @@ | ||||||
| {% load static %} | {% load static %} | ||||||
| {% load i18n %} | {% load i18n %} | ||||||
| 
 | 
 | ||||||
| <header> | <header class="header_slider"> | ||||||
|     <div class="container"> |   <div id="carousel-header-ungleich" class="carousel slide" data-ride="carousel" data-interval="5000"> | ||||||
| 		<div class="intro-text"> |     <!-- Indicators --> | ||||||
| 		  <img  src="{% static 'ungleich_page/img/logo_200x200.svg'%}" heigh="300" alt="" class="logo-image" img-responsive="" width="300" /> |     <ol class="carousel-indicators"> | ||||||
| 		  <p></p><p></p><br> |       <li data-target="#carousel-header-ungleich" data-slide-to="0" class="active"></li> | ||||||
| 		  <div class="intro-cap"> |       <li data-target="#carousel-header-ungleich" data-slide-to="1"></li> | ||||||
| 		    <span class="intro-cap"> |       <li data-target="#carousel-header-ungleich" data-slide-to="2"></li> | ||||||
| 		      {% trans "We  Design, Configure & Maintain <br> Your Linux Infrastructure " %}  |     </ol> | ||||||
| 		    </span> |  | ||||||
| 		  </div> |  | ||||||
| 
 | 
 | ||||||
| 		</div> |     <!-- Wrapper for slides --> | ||||||
|  |     <div class="carousel-inner" role="listbox"> | ||||||
|  |       <div class="item active"> | ||||||
|  |         <div class="container"> | ||||||
|  |     			<div> | ||||||
|  |     			  <img src="{% static 'ungleich_page/img/logo_200x200.svg'%}" heigh="300" alt="" class="logo-image" img-responsive="" width="300" /> | ||||||
|  |     			  <p></p><p></p><br> | ||||||
|  |     			  <div class="intro-cap"> | ||||||
|  |     			    <span class="intro-cap"> | ||||||
|  |     			      {% trans "We  Design, Configure & Maintain <br> Your Linux Infrastructure " %} | ||||||
|  |     			    </span> | ||||||
|  |     			  </div> | ||||||
|  |     			</div> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |       <div class="item"> | ||||||
|  |         <h1 style="color: #fff; margin-top: 150px;">slide 2</h1> | ||||||
|  |       </div> | ||||||
|  |       <div class="item"> | ||||||
|  |         <h1 style="color: #fff; margin-top: 150px;">slide 3</h1> | ||||||
|  |       </div> | ||||||
|     </div> |     </div> | ||||||
|  |   </div> | ||||||
| </header> | </header> | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | <a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a> | ||||||
|  | <p class="carousel-text text-muted text-center">{{ instance.description }}</p> | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | <div class="container"> | ||||||
|  |     <div> | ||||||
|  |         {% if instance.image %} | ||||||
|  |         <img src="{{ instance.image.url }}" alt="" | ||||||
|  |              class="logo-image" img-responsive="" width="300"/> | ||||||
|  |         <div class="header-vh"></div> | ||||||
|  |         {% endif %} | ||||||
|  |         <div> | ||||||
|  |                 <span class="intro-cap-sans-transform"> | ||||||
|  |                 {{ instance.description }} | ||||||
|  |                 </span> | ||||||
|  |         </div> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
|  | @ -0,0 +1,6 @@ | ||||||
|  | <a href="{{ instance.url }}"><img src="{{ instance.image.url}}" class="img-responsive inline-block" alt=""></a> | ||||||
|  | <div class="portfolio-caption inline-block"> | ||||||
|  |     <h4>{{ instance.title }}</h4> | ||||||
|  |     <p> </p> | ||||||
|  |     <p class="text-muted">{{ instance.description }}</p> | ||||||
|  | </div> | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | <div class="team-member wow fadeInUp" data-wow-delay="0.25s"> | ||||||
|  |   <img src="{{ instance.image.url }}" data-replaced="{{ instance.data_replaced_image.url }}" class="img-responsive img-circle img-toggle" alt=""> | ||||||
|  |   <div class="team-member-caption inline-block"> | ||||||
|  |             <h4 class="portfolio-caption">{{ instance.title }}</h4> | ||||||
|  |             <p> </p> | ||||||
|  |             <p><span class="text-muted">{{ instance.description }}</span></p> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
							
								
								
									
										15
									
								
								ungleich_page/templates/ungleich_page/ungleich/header.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								ungleich_page/templates/ungleich_page/ungleich/header.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | {% load cms_tags %} | ||||||
|  | <!-- Header --> | ||||||
|  | <header style="background-image: url({{ instance.background_image.url }})"> | ||||||
|  |     <div class="container"> | ||||||
|  | 		<div class="intro-text"> | ||||||
|  | 		  <img  src="{{ instance.image.url }}" alt="" class="logo-image" img-responsive="" width="300" /> | ||||||
|  | 		  <p></p><p></p><br> | ||||||
|  | 		  <div class="intro-cap"> | ||||||
|  | 		    <span class="intro-cap"> | ||||||
|  | 		      {{ instance.text }} | ||||||
|  | 		    </span> | ||||||
|  | 		  </div> | ||||||
|  | 		</div> | ||||||
|  |     </div> | ||||||
|  | </header> | ||||||
|  | @ -0,0 +1,21 @@ | ||||||
|  | {% load cms_tags %} | ||||||
|  | <header class="header_slider" style="background-image: url({{ instance.background_image.url }})"> | ||||||
|  |   <div id="carousel-header-ungleich" class="carousel slide" data-ride="carousel" data-interval="{{ instance.carousel_data_interval}}"> | ||||||
|  |     <!-- Indicators --> | ||||||
|  |       {% if instance.child_plugin_instances|length > 1  %} | ||||||
|  |         <ol class="carousel-indicators"> | ||||||
|  |                 {% for plugin in instance.child_plugin_instances %} | ||||||
|  |                     <li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li> | ||||||
|  |                 {% endfor %} | ||||||
|  |         </ol> | ||||||
|  |       {% endif %} | ||||||
|  |     <!-- Wrapper for slides --> | ||||||
|  |     <div class="carousel-inner" role="listbox"> | ||||||
|  |         {% for plugin in instance.child_plugin_instances %} | ||||||
|  |         <div class="item {% if forloop.counter0 == 0 %}active{% endif %}"> | ||||||
|  |             {% render_plugin plugin %} | ||||||
|  |         </div> | ||||||
|  |         {% endfor %} | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </header> | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | {% load cms_tags static %} | ||||||
|  | {{instance.HTML}} | ||||||
|  | {% for plugin in instance.child_plugin_instances %} | ||||||
|  |     {% render_plugin plugin %} | ||||||
|  | {% endfor %} | ||||||
|  | @ -0,0 +1,35 @@ | ||||||
|  | {% load cms_tags custom_tags %} | ||||||
|  | <section id="{{section_id}}" class="{% if customer_instance.section_class %}{{ customer_instance.section_class }}{% else %}bg-light-gray{% endif %}"> | ||||||
|  | 	<div class="container"> | ||||||
|  | 	  <div class="text-center wow fadeInDown" style="visibility: visible; animation-name: fadeInDown;"> | ||||||
|  | 	    <h2 class="section-heading">{{ customer_instance.title }}</h2> | ||||||
|  | 	    <h3 class="text-muted">{{ customer_instance.sub_title }}</h3> | ||||||
|  | 	  </div> | ||||||
|  | 		<div class="row"> | ||||||
|  | 		  <div class="col-sm-10 col-sm-offset-1 wow fadeInDown" style="visibility: visible; animation-name: fadeInDown;"> | ||||||
|  | 		    <!-- start:recommendationSlider --> | ||||||
|  | 		    <div id="carousel-recommendation-ungleich" class="carousel slide ungleich ungleich-gallery ungleich-gallery-text-carousel" data-ride="carousel" data-interval="{{ customer_instance.carousel_data_interval}}"> | ||||||
|  | 		      <!-- Indicators --> | ||||||
|  |               <ol class="carousel-indicators"> | ||||||
|  |                 {% for plugin in customer_instance.child_plugin_instances %} | ||||||
|  |                     <li data-target="#carousel-recommendation-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li> | ||||||
|  |                 {% endfor %} | ||||||
|  | 		      </ol> | ||||||
|  | 
 | ||||||
|  | 		      <!-- Wrapper for slides --> | ||||||
|  | 		      <div class="carousel-inner" role="listbox"> | ||||||
|  |                 {% for plugin in customer_instance.child_plugin_instances %} | ||||||
|  |                 <div class="item {% if forloop.counter0 == 0 %}active{% endif %}"> | ||||||
|  |                     {% render_plugin plugin %} | ||||||
|  |                 </div> | ||||||
|  |                 {% endfor %} | ||||||
|  | 		      </div> | ||||||
|  | 		    </div> | ||||||
|  | 		    <!-- end:recommendationSlider --> | ||||||
|  | 		  </div> | ||||||
|  | 		</div> | ||||||
|  | 	</div> | ||||||
|  | 	<div class="text-center"> | ||||||
|  | 		{{customer_instance.bottom_text}} | ||||||
|  | 	</div> | ||||||
|  | </section> | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | {% load cms_tags custom_tags %} | ||||||
|  | <section id="{{section_id}}" class="products-section {% if product_instance.section_class %}{{ product_instance.section_class }}{% else %}bg-light-gray{% endif %}"> | ||||||
|  | 	<div id="portfolio"> | ||||||
|  |   <div class="container"> | ||||||
|  | 	  <div class="row"> | ||||||
|  | 		  <div class="col-lg-12 text-center wow fadeInDown" style="visibility: visible; animation-name: fadeInDown;"> | ||||||
|  | 			<h2 class="section-heading">{{ product_instance.title }}</h2> | ||||||
|  | 			{{ product_instance.sub_title }} | ||||||
|  | 		  </div> | ||||||
|  | 	  </div> | ||||||
|  | 		<div class="row"> | ||||||
|  | 			{% for plugin in product_instance.child_plugin_instances %} | ||||||
|  | 				<div class="col-md-4 col-sm-6 portfolio-item wow fadeInUp" data-wow-delay="{{ forloop.counter|multiply:0.25 }}s" style="visibility: visible; animation-delay: {{ forloop.counter|multiply:0.25 }}s; animation-name: fadeInUp;"> | ||||||
|  | 					{% render_plugin plugin %} | ||||||
|  | 				</div> | ||||||
|  | 			{% endfor %} | ||||||
|  | 		</div> | ||||||
|  |   </div> | ||||||
|  | 		</div> | ||||||
|  | </section> | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | {% load cms_tags %} | ||||||
|  | <section id="{{section_id}}"> | ||||||
|  |   <div class="container"> | ||||||
|  | 	  <div class="text-center wow fadeInDown"> | ||||||
|  | 	    <h2 class="section-heading">{{ service_instance.title }}</h2> | ||||||
|  | 	    {{ service_instance.sub_title }} | ||||||
|  | 	  </div> | ||||||
|  | 		<div class="row text-center"> | ||||||
|  | 			{% for plugin in service_instance.child_plugin_instances %} | ||||||
|  | 				<div class="col-sm-4"> | ||||||
|  | 				{% render_plugin plugin %} | ||||||
|  | 				</div> | ||||||
|  | 			{% endfor %} | ||||||
|  | 		</div> | ||||||
|  |   </div> | ||||||
|  | </section> | ||||||
							
								
								
									
										75
									
								
								ungleich_page/templates/ungleich_page/ungleich_cms_page.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								ungleich_page/templates/ungleich_page/ungleich_cms_page.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | ||||||
|  | {% load static i18n cms_tags sekizai_tags %} | ||||||
|  | 
 | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  | <head> | ||||||
|  | 
 | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <meta name="description" content=""> | ||||||
|  |     <meta name="author" content=""> | ||||||
|  | 
 | ||||||
|  |     <title>{% page_attribute "page_title" %}</title> | ||||||
|  | 
 | ||||||
|  |     <!-- Bootstrap Core CSS --> | ||||||
|  |     <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> | ||||||
|  |     <link href="{% static 'ungleich_page/css/lib/animate.min.css' %}" rel="stylesheet"> | ||||||
|  |     <link href="//fonts.googleapis.com/css?family=Raleway|Montserrat:400,700|Droid+Serif:400,700,400italic,700italic|Roboto+Slab:400,100,300,700" rel="stylesheet" type="text/css"> | ||||||
|  | 
 | ||||||
|  |     <!-- 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:// --> | ||||||
|  |     <!--[if lt IE 9]> | ||||||
|  | 	<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> | ||||||
|  | 	<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> | ||||||
|  | 	<![endif]--> | ||||||
|  | 
 | ||||||
|  |     <!-- Custom CSS --> | ||||||
|  |     <link href="{% static 'ungleich_page/css/agency.css' %}" rel="stylesheet"> | ||||||
|  |     <link href="{% static 'ungleich_page/css/ungleich.css' %}" rel="stylesheet"> | ||||||
|  |     {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %} | ||||||
|  |     {% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %} | ||||||
|  |     <!-- Google analytics --> | ||||||
|  |     {% include "google_analytics.html" %} | ||||||
|  |     <!-- End Google Analytics --> | ||||||
|  | 
 | ||||||
|  |     <link rel="shortcut icon" href="{% static 'ungleich_page/img/favicon.ico' %}" type="image/x-icon"> | ||||||
|  | </head> | ||||||
|  | 
 | ||||||
|  | <body id="page-top" class="index"> | ||||||
|  | {% cms_toolbar %} | ||||||
|  |     {% placeholder 'Ungleich Page Contents' %} | ||||||
|  | 
 | ||||||
|  |     <!-- Footer --> | ||||||
|  |     {% include "ungleich_page/includes/_footer.html" %} | ||||||
|  | 
 | ||||||
|  |     <!-- jQuery --> | ||||||
|  |     <script src="{% static 'ungleich_page/js/jquery.js' %}" type="text/javascript"></script> | ||||||
|  |     <script type="text/javascript"> | ||||||
|  |         $(document).ready(function () { | ||||||
|  |             if ($(".has-error").length != 0) { | ||||||
|  |                 window.location = window.location.pathname + "#contact" | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     </script> | ||||||
|  | 
 | ||||||
|  |     <!-- Bootstrap Core JavaScript --> | ||||||
|  |     <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" type="text/javascript"></script> | ||||||
|  | 
 | ||||||
|  |     <!-- Plugin JavaScript --> | ||||||
|  |     <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js" type="text/javascript"></script> | ||||||
|  |     <script src="//cdnjs.cloudflare.com/ajax/libs/classie/1.0.1/classie.min.js" type="text/javascript"></script> | ||||||
|  |     <script src="{% static 'ungleich_page/js/cbpAnimatedHeader.js' %}" type="text/javascript"></script> | ||||||
|  | 
 | ||||||
|  |     <!-- Contact Form JavaScript --> | ||||||
|  |     <script src="{% static 'ungleich_page/js/jqBootstrapValidation.js' %}" type="text/javascript"></script> | ||||||
|  |     <!-- <script src="{% static 'ungleich_page/js/contact_me.js' %}" type="text/javascript"></script> --> | ||||||
|  |     <script src="//cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" type="text/javascript"></script> | ||||||
|  | 
 | ||||||
|  |     <!-- Custom Theme JavaScript --> | ||||||
|  |     <script src="{% static 'ungleich_page/js/ungleich.js' %}" type="text/javascript"></script> | ||||||
|  | 
 | ||||||
|  |     <!-- Custom Fonts --> | ||||||
|  |     <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"> | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue