diff --git a/expo/admin.py b/expo/admin.py
index e4863b1..e88e1cd 100644
--- a/expo/admin.py
+++ b/expo/admin.py
@@ -6,6 +6,7 @@ import django.forms as forms
 from expo.forms import LogbookEntryForm
 from django.http import HttpResponse
 from django.core import serializers
+from expo.views_other import downloadLogbook
 #from troggle.reversion.admin import VersionAdmin #django-reversion version control
 
 #overriding admin save so we have the new since parsing field
@@ -50,6 +51,16 @@ class LogbookEntryAdmin(TroggleModelAdmin):
     date_heirarchy = ('date')
     inlines = (PersonTripInline, PhotoInline, QMsFoundInline)
     form = LogbookEntryForm
+    
+    actions=('export_logbook_entries_as_html','export_logbook_entries_as_txt')
+    
+    def export_logbook_entries_as_html(modeladmin, request, queryset):
+        response=downloadLogbook(request=request, queryset=queryset, extension='html')
+        return response
+        
+    def export_logbook_entries_as_txt(modeladmin, request, queryset):
+        response=downloadLogbook(request=request, queryset=queryset, extension='txt')
+        return response
 
 class PersonExpeditionInline(admin.TabularInline):
     model = PersonExpedition
diff --git a/expo/views_other.py b/expo/views_other.py
index c6da4b3..f56f8bc 100644
--- a/expo/views_other.py
+++ b/expo/views_other.py
@@ -1,6 +1,7 @@
 from troggle.expo.models import Cave, Expedition, Person, LogbookEntry, PersonExpedition, PersonTrip, Photo
 import troggle.settings as settings
 from django import forms
+from django.template import loader, Context
 from django.db.models import Q
 import databaseReset
 import re
@@ -80,7 +81,7 @@ def controlPanel(request):
             else:
                 return HttpResponseRedirect(reverse('auth_login'))
 
-    return render_response(request,'controlPanel.html', {'caves':Cave.objects.all(),'jobs_completed':jobs_completed})
+    return render_response(request,'controlPanel.html', {'caves':Cave.objects.all(),'expeditions':Expedition.objects.all(),'jobs_completed':jobs_completed})
 
 def downloadCavetab(request):
     from export import tocavetab
@@ -96,7 +97,42 @@ def downloadSurveys(request):
     tosurveys.writeCaveTab(response)
     return response
 
+def downloadLogbook(request,year=None,extension=None,queryset=None):
+    
+    if year:
+        expedition=Expedition.objects.get(year=year)
+        logbook_entries=LogbookEntry.objects.filter(expedition=expedition)
+        filename='logbook'+year
+    elif queryset:
+        logbook_entries=queryset
+        filename='logbook'
+    else:
+        return response(r"Error: Logbook downloader doesn't know what year you want")
+    
+    if 'year' in request.GET:
+        year=request.GET['year']
+    if 'extension' in request.GET:
+        extension=request.GET['extension']
+    
+    
+    
+    if extension =='txt':
+        response = HttpResponse(mimetype='text/plain')
+        style='2008'
+    elif extension == 'html':
+        response = HttpResponse(mimetype='text/html')
+        style='2005'
+        
+    template='logbook'+style+'style.'+extension
+    response['Content-Disposition'] = 'attachment; filename='+filename+'.'+extension 
+    t=loader.get_template(template)
+    c=Context({'logbook_entries':logbook_entries})
+    response.write(t.render(c))
+    return response
+    
+
 def downloadQMs(request):
+    # Note to self: use get_cave method for the below
     if request.method=='GET':
         try:
             cave=Cave.objects.get(kataster_number=request.GET['cave_id'])
diff --git a/export/tocavetab.py b/export/tocavetab.py
index ab7a2ee..2ffc5be 100644
--- a/export/tocavetab.py
+++ b/export/tocavetab.py
@@ -1,9 +1,7 @@
 import troggle.expo.models as models
 from django.conf import settings
 
