diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-07-02 19:28:16 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-07-02 19:28:16 +0200 |
commit | 665525ef8ab702a9d4f08c1c250dd60e13e6bae2 (patch) | |
tree | db5457b549420444e689f7556390256ab0043c4f | |
parent | 551903a0bb6ea6f0f9f1e7d81fb8132ceae563a8 (diff) | |
download | Chimère-665525ef8ab702a9d4f08c1c250dd60e13e6bae2.tar.bz2 Chimère-665525ef8ab702a9d4f08c1c250dd60e13e6bae2.zip |
Fix "Show on map" in welcome message (refs #366)
* new templatetag: get_tinyfied_url
* remove an old reference to BASE_URL
-rw-r--r-- | chimere/models.py | 8 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/welcome.html | 11 | ||||
-rw-r--r-- | chimere/templates/chimere/detail.html | 2 | ||||
-rw-r--r-- | chimere/templatetags/chimere_tags.py | 8 | ||||
-rw-r--r-- | chimere/views.py | 6 |
5 files changed, 23 insertions, 12 deletions
diff --git a/chimere/models.py b/chimere/models.py index 1fab398..4fb2455 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -32,6 +32,7 @@ from django.contrib.gis.gdal import SpatialReference from django.contrib import admin from django.core.files import File from django.core.exceptions import ValidationError +from django.core.urlresolvers import reverse from django.db.models.signals import post_save from django import forms from django.utils.translation import ugettext_lazy as _ @@ -417,10 +418,13 @@ class Marker(GeographicItem): # Should we catch if not exists ? return self.categories.all()[0] - def get_absolute_url(self): + def get_absolute_url(self, area_name=''): parameters = 'current_feature=%d&checked_categories=%s' % (self.id, self.default_category.pk) - return settings.BASE_URL + 'ty/' + TinyUrl.getUrnByParameters(parameters) + urn = TinyUrl.getUrnByParameters(parameters) + area_name = area_name + '/' if area_name else '' + url = reverse('chimere:tiny', args=[area_name, urn]) + return url class MultimediaType(models.Model): MEDIA_TYPES = (('A', _(u"Audio")), diff --git a/chimere/templates/chimere/blocks/welcome.html b/chimere/templates/chimere/blocks/welcome.html index 7495564..44b949e 100644 --- a/chimere/templates/chimere/blocks/welcome.html +++ b/chimere/templates/chimere/blocks/welcome.html @@ -1,4 +1,4 @@ -{% load i18n sanitize %} +{% load i18n sanitize chimere_tags %} {% if news_lst or welcome_message %} <a href='#' id='welcome_button' class='ui-widget ui-button ui-state-default ui-corner-all'>{% trans "Welcome message"%}</a> <script type='text/javascript'> @@ -20,12 +20,15 @@ {% if news.title %} <h3>{{news.title}} – {{ news.date }}</h3> <p>{{news.content|safe}}</p> - {% else %} + {% else %} <h3>{{news.name}} – {{ news.start_date }}{% if news.end_date %} - {{ news.end_date }}{% endif %}</h3> + {% if news.description %} + <p class='description'>{{news.description|sanitize:"p b i br hr strong em span:style a:href:target ul li ol h1 h2 h3 h4 table td th tr"|safe}}</p> + {% endif %} {% for property in news.getProperties %} - <p id='{{news.propertymodel.getNamedId}}'>{{ property.value|sanitize:"p b i br hr strong em span:style a:href:target ul li ol h1 h2 h3 h4 table td th tr"|safe }}</p> + <p class='{{news.propertymodel.getNamedId}}'>{{ property.value|sanitize:"p b i br hr strong em span:style a:href:target ul li ol h1 h2 h3 h4 table td th tr"|safe }}</p> {% endfor %} - <p class='marker_link'><a href='{{ news.get_absolute_url }}'>{% trans "See it on the map"%}</a></p> + <p class='marker_link'><a href='{% get_tinyfied_url news area_name %}'>{% trans "See it on the map"%}</a></p> {% endif %} </div> {%endfor%} diff --git a/chimere/templates/chimere/detail.html b/chimere/templates/chimere/detail.html index 82d9e81..5f20f7c 100644 --- a/chimere/templates/chimere/detail.html +++ b/chimere/templates/chimere/detail.html @@ -33,7 +33,7 @@ <li>{% trans "Share"%}</li>{% for share_network in share_networks %} <li><a href='{{share_network.1}}'><img src="{{share_network.2}}" alt="{{share_network.0}}"/></a></li> {% endfor %}</ul>{% endif %} - <a href='{% if marker.route %}{% url chimere:editroute-item area_name|default_if_none:"" marker.route.pk "" %}{%else%}{% url chimere:edit-item area_name|default_if_none:"" marker.pk "" %}{%endif%}'> + <a href='{% if marker.route %}{% url chimere:editroute-item area_name_slash|default_if_none:"" marker.route.pk "" %}{%else%}{% url chimere:edit-item area_name_slash|default_if_none:"" marker.pk "" %}{%endif%}'> {% trans "Submit a modification" %} </a> {% endif %} diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index 147edbd..e70c7df 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -51,6 +51,7 @@ def display_news(context, display=False): if "area_name" in context: try: area = Area.objects.get(urn=context["area_name"]) + context_data['area_name'] = context['area_name'] context_data['welcome_message'] = area.welcome_message except ObjectDoesNotExist: pass @@ -160,4 +161,9 @@ def multimedia_render(context, multimedia_file): context['multimedia_item'] = multimedia_file return context - +@register.simple_tag +def get_tinyfied_url(marker, area_name=''): + if not marker or not hasattr(marker, 'get_absolute_url'): + return "" + url = marker.get_absolute_url(area_name) + return url diff --git a/chimere/views.py b/chimere/views.py index 4bd6758..f2271e7 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -61,6 +61,7 @@ def get_base_response(area_name=""): if area_name and area_name.endswith('/'): area_name = area_name[:-1] if area_name: + base_response_dct['area_name_slash'] = area_name + "/" if base_url[-1] != '/': base_url += '/' base_url += area_name + '/' @@ -572,10 +573,7 @@ def getTinyfiedUrl(parameters, area_name=''): response_dct, redir = get_base_response(area_name) if redir: return redir - url = settings.SERVER_URL - if url[-1] == '/': - url = url[:-1] - url += response_dct['extra_url'] + 'ty/' + urn + url = reverse('chimere:tiny', args=[response_dct['area_name'] + '/', urn]) text = settings.PROJECT_NAME if 'current_feature' in parameters: for item in parameters.split('&'): |