예제 #1
0
def site_content(request):
    site = get_cached_class(settings.CORE_SITE_FINDER).get_site(request)
    if site._meta.label == get_app_site_string():
        site_cache_key = f"{site.pk}-context-{site._meta.label}"
        site_context = cache.get(site_cache_key)
        if not site_context:
            site_context, created = SiteContent.objects.get_or_create(site=site)
            site_context = site_context.serialize()
            cache.set(site_cache_key, site_context)
        return {
            "base_context": {
                "site_content": site_context,
                "scheme": request.is_secure() and 'https' or 'http',
                "is_authenticated": request.user.is_authenticated
            }
        }
예제 #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
def test_core_site_utils(db, site):  # noqa
    SiteUtils = get_cached_class("cabins.core.utils:SiteUtils")
    request = rf(host_name="test.com").get("/")
    site_model = SiteUtils.get_site(request)
    assert site_model.domain == "test.com"
    assert "sites.Site" == SiteUtils.get_model()._meta.label
예제 #4
0
def test_core_wagtail_site_utils(db, wagtail_site):  # noqa
    SiteUtils = get_cached_class(settings.CORE_SITE_FINDER)
    request = rf(host_name="test.com").get("/")
    site_model = SiteUtils.get_site(request)
    assert site_model.hostname == "test.com"
    assert "wagtailcore.Site" == SiteUtils.get_model()._meta.label
예제 #5
0
def wagtail_site(db):
    Site = get_cached_class("cabins.back.utils:SiteUtils").get_model()
    return Site.objects.create(hostname="test.com",
                               site_name="testing",
                               root_page=Page.objects.get(depth=1))
예제 #6
0
def site(db):
    Site = get_cached_class("cabins.core.utils:SiteUtils").get_model()
    return Site.objects.create(
        domain="test.com",
        name="testing",
    )