diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-26 14:10:54 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-26 14:10:54 +0200 |
| commit | 0ee09412bff460d70894e9b11ed3a90481a74608 (patch) | |
| tree | 6e0f78adee31bb07fc5f42f521a0c03e557b2602 /chimere/models.py | |
| parent | 095e0ac0304e90f2e07a23b745571c781005920c (diff) | |
| download | Chimère-0ee09412bff460d70894e9b11ed3a90481a74608.tar.bz2 Chimère-0ee09412bff460d70894e9b11ed3a90481a74608.zip | |
Improve detail display
* add a short_description property to marker which cut desc
* add options in jquery.chimere.js to customize popup display
Diffstat (limited to 'chimere/models.py')
| -rw-r--r-- | chimere/models.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/chimere/models.py b/chimere/models.py index 4f6d4e0..8bff588 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -25,6 +25,7 @@ import simplejson as json from lxml import etree from PIL import Image from subprocess import Popen, PIPE +from BeautifulSoup import BeautifulSoup from django.conf import settings from django.contrib.gis.db import models @@ -344,6 +345,29 @@ class Marker(GeographicItem): if settings.CHIMERE_DAYS_BEFORE_EVENT: return self.start_date + @property + def description_short(self): + if not self.description: + return '' + if len(self.description) <= settings.CHIMERE_SHORT_DESC_LENGTH: + return self.description + desc = self.description[:settings.CHIMERE_SHORT_DESC_LENGTH] + short_desc = "" + # find a correct opportunity to cut + for idx, c in enumerate(reversed(desc)): + if c == '>': + break + if c == '<': + short_desc = desc[:-(idx+1)] + break + if not short_desc: + for idx, c in enumerate(reversed(desc)): + if c == ' ' or c == '\n': + short_desc = desc[:-(idx+1)] + break + short_desc += "..." + return BeautifulSoup(short_desc).prettify() + class Meta: ordering = ('status', 'name') verbose_name = _(u"Point of interest") |
