misc: use real hostname in fake request used to get placeholders (#19993)
This commit is contained in:
parent
1fff18760f
commit
9549c472a6
|
@ -190,7 +190,7 @@ class Page(models.Model):
|
|||
def get_template_display_name(self):
|
||||
return settings.COMBO_PUBLIC_TEMPLATES[self.template_name]['name']
|
||||
|
||||
def get_placeholders(self, traverse_cells=False, template_name=None):
|
||||
def get_placeholders(self, request, traverse_cells=False, template_name=None):
|
||||
placeholders = []
|
||||
|
||||
page_template = settings.COMBO_PUBLIC_TEMPLATES.get(template_name or self.template_name)
|
||||
|
@ -202,7 +202,7 @@ class Page(models.Model):
|
|||
|
||||
template_name = settings.COMBO_PUBLIC_TEMPLATES.get(self.template_name).get('template')
|
||||
tmpl = template.loader.select_template([template_name])
|
||||
request = RequestFactory().get(self.get_online_url())
|
||||
request = RequestFactory(SERVER_NAME=request.get_host()).get(self.get_online_url())
|
||||
request.user = None
|
||||
context = RequestContext(request, {
|
||||
'page': self,
|
||||
|
|
|
@ -92,7 +92,7 @@ class PageAddView(CreateView):
|
|||
def form_valid(self, form):
|
||||
response = super(PageAddView, self).form_valid(form)
|
||||
if self.object.slug != 'index' or self.object.parent_id:
|
||||
for placeholder in self.object.get_placeholders():
|
||||
for placeholder in self.object.get_placeholders(request=self.request):
|
||||
if placeholder.acquired is True:
|
||||
ParentContentCell(page=self.object,
|
||||
placeholder=placeholder.key, order=0).save()
|
||||
|
@ -121,9 +121,9 @@ class PageSelectTemplateView(PageEditView):
|
|||
new_template_name = self.object.template_name
|
||||
response = super(PageSelectTemplateView, self).form_valid(form)
|
||||
if old_template_name != new_template_name:
|
||||
old_placeholder_keys = [x.key for x in self.get_object().get_placeholders()]
|
||||
old_placeholder_keys = [x.key for x in self.get_object().get_placeholders(request=self.request)]
|
||||
page_cells = CellBase.get_cells(page_id=self.object.id)
|
||||
for placeholder in self.object.get_placeholders(new_template_name):
|
||||
for placeholder in self.object.get_placeholders(request=self.request, template_name=new_template_name):
|
||||
if not placeholder.acquired:
|
||||
continue
|
||||
if placeholder.key in old_placeholder_keys:
|
||||
|
@ -210,7 +210,7 @@ class PageView(DetailView):
|
|||
placeholders = []
|
||||
combo_template = settings.COMBO_PUBLIC_TEMPLATES.get(template)
|
||||
|
||||
for placeholder in self.object.get_placeholders(traverse_cells=True):
|
||||
for placeholder in self.object.get_placeholders(request=self.request, traverse_cells=True):
|
||||
placeholder_dict = {
|
||||
'key': placeholder.key,
|
||||
'name': placeholder.get_name(),
|
||||
|
|
|
@ -206,7 +206,7 @@ def skeleton(request):
|
|||
|
||||
# add default ParentContentCells to the page
|
||||
cells = []
|
||||
for placeholder in selected_page.get_placeholders():
|
||||
for placeholder in selected_page.get_placeholders(request=request):
|
||||
if placeholder.acquired:
|
||||
cells.append(ParentContentCell(page=selected_page, placeholder=placeholder.key, order=0))
|
||||
else:
|
||||
|
@ -236,15 +236,16 @@ def skeleton(request):
|
|||
|
||||
|
||||
class StyleDemoPage(object):
|
||||
def __init__(self, template_name):
|
||||
self.template_name = template_name or 'standard'
|
||||
def __init__(self, request):
|
||||
self.request = request
|
||||
self.template_name = request.GET.get('template') or 'standard'
|
||||
|
||||
def __enter__(self):
|
||||
self.page = Page(public=False, title=_('Style Demo'))
|
||||
self.page.template_name = self.template_name
|
||||
self.page.save()
|
||||
combo_template = settings.COMBO_PUBLIC_TEMPLATES[self.page.template_name]
|
||||
for i, placeholder in enumerate(self.page.get_placeholders()):
|
||||
for i, placeholder in enumerate(self.page.get_placeholders(request=self.request)):
|
||||
cell = TextCell(page=self.page, placeholder=placeholder.key, order=0)
|
||||
if placeholder.key == 'footer':
|
||||
cell.text = '<p>%s</p>' % lorem_ipsum.sentence()
|
||||
|
@ -283,7 +284,7 @@ def style(request):
|
|||
messages.error(request, _('Error notice'))
|
||||
|
||||
with transaction.atomic():
|
||||
with StyleDemoPage(request.GET.get('template')) as page:
|
||||
with StyleDemoPage(request) as page:
|
||||
return publish_page(request, page)
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import sys
|
|||
from django.conf import settings
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.test import override_settings
|
||||
from django.test.client import RequestFactory
|
||||
from django.utils.timezone import now
|
||||
from combo.data.models import Page, CellBase, TextCell, LinkCell
|
||||
from combo.data.management.commands.import_site import Command as ImportSiteCommand
|
||||
|
@ -266,7 +267,8 @@ def test_last_update_time():
|
|||
|
||||
def test_get_placeholders():
|
||||
page = Page(title=u'foo', slug='foo', template_name='standard-sidebar', order=0)
|
||||
placeholders = page.get_placeholders()
|
||||
request = RequestFactory().get('/')
|
||||
placeholders = page.get_placeholders(request=request)
|
||||
assert [x.key for x in placeholders] == ['content', 'sidebar', 'footer']
|
||||
assert placeholders[0].acquired is False
|
||||
assert placeholders[-1].acquired is True
|
||||
|
@ -281,7 +283,7 @@ def test_get_placeholders():
|
|||
'sidebar': {'name': 'Sidebar'},
|
||||
'footer': {'name': 'Footer', 'acquired': False},
|
||||
}}}):
|
||||
placeholders = page.get_placeholders()
|
||||
placeholders = page.get_placeholders(request=request)
|
||||
assert set([x.key for x in placeholders]) == set(['content', 'content2', 'sidebar', 'footer'])
|
||||
footer_placeholder = [x for x in placeholders if x.key == 'footer'][0]
|
||||
assert footer_placeholder.acquired is False
|
||||
|
|
Loading…
Reference in New Issue