Projet

Général

Profil

0001-linkcell-can-link-to-a-page-can-have-an-anchor-7400.patch

Thomas Noël, 29 mai 2015 12:06

Télécharger (3,43 ko)

Voir les différences:

Subject: [PATCH] linkcell: can link to a page; can have an anchor(#7400)

 combo/data/migrations/0007_auto_20150529_1003.py | 38 ++++++++++++++++++++++++
 combo/data/models.py                             | 17 +++++++++--
 combo/public/templates/combo/link-cell.html      |  2 +-
 3 files changed, 54 insertions(+), 3 deletions(-)
 create mode 100644 combo/data/migrations/0007_auto_20150529_1003.py
combo/data/migrations/0007_auto_20150529_1003.py
1
# -*- coding: utf-8 -*-
2
from __future__ import unicode_literals
3

  
4
from django.db import models, migrations
5

  
6

  
7
class Migration(migrations.Migration):
8

  
9
    dependencies = [
10
        ('data', '0006_linkcell'),
11
    ]
12

  
13
    operations = [
14
        migrations.AddField(
15
            model_name='linkcell',
16
            name='anchor',
17
            field=models.CharField(max_length=150, verbose_name='Anchor', blank=True),
18
            preserve_default=True,
19
        ),
20
        migrations.AddField(
21
            model_name='linkcell',
22
            name='link_page',
23
            field=models.ForeignKey(related_name='link_cell', to='data.Page', null=True),
24
            preserve_default=True,
25
        ),
26
        migrations.AlterField(
27
            model_name='linkcell',
28
            name='title',
29
            field=models.CharField(max_length=150, verbose_name='Title', blank=True),
30
            preserve_default=True,
31
        ),
32
        migrations.AlterField(
33
            model_name='linkcell',
34
            name='url',
35
            field=models.URLField(verbose_name='URL', blank=True),
36
            preserve_default=True,
37
        ),
38
    ]
combo/data/models.py
440 440

  
441 441
@register_cell_class
442 442
class LinkCell(CellBase):
443
    title = models.CharField(_('Title'), max_length=150)
444
    url = models.URLField(_('URL'))
443
    title = models.CharField(_('Title'), max_length=150, blank=True)
444
    url = models.URLField(_('URL'), blank=True)
445
    link_page = models.ForeignKey('data.Page', related_name='link_cell', null=True)
446
    anchor = models.CharField(_('Anchor'), max_length=150, blank=True)
445 447

  
446 448
    template_name = 'combo/link-cell.html'
447 449

  
......
452 454
        if not self.title:
453 455
            return None
454 456
        return utils.ellipsize(self.title)
457

  
458
    def render(self, context):
459
        if self.link_page:
460
            context['url'] = self.link_page.get_online_url()
461
            context['title'] = self.title or self.link_page.title
462
        else:
463
            context['url'] = self.url
464
            context['title'] = self.title or self.url
465
        if self.anchor:
466
            context['url'] += '#' + self.anchor
467
        return super(LinkCell, self).render(context)
combo/public/templates/combo/link-cell.html
1
<a href="{{cell.url}}">{{cell.title}}</a>
1
<a href="{{url}}">{{title}}</a>
2
-