linkcell: can link to a page; can have an anchor(#7400)
This commit is contained in:
parent
b1bb35a952
commit
82e4bef240
|
@ -0,0 +1,38 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('data', '0006_linkcell'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='linkcell',
|
||||
name='anchor',
|
||||
field=models.CharField(max_length=150, verbose_name='Anchor', blank=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='linkcell',
|
||||
name='link_page',
|
||||
field=models.ForeignKey(related_name='link_cell', to='data.Page', null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='linkcell',
|
||||
name='title',
|
||||
field=models.CharField(max_length=150, verbose_name='Title', blank=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='linkcell',
|
||||
name='url',
|
||||
field=models.URLField(verbose_name='URL', blank=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -440,8 +440,10 @@ class MenuCell(CellBase):
|
|||
|
||||
@register_cell_class
|
||||
class LinkCell(CellBase):
|
||||
title = models.CharField(_('Title'), max_length=150)
|
||||
url = models.URLField(_('URL'))
|
||||
title = models.CharField(_('Title'), max_length=150, blank=True)
|
||||
url = models.URLField(_('URL'), blank=True)
|
||||
link_page = models.ForeignKey('data.Page', related_name='link_cell', null=True)
|
||||
anchor = models.CharField(_('Anchor'), max_length=150, blank=True)
|
||||
|
||||
template_name = 'combo/link-cell.html'
|
||||
|
||||
|
@ -452,3 +454,14 @@ class LinkCell(CellBase):
|
|||
if not self.title:
|
||||
return None
|
||||
return utils.ellipsize(self.title)
|
||||
|
||||
def render(self, context):
|
||||
if self.link_page:
|
||||
context['url'] = self.link_page.get_online_url()
|
||||
context['title'] = self.title or self.link_page.title
|
||||
else:
|
||||
context['url'] = self.url
|
||||
context['title'] = self.title or self.url
|
||||
if self.anchor:
|
||||
context['url'] += '#' + self.anchor
|
||||
return super(LinkCell, self).render(context)
|
||||
|
|
|
@ -1 +1 @@
|
|||
<a href="{{cell.url}}">{{cell.title}}</a>
|
||||
<a href="{{url}}">{{title}}</a>
|
||||
|
|
Loading…
Reference in New Issue