313 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			313 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from cms.plugin_base import CMSPluginBase
 | |
| from cms.plugin_pool import plugin_pool
 | |
| 
 | |
| from .models import (
 | |
|     UngelichContactUsSection, UngelichTextSection, Service, ServiceItem,
 | |
|     About, AboutItem, SectionWithImage, UngleichServiceItem,
 | |
|     UngleichProductItem, UngleichProduct, UngleichCustomer,
 | |
|     UngleichCustomerItem, UngleichHTMLOnly,
 | |
|     UngleichHeaderWithBackgroundImageSlider,
 | |
|     UngleichHeaderWithBackgroundVideoSliderItem,
 | |
|     UngleichFooter
 | |
| )
 | |
| 
 | |
| 
 | |
| def get_section_id(plugin_instance, default):
 | |
|     """
 | |
|     A helper function to get the section id from a given menu text
 | |
|     :param plugin_instance:
 | |
|     :param default: The default section id to return in case a section id
 | |
|                     is not found
 | |
|     :return: The section id for the plugin_instance
 | |
|     """
 | |
|     section_id = default
 | |
|     if hasattr(plugin_instance, 'menu_text'):
 | |
|         menu_words = plugin_instance.menu_text.split()
 | |
|         if len(menu_words) > 0:
 | |
|             section_id = menu_words[0]
 | |
|     return section_id
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class SectionWithImagePlugin(CMSPluginBase):
 | |
|     model = SectionWithImage
 | |
|     render_template = "ungleich_page/glasfaser/section_with_image.html"
 | |
|     cache = False
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context.update({
 | |
|             'image': instance.image,
 | |
|             'object': instance,
 | |
|             'placeholder': placeholder
 | |
|         })
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class SectionContact(CMSPluginBase):
 | |
|     model = UngelichContactUsSection
 | |
|     render_template = "ungleich_page/glasfaser/section_contact.html"
 | |
|     cache = False
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(SectionContact, self).render(
 | |
|             context, instance, placeholder
 | |
|         )
 | |
|         context['instance'] = instance
 | |
|         context['section_id'] = get_section_id(instance, 'contact')
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class SectionTextParagraphDCL(CMSPluginBase):
 | |
|     model = UngelichTextSection
 | |
|     render_template = "ungleich_page/glasfaser/section_text_dcl.html"
 | |
|     cache = False
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(SectionTextParagraphDCL, self).render(
 | |
|             context, instance, placeholder
 | |
|         )
 | |
|         context['instance'] = instance
 | |
|         context['section_id'] = get_section_id(instance, 'your')
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class SectionTextParagraphGlasfaser(CMSPluginBase):
 | |
|     model = UngelichTextSection
 | |
|     render_template = "ungleich_page/glasfaser/section_text_glasfaser.html"
 | |
|     cache = False
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(SectionTextParagraphGlasfaser, self).render(
 | |
|             context, instance, placeholder
 | |
|         )
 | |
|         context['instance'] = instance
 | |
|         context['section_id'] = get_section_id(instance, 'our')
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class GlasfaserServicesPlugin(CMSPluginBase):
 | |
|     name = "Glasfaser Services Plugin"
 | |
|     model = Service
 | |
|     render_template = "ungleich_page/glasfaser/section_services.html"
 | |
|     cache = False
 | |
|     allow_children = True
 | |
|     child_classes = ['GlasfaserServicesItemPlugin']
 | |
| 
 | |
|     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 GlasfaserServicesItemPlugin(CMSPluginBase):
 | |
|     name = "Glasfaser Service Item Plugin"
 | |
|     model = ServiceItem
 | |
|     render_template = "ungleich_page/glasfaser/_services_item.html"
 | |
|     cache = False
 | |
|     require_parent = True
 | |
|     parent_classes = ['GlasfaserServicesPlugin']
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(GlasfaserServicesItemPlugin, self).render(
 | |
|             context, instance, placeholder
 | |
|         )
 | |
|         context['instance'] = instance
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class GlasfaserAboutPlugin(CMSPluginBase):
 | |
|     name = "Glasfaser About Plugin"
 | |
|     model = About
 | |
|     render_template = "ungleich_page/glasfaser/section_about.html"
 | |
|     cache = False
 | |
|     allow_children = True
 | |
|     child_classes = ['GlasfaserAboutItemPlugin']
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context['about_instance'] = instance
 | |
|         context['section_id'] = get_section_id(instance, 'about')
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class GlasfaserAboutItemPlugin(CMSPluginBase):
 | |
|     name = "Glasfaser About Item Plugin"
 | |
|     model = AboutItem
 | |
|     render_template = "ungleich_page/glasfaser/_about_item.html"
 | |
|     cache = False
 | |
|     require_parent = True
 | |
|     parent_classes = ['GlasfaserAboutPlugin']
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(GlasfaserAboutItemPlugin, self).render(
 | |
|             context, instance, placeholder
 | |
|         )
 | |
|         context['instance'] = instance
 | |
|         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 UngleichHeaderBackgroundImageAndTextSliderPlugin(CMSPluginBase):
 | |
|     name = "ungleich Header with Background and Image Slider Plugin"
 | |
|     model = UngleichHeaderWithBackgroundImageSlider
 | |
|     render_template = (
 | |
|         'ungleich_page/ungleich/header_with_background_image_slider.html'
 | |
|     )
 | |
|     cache = False
 | |
|     allow_children = True
 | |
|     child_classes = [
 | |
|         'UngleichHeaderBackgroundVideoItemPlugin',
 | |
|     ]
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context['instance'] = instance
 | |
|         return context
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class UngleichHeaderBackgroundVideoItemPlugin(CMSPluginBase):
 | |
|     name = "ungleich Header Background Video Item Plugin"
 | |
|     model = UngleichHeaderWithBackgroundVideoSliderItem
 | |
|     render_template = "ungleich_page/ungleich/_header_with_background_video_slider_item.html"
 | |
|     cache = False
 | |
|     require_parent = True
 | |
|     parent_classes = ['UngleichHeaderBackgroundImageAndTextSliderPlugin']
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(UngleichHeaderBackgroundVideoItemPlugin, 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
 | |
| 
 | |
| 
 | |
| @plugin_pool.register_plugin
 | |
| class UngleichFooterPlugin(CMSPluginBase):
 | |
|     name = "ungleich Footer Plugin"
 | |
|     model = UngleichFooter
 | |
|     render_template = "ungleich_page/ungleich/_footer.html"
 | |
|     cache = False
 | |
| 
 | |
|     def render(self, context, instance, placeholder):
 | |
|         context = super(UngleichFooterPlugin, self).render(
 | |
|             context, instance, placeholder
 | |
|         )
 | |
|         context['instance'] = instance
 | |
|         return context
 |