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 (
|
||||
UngelichContactUsSection, UngelichTextSection, Service, ServiceItem,
|
||||
About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader,
|
||||
UngleichHeaderItem, UngleichProductItem, UngleichProduct
|
||||
UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer,
|
||||
UngleichCustomerItem
|
||||
)
|
||||
|
||||
|
||||
|
@ -241,3 +242,35 @@ class UngleichProductsItemPlugin(CMSPluginBase):
|
|||
)
|
||||
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
|
||||
|
|
|
@ -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):
|
||||
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…
Reference in a new issue