Пример #1
0
class SiteContent(SeriailizerMixin, ClusterableModel):
    site = models.OneToOneField(get_app_site_string(),
                                on_delete=models.SET_NULL,
                                blank=True,
                                null=True,
                                related_name='site_content')
    logo = models.ForeignKey(get_image_model_string(),
                             on_delete=models.SET_NULL,
                             blank=True,
                             null=True,
                             related_name='site_logo')
    navigation = models.ManyToManyField(get_page_string(), )
    footer_content = models.TextField()

    panels = [
        FieldPanel('site'),
        ImageChooserPanel('logo'),
        FieldPanel('navigation'),
        FieldPanel('footer_content'),
        InlinePanel('social_media', label='Social Media links'),
    ]

    serialize_attrs = """
Пример #2
0
import pytest
from django.apps import apps
from django.conf import settings
from django.core.files import File

from cabins.core.cache import get_cached_class
from cabins.front.models import SiteContent, SocialMedia
from cabins.page import get_page_string

from .core_fixtures import image_fixture

Site = get_cached_class(settings.CORE_SITE_FINDER).get_model()
Image = apps.get_model(settings.CORE_IMAGE_MODEL)
Page = apps.get_model(get_page_string())


@pytest.fixture
def image(db) -> Image:
    with open(image_fixture["file"], 'rb') as _file:
        file_data = File(_file)
        image = Image(title="test_home")
        image.file.save(name="test_home", content=file_data)
        image.save()


@pytest.fixture
def site(db) -> Site:
    return Site.objects.create(hostname="test.com",
                               site_name="test",
                               port=8000,
                               root_page=Page.objects.filter(depth=1).first())
Пример #3
0
class Suitability(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='suitability_tags')
Пример #4
0
class Services(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='services_tags')
Пример #5
0
class NearByWater(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='nearbywater_tags')
Пример #6
0
class PropertySize(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='propertysize_tags')
Пример #7
0
class FoodDrink(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='food_drink_tags')
Пример #8
0
class General(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='amenities_general_tags')
Пример #9
0
class OpenDates(TaggedItemBase):
    content_object = ParentalKey(get_page_string(),
                                 on_delete=models.CASCADE,
                                 related_name='amenities_open_dates_tags')