From d57046b34a6065553b262834b5d252fae9968714 Mon Sep 17 00:00:00 2001 From: ahsteele Date: Thu, 14 Apr 2011 22:29:50 -0600 Subject: [PATCH] added map stuff, single view map and multiple map --- geocamTalk/templates/geocamTalk/base.html | 1 + geocamTalk/templates/geocamTalk/details.html | 15 +++++ geocamTalk/templates/geocamTalk/map.html | 55 +++++++++++++++++++ .../templates/geocamTalk/message_list.html | 2 +- geocamTalk/urls.py | 6 +- geocamTalk/views.py | 24 +++++++- 6 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 geocamTalk/templates/geocamTalk/details.html create mode 100644 geocamTalk/templates/geocamTalk/map.html diff --git a/geocamTalk/templates/geocamTalk/base.html b/geocamTalk/templates/geocamTalk/base.html index 963927d..f64a795 100644 --- a/geocamTalk/templates/geocamTalk/base.html +++ b/geocamTalk/templates/geocamTalk/base.html @@ -99,6 +99,7 @@

{% block pagetitle %}GeoCam Talk{% endblock %}

diff --git a/geocamTalk/templates/geocamTalk/details.html b/geocamTalk/templates/geocamTalk/details.html new file mode 100644 index 0000000..f2d594f --- /dev/null +++ b/geocamTalk/templates/geocamTalk/details.html @@ -0,0 +1,15 @@ +
+ + +
+
Latitude
+
{{ message.latitude }}
+
Longitude
+
{{ message.longitude }}
+
Altitude
+
{{ message.altitude }}
+
Accuracy
+
{{ message.accuracy }}
+
+Okay +
diff --git a/geocamTalk/templates/geocamTalk/map.html b/geocamTalk/templates/geocamTalk/map.html new file mode 100644 index 0000000..a3b08c9 --- /dev/null +++ b/geocamTalk/templates/geocamTalk/map.html @@ -0,0 +1,55 @@ +{% extends "geocamTalk/base.html" %} + +{% block js %} + +{% endblock %} + +{% block content %} +
+
+{% endblock %} \ No newline at end of file diff --git a/geocamTalk/templates/geocamTalk/message_list.html b/geocamTalk/templates/geocamTalk/message_list.html index 72a870b..bcd5543 100644 --- a/geocamTalk/templates/geocamTalk/message_list.html +++ b/geocamTalk/templates/geocamTalk/message_list.html @@ -42,7 +42,7 @@

{% else %} {{ m.get_author_string}} {% endif %} - {% if m.has_geolocation %}Map Info{%endif%} + {% if m.has_geolocation %}Map Info{%endif%} {% if m.has_audio %} {%endif%} diff --git a/geocamTalk/urls.py b/geocamTalk/urls.py index 0b1fe25..2f85f01 100644 --- a/geocamTalk/urls.py +++ b/geocamTalk/urls.py @@ -16,7 +16,9 @@ url(r'messages/clear', 'clear_messages', name='talk_clear_messages'), url(r'messages/details/(?P\d+).json', 'message_details_json', - name="talk_message_details_json"), + name="talk_message_details_json"), + url(r'messages/details/(?P\d+)$', 'message_details', + name="talk_message_details"), url(r'messages/(?P[^ ]+)/(?P[^ ]+).json', 'feed_messages', name="talk_message_list_to_from_json"), url(r'messages/(?P[^ ]+).json', 'feed_messages', @@ -29,4 +31,6 @@ name="talk_message_list_author"), url(r'messages', 'message_list', name="talk_message_list_all"), + url(r'map', 'message_map', + name="talk_message_map"), ) diff --git a/geocamTalk/views.py b/geocamTalk/views.py index 646cf5f..50a16c6 100644 --- a/geocamTalk/views.py +++ b/geocamTalk/views.py @@ -20,6 +20,20 @@ from django.db.models import Q, Count import json +def get_first_geolocation(messages): + """ return the first geotagged message lat and long as tuple """ + try: + return [(m.latitude, m.longitude) for m in messages if m.has_geolocation()][0] + except: + return () + +@login_required +def message_map(request): + messages = TalkMessage.getMessages() + return render_to_response('geocamTalk/map.html', + dict(gc_msg=messages, + first_geolocation=get_first_geolocation(messages)), + context_instance=RequestContext(request)) @login_required def clear_messages(request): @@ -89,7 +103,15 @@ def message_details_json(request, message_id): else: message = get_object_or_404(TalkMessage, pk=message_id) return HttpResponse(json.dumps(message.getJson())) - + +@login_required +def message_details(request, message_id): + message = get_object_or_404(TalkMessage, pk=message_id) + + return render_to_response('geocamTalk/details.html', + {'message':message}, + context_instance=RequestContext(request)) + @login_required def index(request): return render_to_response('geocamTalk/home.html',