general: add a new "root page" attribute to menu cells (#10537)

This commit is contained in:
Frédéric Péters 2016-04-04 10:17:27 +02:00
parent 0061a2a1c6
commit 827cd70576
3 changed files with 25 additions and 3 deletions

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('data', '0016_feedcell_limit'),
]
operations = [
migrations.AddField(
model_name='menucell',
name='root_page',
field=models.ForeignKey(related_name='root_page', verbose_name='Root Page', blank=True, to='data.Page', null=True),
),
]

View File

@ -502,13 +502,16 @@ class MenuCell(CellBase):
initial_level = models.IntegerField(_('Initial Level'),
choices=[(-1, _('Same as page'))] +
[(i, i) for i in range(1, 3)], default=-1, null=False)
root_page = models.ForeignKey(Page, related_name='root_page',
null=True, blank=True, verbose_name=_('Root Page'))
class Meta:
verbose_name = _('Menu')
def render(self, context):
from combo.public.menu import render_menu
return render_menu(context, level=self.initial_level, depth=self.depth)
return render_menu(context, level=self.initial_level,
root_page=self.root_page, depth=self.depth)
@register_cell_class

View File

@ -16,8 +16,8 @@
from django.template.loader import get_template
def render_menu(context, level=0, depth=1):
context = get_menu_context(context, level=level, depth=depth)
def render_menu(context, level=0, root_page=None, depth=1):
context = get_menu_context(context, level=level, current_page=root_page, depth=depth)
template = get_template('combo/menu.html')
return template.render(context)