Added button to quickly download last position of a ship from its page
authorJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Fri, 12 Nov 2010 23:42:18 +0000 (23:42 +0000)
committerJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Fri, 12 Nov 2010 23:42:18 +0000 (23:42 +0000)
bin/djais/urls.py
bin/djais/views.py
html_templates/vessel.html

index 24a268bf639bee0002719d56d9009ae39d52bedd..9ed59d5ac6f3be9571cc84a682a54d41e9b7a1d4 100644 (file)
@@ -19,6 +19,7 @@ urlpatterns = patterns('',
     (r'^fleet/(?P<fleetname>[ a-zA-Z0-9_]+)/lastpos$', 'ais.djais.views.fleet_lastpos'),
     (r'^vessel/$', 'ais.djais.views.vessel_search'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/$', 'ais.djais.views.vessel'),
     (r'^fleet/(?P<fleetname>[ a-zA-Z0-9_]+)/lastpos$', 'ais.djais.views.fleet_lastpos'),
     (r'^vessel/$', 'ais.djais.views.vessel_search'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/$', 'ais.djais.views.vessel'),
+    (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/lastpos$', 'ais.djais.views.vessel_lastpos'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/manual_input$', 'ais.djais.views.vessel_manual_input'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/history$', 'ais.djais.views.vessel_history'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/track$', 'ais.djais.views.vessel_history', {'format': u'track'}),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/manual_input$', 'ais.djais.views.vessel_manual_input'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/history$', 'ais.djais.views.vessel_history'),
     (r'^vessel/(?P<strmmsi>[0-9A-Z]{9})/track$', 'ais.djais.views.vessel_history', {'format': u'track'}),
index c1e0744b9aff4689c28081c6048c5ed9bdda009d..af3b566ee17b2ee3a56fab2950bde4dab3250914 100644 (file)
@@ -169,7 +169,7 @@ class PeriodField(forms.MultiValueField):
 
 
 class HistoryForm(forms.Form):
 
 
 class HistoryForm(forms.Form):
-    format = forms.ChoiceField(choices=(('track', 'Track line (Google Earth)'), ('animation', 'Animation (Google Earth)'), ('csv', 'Coma separated values (SpreadSheet)')), widget=forms.Select(attrs={'onchange': mark_safe("if (this.value=='csv') $('#csvhint').show(); else $('#csvhint').hide();")}))
+    format = forms.ChoiceField(choices=(('animation', 'Animation (Google Earth v5)'), ('track', 'Track line (Google Earth)'), ('csv', 'Coma separated values (SpreadSheet)')), widget=forms.Select(attrs={'onchange': mark_safe("if (this.value=='csv') $('#csvhint').show(); else $('#csvhint').hide();")}))
     period_type = forms.ChoiceField(choices=(('duration', 'Duration until now'), ('date_date','Between two dates'), ('start_duration', 'Start date and duration')), widget=forms.RadioSelect(attrs={'onchange': mark_safe("show_hide_start_end_time(this.value);")}))
     start_date = forms.DateTimeField(required=False, widget=AisCalendarWidget(attrs={'class':'vDateField'}))
     duration = PeriodField(required=False, label='Period length', initial=7*86400)
     period_type = forms.ChoiceField(choices=(('duration', 'Duration until now'), ('date_date','Between two dates'), ('start_duration', 'Start date and duration')), widget=forms.RadioSelect(attrs={'onchange': mark_safe("show_hide_start_end_time(this.value);")}))
     start_date = forms.DateTimeField(required=False, widget=AisCalendarWidget(attrs={'class':'vDateField'}))
     duration = PeriodField(required=False, label='Period length', initial=7*86400)
@@ -469,6 +469,13 @@ def vessel_manual_input(request, strmmsi):
     return render_to_response('vessel_manual_input.html', {'form': form, 'nmea': nmea}, RequestContext(request))
 
 
     return render_to_response('vessel_manual_input.html', {'form': form, 'nmea': nmea}, RequestContext(request))
 
 
+@http_authenticate(auth, 'ais')
+def vessel_lastpos(request, strmmsi):
+    value = kml_to_kmz(format_fleet([ strmmsi ], document_name=strmmsi).encode('utf-8'))
+    response = HttpResponse(value, mimetype="application/vnd.google-earth.kml")
+    response['Content-Disposition'] = 'attachment; filename=%s.kmz' % strmmsi
+    return response
+
 @http_authenticate(auth, 'ais')
 def vessel_history(request, strmmsi):
     """
 @http_authenticate(auth, 'ais')
 def vessel_history(request, strmmsi):
     """
index dbf281dfc66e6dc60212f5e514325650c073b762..6950387484b1fe6ae344eb66b37d14378b76e22a 100644 (file)
@@ -41,7 +41,9 @@ ETA: {{ nmea.get_eta_str }}<br>
 <br>
 Sources: position by {{ nmea.get_source_1_str }}, voyage by {{ nmea.get_source_5_str }}<br>
 
 <br>
 Sources: position by {{ nmea.get_source_1_str }}, voyage by {{ nmea.get_source_5_str }}<br>
 
-
+<br>
+<br>
+<a href=lastpos class=button>Position in google earth</a>
 <h2>Get archive data</h2>
 {% include "fragment_vessel_history.html" %}
 
 <h2>Get archive data</h2>
 {% include "fragment_vessel_history.html" %}