diff options
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 |
commit | 660ce29ac2cf781c8e9607a837b9832e1692e156 (patch) | |
tree | dfc74f2056cfc9a1ce12eb17adf8bc3771510495 /chimere/views.py | |
parent | 3daa945c334f719e7edb086021bfcc93880eb7f7 (diff) | |
parent | 57bbba43a75a72eeacd44f1ce5fcd6f203dc321c (diff) | |
download | Chimè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.py | 34 |
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') |