Add ungleich customer section, templates and migration
This commit is contained in:
		
					parent
					
						
							
								609a49cdbb
							
						
					
				
			
			
				commit
				
					
						85289c2eed
					
				
			
		
					 5 changed files with 138 additions and 2 deletions
				
			
		|  | @ -4,7 +4,8 @@ from cms.plugin_pool import plugin_pool | ||||||
| from .models import ( | from .models import ( | ||||||
|     UngelichContactUsSection, UngelichTextSection, Service, ServiceItem, |     UngelichContactUsSection, UngelichTextSection, Service, ServiceItem, | ||||||
|     About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader, |     About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader, | ||||||
|     UngleichHeaderItem, UngleichProductItem, UngleichProduct |     UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer, | ||||||
|  |     UngleichCustomerItem | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -241,3 +242,35 @@ class UngleichProductsItemPlugin(CMSPluginBase): | ||||||
|         ) |         ) | ||||||
|         context['instance'] = instance |         context['instance'] = instance | ||||||
|         return context |         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 | ||||||
|  |  | ||||||
|  | @ -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', '0005_auto_20171015_0703'), | ||||||
|  |         ('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',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -124,3 +124,23 @@ class UngleichProductItem(ServiceItem): | ||||||
| 
 | 
 | ||||||
| class UngleichProduct(Service): | class UngleichProduct(Service): | ||||||
|     section_class = models.CharField(max_length=100, default="", blank=True) |     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() | ||||||
|  |  | ||||||
|  | @ -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,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> | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue