diff options
-rw-r--r-- | .hgignore | 1 | ||||
-rw-r--r-- | core/admin.py | 21 | ||||
-rw-r--r-- | core/fileAbstraction.py | 2 | ||||
-rw-r--r-- | docker/Dockerfile | 4 | ||||
-rw-r--r-- | docker/docker-compose.yml | 21 | ||||
l---------[-rw-r--r--] | docker/requirements.txt | 8 | ||||
-rw-r--r-- | flatpages/views.py | 12 | ||||
-rw-r--r-- | templates/core/expedition_list.html | 14 | ||||
-rw-r--r-- | templates/flatpage.html | 10 | ||||
-rw-r--r-- | urls.py | 2 |
10 files changed, 77 insertions, 18 deletions
@@ -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 %} @@ -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"), |