-import csv
-import re
-import os
+import csv, re, os
 
 #format of CAVETAB2.CSV is
 headers=['KatasterNumber','KatStatusCode','Entrances','UnofficialNumber','MultipleEntrances','AutogenFile','LinkFile','LinkEntrance','Name','UnofficialName',
diff --git a/templates/controlPanel.html b/templates/controlPanel.html
index 49725e1..efaee62 100644
--- a/templates/controlPanel.html
+++ b/templates/controlPanel.html
@@ -32,9 +32,9 @@
 <h3>Import (non-destructive):</h3>
 <form name="import" method="post" action="">
 <table>
+<tr><td>people from folk.csv using parsers\people.py</td><td><input type="checkbox" name="import_people"/></td></tr>
 <tr><td>caves from cavetab2.csv using parsers\cavetab.py</td><td> <input type="checkbox" class="parser" name="import_cavetab"/></td></tr>
 <tr><td>logbook entries using parsers\logbooks.py</td><td><input type="checkbox" name="import_logbooks"/></td></tr>
-<tr><td>people from folk.csv using parsers\people.py</td><td><input type="checkbox" name="import_people"/></td></tr>
 <tr><td>QMs using parsers\QMs.py</td><td><input type="checkbox" name="import_QMs" /></td></tr>
 <tr><td>survey scans using parsers\surveys.py</td><td><input type="checkbox" name="import_surveys" /></td></tr>
 <tr><td>survex data using parsers\survex.py</td><td><input type="checkbox" name="import_survex" /></td></tr>
@@ -50,8 +50,13 @@
 </form>
 
 
-<h3>Export to csv:</h3>
+<h3>Export to legacy formats:</h3>
 <table>
+
+<th>
+    <td>Export onto server</td>
+    <td>Export and Download</td>
+</th>
 <tr>
   	<td>
     	caves to cavetab2.csv
@@ -70,6 +75,40 @@
 	</td>        
 </tr>
 
+<tr>
+  	<td>
+    	surveys to Surveys.csv
+    </td>
+  	<td>
+
+    </td>
+    <td>
+        <form name="export" method="get" action={% url downloadlogbook %}>
+        	<p>Download a logbook file which is dynamically generated by Troggle.</p>
+			
+            <p>
+            Expedition year:
+            <select name="year">
+                        {% for expedition in expeditions %}
+                        	<option value="{{expedition}}"> {{expedition}} </option>
+                        {% endfor %}
+            </select>
+            </p>
+            
+            <p>
+            Output style: 
+			<select name="extension">
+			  <option value="txt">.txt file with MediaWiki markup - 2008 style</option>
+			  <option value="html">.html file - 2005 style</option>
+            </select>
+            </p>
+            <p>
+            <input name="download_logbook" type="submit" value="Download logbook" />
+            </p>
+        </form>
+	</td>        
+</tr>
+
 <tr>
   	<td>
     	surveys to Surveys.csv
diff --git a/templates/logbook2005style.html b/templates/logbook2005style.html
new file mode 100644
index 0000000..39205f1
--- /dev/null
+++ b/templates/logbook2005style.html
@@ -0,0 +1,26 @@
+<html>
+<head><title>{{logbook_entries.0.expedition}} Expo Logbook</title></head>
+<link rel="stylesheet" type="text/css" href="../../css/main2.css" />
+<style type="text/css">
+.tripdate	{ float: left;}
+.trippeople	{ float: right;}
+.triptitle	{ font-size: 120%; text-align: center; font-weight: bold; clear: both }
+.timeug		{ text-align: right; font-weight: bold }
+p		{ clear: both }
+</style>
+<body>
+
+<h1>Expo {{logbook_entries.0.expedition}}</h1>
+
+{%for logbook_entry in logbook_entries%}
+<hr />
+
+<div class="tripdate" id="t{{logbook_entry.date}}A">{{logbook_entry.date}}</div>
+<div class="trippeople"><u>{{logbook_entry.author.person}}</u>
+{% for persontrip in logbook_entry.persontrip_set.all %}{{ persontrip.person_expedition.person }} {{ persontrip.person_expedition.time_underground }}, {% endfor %}
+</div>
+
+<div class="triptitle">{{logbook_entry.place}} - {{logbook_entry.title}}</div>
+
+{{logbook_entry.text|safe}}
+{% endfor %}
diff --git a/templates/logbook2008style.txt b/templates/logbook2008style.txt
new file mode 100644
index 0000000..a7fbea7
--- /dev/null
+++ b/templates/logbook2008style.txt
@@ -0,0 +1,6 @@
+=Expo {{logbook_entries.0.expedition}} logbook ==
+{%for logbook_entry in logbook_entries%}
+==={{logbook_entry.date}} | {{logbook_entry.place}} - {{logbook_entry.title}} | {% for persontrip in logbook_entry.persontrip_set.all %}{{ persontrip.person_expedition.person }} {{ persontrip.person_expedition.time_underground }}, {% endfor %}===
+
+{{logbook_entry.text|safe}}
+{% endfor %}
\ No newline at end of file
diff --git a/urls.py b/urls.py
index de77ada..d888e9d 100644
--- a/urls.py
+++ b/urls.py
@@ -61,7 +61,9 @@ urlpatterns = patterns('',
 
     url(r'^controlpanel/?$', views_other.controlPanel, name="controlpanel"),
     url(r'^CAVETAB2\.CSV/?$', views_other.downloadCavetab, name="downloadcavetab"),    
-    url(r'^Surveys\.csv/?$', views_other.downloadSurveys, name="downloadsurveys"),    
+    url(r'^Surveys\.csv/?$', views_other.downloadSurveys, name="downloadsurveys"),
+    url(r'^logbook(?P<year>\d\d\d\d)\.(?P<extension>.*)/?$',views_other.downloadLogbook),
+    url(r'^logbook/?$',views_other.downloadLogbook, name="downloadlogbook"),
     url(r'^cave/(?P<cave_id>[^/]+)/qm\.csv/?$', views_other.downloadQMs, name="downloadqms"),        
     (r'^downloadqms$', views_other.downloadQMs),      
     url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"),