summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.hgignore1
-rw-r--r--core/admin.py21
-rw-r--r--core/fileAbstraction.py2
-rw-r--r--docker/Dockerfile4
-rw-r--r--docker/docker-compose.yml21
l---------[-rw-r--r--]docker/requirements.txt8
-rw-r--r--flatpages/views.py12
-rw-r--r--templates/core/expedition_list.html14
-rw-r--r--templates/flatpage.html10
-rw-r--r--urls.py2
10 files changed, 77 insertions, 18 deletions
diff --git a/.hgignore b/.hgignore
index cb29426..77026d3 100644
--- a/.hgignore
+++ b/.hgignore
@@ -7,3 +7,4 @@ localsettings.py
*~
parsing_log.txt
troggle
+troggle_log.txt
diff --git a/core/admin.py b/core/admin.py
index 305613c..a8ce55f 100644
--- a/core/admin.py
+++ b/core/admin.py
@@ -18,41 +18,50 @@ class TroggleModelAdmin(admin.ModelAdmin):
class Media:
js = ('jquery/jquery.min.js','js/QM_helper.js')
+
class RoleInline(admin.TabularInline):
model = SurvexPersonRole
extra = 4
+
class SurvexBlockAdmin(TroggleModelAdmin):
inlines = (RoleInline,)
+
class ScannedImageInline(admin.TabularInline):
model = ScannedImage
extra = 4
+
class OtherCaveInline(admin.TabularInline):
model = OtherCaveName
extra = 1
+
class SurveyAdmin(TroggleModelAdmin):
inlines = (ScannedImageInline,)
search_fields = ('expedition__year','wallet_number')
+
class QMsFoundInline(admin.TabularInline):
model=QM
fk_name='found_by'
fields=('number','grade','location_description','comment')#need to add foreignkey to cave part
extra=1
+
class PhotoInline(admin.TabularInline):
model = DPhoto
exclude = ['is_mugshot' ]
extra = 1
+
class PersonTripInline(admin.TabularInline):
model = PersonTrip
raw_id_fields = ('personexpedition',)
extra = 1
+
#class LogbookEntryAdmin(VersionAdmin):
class LogbookEntryAdmin(TroggleModelAdmin):
prepopulated_fields = {'slug':("title",)}
@@ -72,17 +81,18 @@ class LogbookEntryAdmin(TroggleModelAdmin):
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
extra = 1
+
class PersonAdmin(TroggleModelAdmin):
search_fields = ('first_name','last_name')
inlines = (PersonExpeditionInline,)
+
class QMAdmin(TroggleModelAdmin):
search_fields = ('found_by__cave__kataster_number','number','found_by__date')
list_display = ('__unicode__','grade','found_by','ticked_off_by')
@@ -91,17 +101,21 @@ class QMAdmin(TroggleModelAdmin):
list_per_page = 20
raw_id_fields=('found_by','ticked_off_by')
+
class PersonExpeditionAdmin(TroggleModelAdmin):
search_fields = ('person__first_name','expedition__year')
+
class CaveAdmin(TroggleModelAdmin):
search_fields = ('official_name','kataster_number','unofficial_number')
inlines = (OtherCaveInline,)
extra = 4
+
class EntranceAdmin(TroggleModelAdmin):
search_fields = ('caveandentrance__cave__kataster_number',)
+
admin.site.register(DPhoto)
admin.site.register(Cave, CaveAdmin)
admin.site.register(Area)
@@ -125,17 +139,20 @@ admin.site.register(SurvexStation)
admin.site.register(SurvexScansFolder)
admin.site.register(SurvexScanSingle)
+
def export_as_json(modeladmin, request, queryset):
response = HttpResponse(mimetype="text/json")
response['Content-Disposition'] = 'attachment; filename=troggle_output.json'
serializers.serialize("json", queryset, stream=response)
return response
+
def export_as_xml(modeladmin, request, queryset):
response = HttpResponse(mimetype="text/xml")
response['Content-Disposition'] = 'attachment; filename=troggle_output.xml'
serializers.serialize("xml", queryset, stream=response)
return response
+
#admin.site.add_action(export_as_xml)
#admin.site.add_action(export_as_json)
diff --git a/core/fileAbstraction.py b/core/fileAbstraction.py
index 94b8b0c..86191b7 100644
--- a/core/fileAbstraction.py
+++ b/core/fileAbstraction.py
@@ -26,7 +26,7 @@ def listdir(*path):
else:
c = ""
c = c.replace("#", "%23")
- print "FILE: ", settings.FILES + "listdir/" + c
+ print("FILE: ", settings.FILES + "listdir/" + c)
return urllib.urlopen(settings.FILES + "listdir/" + c).read()
def dirsAsList(*path):
diff --git a/docker/Dockerfile b/docker/Dockerfile
index c11a8b0..5f45b8e 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -23,4 +23,6 @@ EXPOSE 8000
WORKDIR /expo/troggle
-#CMD ["python","manage.py","runserver","0.0.0.0:8000"] \ No newline at end of file
+#CMD ["python","manage.py","migrate"]
+
+ENTRYPOINT ["python","manage.py","runserver","0.0.0.0:8000"]
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000..08b969e
--- /dev/null
+++ b/docker/docker-compose.yml
@@ -0,0 +1,21 @@
+version: '3'
+services:
+ troggle:
+ restart: always
+ build: .
+ ports:
+ - "8000:8000"
+ volumes:
+ - ../..:/expo
+ links:
+ - expo-mysql
+ expo-mysql:
+ restart: always
+ image: "mariadb"
+ env_file:
+ - compose/mysql.env
+ volumes:
+ - mysqldb:/var/lib/mysql
+
+volumes:
+ mysqldb: \ No newline at end of file
diff --git a/docker/requirements.txt b/docker/requirements.txt
index 15ab393..d561bd8 100644..120000
--- a/docker/requirements.txt
+++ b/docker/requirements.txt
@@ -1,7 +1 @@
-Django==1.7.11
-django-registration==2.1.2
-mysql
-imagekit
-Image
-django-tinymce==2.7.0
-smartencoding
+requirements.txt.dj-1.7.11 \ No newline at end of file
diff --git a/flatpages/views.py b/flatpages/views.py
index 6503d40..672ec0c 100644
--- a/flatpages/views.py
+++ b/flatpages/views.py
@@ -35,7 +35,7 @@ def flatpage(request, path):
if path.startswith("noinfo") and settings.PUBLIC_SITE and not request.user.is_authenticated():
- print "flat path noinfo", path
+ print("flat path noinfo", path)
return HttpResponseRedirect(reverse("auth_login") + '?next=%s' % request.path)
if path.endswith("/") or path == "":
@@ -67,13 +67,15 @@ def flatpage(request, path):
title, = m.groups()
else:
title = ""
- linksmatch = re.match('(.*)<ul id="links">', body, re.DOTALL + re.IGNORECASE)
- if linksmatch:
- body, = linksmatch.groups()
+ has_menu = False
+ menumatch = re.match('(.*)<div id="menu">', body, re.DOTALL + re.IGNORECASE)
+ if menumatch:
+ has_menu = True
+ #body, = menumatch.groups()
if re.search(r"iso-8859-1", html):
body = unicode(body, "iso-8859-1")
body.strip
- return render_with_context(request, 'flatpage.html', {'editable': True, 'path': path, 'title': title, 'body': body, 'homepage': (path == "index.htm")})
+ return render_with_context(request, 'flatpage.html', {'editable': True, 'path': path, 'title': title, 'body': body, 'homepage': (path == "index.htm"), 'has_menu': has_menu})
else:
return HttpResponse(o.read(), content_type=getmimetype(path))
diff --git a/templates/core/expedition_list.html b/templates/core/expedition_list.html
new file mode 100644
index 0000000..15baa6b
--- /dev/null
+++ b/templates/core/expedition_list.html
@@ -0,0 +1,14 @@
+{% extends "base.html" %}
+{% load wiki_markup %}
+{% load link %}
+
+{% block content %}
+<h1>Expeditions</h1>
+<ul>
+{% for expedition in object_list %}
+ <li>{{ expedition.year }} - <a href="{{ expedition.get_absolute_url }}">{{ expedition.name }}</a></li>
+{% empty %}
+ <li>No articles yet.</li>
+{% endfor %}
+</ul>
+{% endblock %} \ No newline at end of file
diff --git a/templates/flatpage.html b/templates/flatpage.html
index 2376159..73be1b2 100644
--- a/templates/flatpage.html
+++ b/templates/flatpage.html
@@ -3,5 +3,13 @@
{% block bodyattrs %}{% if homepage %} id="homepage"{% endif %}{% endblock %}
{% block body %}
{{ body|safe }}
-{% if homepage %}{% if editable %}<a href="{% url "editflatpage" path %}">Edit</a>{% endif %}{%else %}{% include "menu.html" %}{% endif %}
+{% if homepage %}
+ {% if editable %}
+ <a href="{% url "editflatpage" path %}">Edit</a>
+ {% endif %}
+ {%else %}
+ {% if not has_menu %}
+ {% include "menu.html" %}
+ {% endif %}
+ {% endif %}
{% endblock %}
diff --git a/urls.py b/urls.py
index 9d8b74f..e00dee8 100644
--- a/urls.py
+++ b/urls.py
@@ -30,7 +30,7 @@ actualurlpatterns = patterns('',
#url(r'^person/(\w+_\w+)$', views_logbooks.person, name="person"),
url(r'^expedition/(\d+)$', views_logbooks.expedition, name="expedition"),
- url(r'^expeditions/?$', ListView, {'queryset':Expedition.objects.all(),'template_name':'object_list.html'},name="expeditions"),
+ url(r'^expeditions/?$', views_logbooks.ExpeditionListView.as_view(), name="expeditions"),
url(r'^personexpedition/(?P<first_name>[A-Z]*[a-z]*)[^a-zA-Z]*(?P<last_name>[A-Z]*[a-z]*)/(?P<year>\d+)/?$', views_logbooks.personexpedition, name="personexpedition"),
url(r'^logbookentry/(?P<date>.*)/(?P<slug>.*)/?$', views_logbooks.logbookentry,name="logbookentry"),
url(r'^newlogbookentry/(?P<expeditionyear>.*)$', views_logbooks.newLogbookEntry, name="newLogBookEntry"),