from cms.models.pluginmodel import CMSPlugin from django.db import models from djangocms_text_ckeditor.fields import HTMLField from filer.fields.image import FilerImageField, FilerFileField class UngelichPicture(CMSPlugin): image = FilerImageField( null=True, blank=True, related_name="image", on_delete=models.SET_NULL ) title = HTMLField() class SectionWithImage(UngelichPicture): menu_text = models.CharField(max_length=100, default="", blank=True) price_tag_image = FilerImageField( null=True, blank=True, related_name="price_tag_image", on_delete=models.SET_NULL ) price_tag_url = models.URLField(max_length=300, default="", blank=True) class UngelichContactUsSection(CMSPlugin): menu_text = models.CharField(max_length=100, default="", blank=True) email = models.EmailField(max_length=200, default="info@ungleich.ch") contact_text = models.CharField( max_length=100, default="Contact", blank=True ) organization_name = models.CharField( max_length=100, default="ungleich GmbH", blank=True ) address = models.CharField( max_length=100, default="In der Au 7, Schwanden 8762", blank=True ) country = models.CharField( max_length=100, default="Switzerland", blank=True ) contact_form_header_text = models.CharField( max_length=100, default="Send us a message.", blank=True ) class UngelichTextSection(CMSPlugin): menu_text = models.CharField(max_length=100, default="", blank=True) title = models.CharField(max_length=200) description = HTMLField() class Service(CMSPlugin): menu_text = models.CharField(max_length=100, default="", blank=True) title = models.CharField(max_length=200) sub_title = HTMLField() def __str__(self): return self.title class ServiceItem(CMSPlugin): image = FilerImageField( null=True, blank=True, related_name="service_item_image", on_delete=models.SET_NULL ) title = models.CharField(max_length=200) description = HTMLField() def __str__(self): return self.title class About(Service): pass class AboutItem(UngelichPicture): inverted = models.BooleanField(default=False) link_url = models.URLField(max_length=300, default="", blank=True) def __str__(self): alignment = "Right" if self.inverted else "Left" return "{alignment} - {title}".format( 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 UngleichHeaderWithBackgroundImageSlider(CMSPlugin): carousel_data_interval = models.IntegerField(default=2000) class UngleichHeaderWithBackgroundVideoSliderItem(CMSPlugin): image = FilerImageField( null=True, blank=True, related_name="ungleich_header_item_poster", on_delete=models.SET_NULL, help_text='The background image or poster image for video.' ) video = FilerFileField( null=True, blank=True, related_name="ungleich_header_item_video", on_delete=models.SET_NULL, help_text='Leaving this blank will make the image as the background.' ) heading = models.CharField( blank=True, null=True, max_length=100, help_text='An optional title for this slide.', ) description = models.TextField( blank=True, null=True, help_text='An optional description for this slide.' ) btn_link = models.CharField( max_length=100, blank=True, null=True, help_text=( 'Url or #id to navigate on click. If this field is left empty, no ' 'button would be displayed.' ) ) btn_text = models.CharField( blank=True, null=True, max_length=50, help_text='Text for the button, if a link is provided.' ) 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 class UngleichFooter(CMSPlugin): copyright_label = models.CharField( max_length=100, default='', blank=True, help_text='Name of the company alongside the copyright year' ) link_text = models.CharField( max_length=100, blank=True, null=True, help_text='Text for the link on the right part of footer' ) link_url = models.URLField( blank=True, null=True, help_text='Url to the link in footer' ) twitter_url = models.URLField( blank=True, null=True, help_text='If empty, twitter btn will not be visible' ) linkedin_url = models.URLField( blank=True, null=True, help_text='If empty, linkedin btn will not be visible' ) github_url = models.URLField( blank=True, null=True, help_text='If empty, github btn will not be visible' ) facebook_url = models.URLField( blank=True, null=True, help_text='If empty, facebook btn will not be visible' ) youtube_url = models.URLField( blank=True, null=True, help_text='If empty, youtube btn will not be visible' )