summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-02-14 21:42:27 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-02-14 21:42:27 +0100
commit660ce29ac2cf781c8e9607a837b9832e1692e156 (patch)
treedfc74f2056cfc9a1ce12eb17adf8bc3771510495 /chimere/views.py
parent3daa945c334f719e7edb086021bfcc93880eb7f7 (diff)
parent57bbba43a75a72eeacd44f1ce5fcd6f203dc321c (diff)
downloadChimère-660ce29ac2cf781c8e9607a837b9832e1692e156.tar.bz2
Chimère-660ce29ac2cf781c8e9607a837b9832e1692e156.zip
Merge branch 'master' into nef
Conflicts: chimere/admin.py chimere/forms.py chimere/models.py chimere/settings.sample.py chimere/static/chimere/js/jquery.chimere-ol.js chimere/templates/chimere/base.html chimere/templates/chimere/blocks/head_chimere.html chimere/templates/chimere/blocks/map.html chimere/templates/chimere/main_map.html chimere/templatetags/chimere_tags.py chimere/tests.py chimere/urls.py chimere/views.py chimere/widgets.py
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/chimere/views.py b/chimere/views.py
index c6372db..92b21f5 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -35,6 +35,7 @@ from django.contrib.auth.forms import AuthenticationForm
from django.contrib.gis.geos import GEOSGeometry
from django.contrib.gis.gdal.error import OGRException
from django.contrib.gis.measure import D
+from django.contrib.sites.models import get_current_site
from django.core import serializers
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
@@ -78,6 +79,8 @@ def get_base_response(request, map_name="", propose=False):
"""
base_response_dct = {'media_path':settings.MEDIA_URL,
'is_authenticated':request.user.is_authenticated()}
+ base_response_dct['MOBILE'] = settings.MOBILE_TEST or \
+ get_current_site(request).domain in settings.MOBILE_DOMAINS
base_url = reverse("chimere:index")
if not base_url.startswith('/'):
base_url = '/' + base_url
@@ -108,6 +111,8 @@ def get_base_response(request, map_name="", propose=False):
base_response_dct['JQUERY_JS_URLS'] = settings.JQUERY_JS_URLS
base_response_dct['JQUERY_CSS_URLS'] = settings.JQUERY_CSS_URLS
base_response_dct['PROJECT_NAME'] = settings.PROJECT_NAME
+ if hasattr(settings, 'EXTRA_CSS'):
+ base_response_dct['EXTRA_CSS'] = settings.EXTRA_CSS
return base_response_dct, None
def getShareUrl(request, map_name='', network=''):
@@ -195,6 +200,7 @@ def index(request, map_name=None, default_map=None, simple=False,
'actions':actions(request.user, response_dct['map_name']),
'action_selected':('view',),
'error_message':'',
+ 'is_map':True,
'news_visible': news_visible,
'maps_visible': settings.CHIMERE_DISPLAY_MAPS,
'map_layer':settings.CHIMERE_DEFAULT_MAP_LAYER,
@@ -202,12 +208,16 @@ def index(request, map_name=None, default_map=None, simple=False,
'zoomout':zoomout,
'has_default_map':Map.objects.filter(default=True).count(),
'zoomout':zoomout,
+ 'has_search':settings.CHIMERE_SEARCH_ENGINE
+ 'has_default_area':Area.objects.filter(default=True).count(),
+ 'zoomout':zoomout,
})
if hasattr(settings, 'CONTACT_EMAIL') and settings.CONTACT_EMAIL:
response_dct['contact_email'] = settings.CONTACT_EMAIL
response_dct['share_networks'], net_dct = \
getShareNetwork(request, response_dct['map_name'])
tpl = 'chimere/main_map.html'
+ response_dct['simple'] = simple
if simple:
tpl = 'chimere/main_map_simple.html'
if get_response:
@@ -493,6 +503,8 @@ def submited(request, map_name="", action="", actions=default_actions):
return redir
response_dct.update({'actions':actions(request.user, response_dct['map_name']),
'action_selected':action,})
+ if hasattr(settings, 'CONTACT_EMAIL') and settings.CONTACT_EMAIL:
+ response_dct['contact_email'] = settings.CONTACT_EMAIL
return render_to_response('chimere/submited.html', response_dct,
context_instance=RequestContext(request))
@@ -586,6 +598,7 @@ def getDetail(request, map_name, marker_id):
response_dct['time_now'] = datetime.datetime.now().strftime('%H%M%S')
response_dct['dated'] = settings.CHIMERE_DAYS_BEFORE_EVENT \
and marker.start_date
+ response_dct['routing_enabled'] = settings.CHIMERE_ENABLE_ROUTING
return render_to_response('chimere/detail.html', response_dct,
context_instance=RequestContext(request))
@@ -983,3 +996,24 @@ def rss(request, map_name='', actions=default_actions):
else:
return render_to_response('chimere/feeds/rss.html', response_dct,
context_instance=RequestContext(request))
+
+from django.core.paginator import Paginator, InvalidPage
+
+SearchView = None
+autocomplete = None
+if hasattr(settings, 'CHIMERE_SEARCH_ENGINE') \
+ and settings.CHIMERE_SEARCH_ENGINE:
+ from haystack.views import SearchView as HaystackSearchView
+ from haystack.query import SearchQuerySet
+ class SearchView(HaystackSearchView):
+ pass
+ def autocomplete(request):
+ sqs = SearchQuerySet().autocomplete(
+ content_auto=request.GET.get('q', ''))[:5]
+ suggestions = [result.object.name for result in sqs if result.object]
+ # make sure it returns a JSON object, not a bare list.
+ # otherwise, it could be vulnerable to an XSS attack.
+ the_data = json.dumps({
+ 'results': suggestions
+ })
+ return HttpResponse(the_data, content_type='application/json')