manager: do not crash on page configured with a missing template (#23186)
This commit is contained in:
parent
f13b4cc5ac
commit
db4436daff
|
@ -44,7 +44,7 @@ from django.utils.safestring import mark_safe
|
|||
from django.utils.text import slugify
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.forms.widgets import MediaDefiningClass
|
||||
from django.template import Context, engines
|
||||
from django.template import Context, engines, TemplateDoesNotExist
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from .fields import RichTextField
|
||||
|
@ -215,6 +215,14 @@ class Page(models.Model):
|
|||
def get_template_display_name(self):
|
||||
return settings.COMBO_PUBLIC_TEMPLATES[self.template_name]['name']
|
||||
|
||||
def missing_template(self):
|
||||
template_name = settings.COMBO_PUBLIC_TEMPLATES.get(self.template_name).get('template')
|
||||
try:
|
||||
template.loader.select_template([template_name])
|
||||
except TemplateDoesNotExist:
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_placeholders(self, request, traverse_cells=False, template_name=None):
|
||||
placeholders = []
|
||||
|
||||
|
@ -226,7 +234,7 @@ class Page(models.Model):
|
|||
return placeholders
|
||||
|
||||
template_name = settings.COMBO_PUBLIC_TEMPLATES.get(self.template_name).get('template')
|
||||
tmpl = template.loader.select_template([template_name])
|
||||
tmpl = template.loader.select_template([template_name, 'combo/page_template.html'])
|
||||
request = RequestFactory(SERVER_NAME=request.get_host()).get(self.get_online_url())
|
||||
request.user = None
|
||||
context = {
|
||||
|
|
|
@ -365,3 +365,8 @@ span.extra-info {
|
|||
img.page-picture {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
span.error {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
<p>
|
||||
<label>{% trans 'Template:' %}</label>
|
||||
{{ object.get_template_display_name }}
|
||||
{% if object.missing_template %}<span class="error">({% trans "missing" %})</span>{% endif %}
|
||||
(<a rel="popup" href="{% url 'combo-manager-page-select-template' pk=object.id %}">{% trans 'change' %}</a>)
|
||||
</p>
|
||||
|
||||
|
|
Loading…
Reference in New Issue