summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
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
commit0ee09412bff460d70894e9b11ed3a90481a74608 (patch)
tree6e0f78adee31bb07fc5f42f521a0c03e557b2602 /chimere/models.py
parent095e0ac0304e90f2e07a23b745571c781005920c (diff)
downloadChimè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.py24
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")