manager: fix display of page edition in case of unknown template (#29383)
This commit is contained in:
parent
6ff6101d8d
commit
0662ae94ed
|
@ -233,10 +233,15 @@ class Page(models.Model):
|
|||
return Page.objects.filter(parent_id=self.id).exists()
|
||||
|
||||
def get_template_display_name(self):
|
||||
return settings.COMBO_PUBLIC_TEMPLATES[self.template_name]['name']
|
||||
try:
|
||||
return settings.COMBO_PUBLIC_TEMPLATES[self.template_name]['name']
|
||||
except KeyError:
|
||||
return _('Unknown (%s)') % self.template_name
|
||||
|
||||
def missing_template(self):
|
||||
template_name = settings.COMBO_PUBLIC_TEMPLATES.get(self.template_name).get('template')
|
||||
template_name = settings.COMBO_PUBLIC_TEMPLATES.get(self.template_name, {}).get('template')
|
||||
if not template_name:
|
||||
return True
|
||||
try:
|
||||
template.loader.select_template([template_name])
|
||||
except TemplateDoesNotExist:
|
||||
|
@ -246,15 +251,18 @@ class Page(models.Model):
|
|||
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)
|
||||
page_template = settings.COMBO_PUBLIC_TEMPLATES.get(template_name or self.template_name, {})
|
||||
if page_template.get('placeholders'):
|
||||
# manual declaration
|
||||
for key, options in page_template['placeholders'].items():
|
||||
placeholders.append(Placeholder(key=key, **options))
|
||||
return placeholders
|
||||
|
||||
template_name = settings.COMBO_PUBLIC_TEMPLATES.get(self.template_name).get('template')
|
||||
tmpl = template.loader.select_template([template_name, 'combo/page_template.html'])
|
||||
template_names = []
|
||||
if page_template.get('template'):
|
||||
template_names.append(page_template['template'])
|
||||
template_names.append('combo/page_template.html')
|
||||
tmpl = template.loader.select_template(template_names)
|
||||
request = RequestFactory(SERVER_NAME=request.get_host()).get(self.get_online_url())
|
||||
request.user = None
|
||||
context = {
|
||||
|
|
|
@ -120,6 +120,14 @@ def test_edit_page(app, admin_user):
|
|||
resp = resp.follow()
|
||||
assert Page.objects.all()[0].exclude_from_navigation is True
|
||||
|
||||
def test_edit_page_unknown_template(app, admin_user):
|
||||
Page.objects.all().delete()
|
||||
page = Page(title='One', slug='one', template_name='broken')
|
||||
page.save()
|
||||
app = login(app)
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert 'Unknown (broken)' in resp.text
|
||||
|
||||
def test_page_edit_slug(app, admin_user):
|
||||
Page.objects.all().delete()
|
||||
page = Page(title='One', slug='one', template_name='standard')
|
||||
|
|
Loading…
Reference in New Issue