0004-general-use-selected-cell-template-to-render-cell-55.patch
combo/data/models.py | ||
---|---|---|
1136 | 1136 |
if self.default_template_name: |
1137 | 1137 |
base_template_name = os.path.basename(self.default_template_name) |
1138 | 1138 |
template_names.append(self.default_template_name) |
1139 |
if self.template_name: |
|
1140 |
cell_templates = settings.COMBO_CELL_TEMPLATES.get(self.get_cell_type_str()) or {} |
|
1141 |
selected_template_infos = cell_templates.get(self.template_name) or {} |
|
1142 |
template_names.append(selected_template_infos.get('template')) |
|
1139 | 1143 |
if self.slug: |
1140 | 1144 |
template_names.append('combo/cells/%s/%s' % (self.slug, base_template_name)) |
1141 | 1145 |
template_names.reverse() |
tests/test_cells.py | ||
---|---|---|
421 | 421 |
assert cell.render(ctx).strip() == '<p>foobar</p>' |
422 | 422 | |
423 | 423 | |
424 |
def test_extra_template(): |
|
425 |
page = Page(title='example page', slug='example-page') |
|
426 |
page.save() |
|
427 | ||
428 |
cell = TextCell() |
|
429 |
cell.page = page |
|
430 |
cell.text = '<p>foobar</p>' |
|
431 |
cell.order = 0 |
|
432 |
cell.save() |
|
433 | ||
434 |
ctx = {} |
|
435 | ||
436 |
templates_settings = [settings.TEMPLATES[0].copy()] |
|
437 |
templates_settings[0]['DIRS'] = ['%s/templates-1' % os.path.abspath(os.path.dirname(__file__))] |
|
438 |
with override_settings( |
|
439 |
COMBO_CELL_TEMPLATES={ |
|
440 |
'data_textcell': {'extra': {'label': 'Extra', 'template': 'combo/cells/foobar/text-cell.html'}} |
|
441 |
}, |
|
442 |
TEMPLATES=templates_settings, |
|
443 |
): |
|
444 |
cell.slug = '' |
|
445 |
cell.template_name = 'extra' |
|
446 |
cell.save() |
|
447 |
assert cell.render(ctx).strip() == '<div class="XXX"><p>foobar</p></div>' |
|
448 | ||
449 | ||
424 | 450 |
def mocked_request(*args, **kwargs): |
425 | 451 |
pass |
426 | 452 | |
427 |
- |