summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
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')