diff options
author | expoonserver <devnull@localhost> | 2018-04-17 21:57:02 +0100 |
---|---|---|
committer | expoonserver <devnull@localhost> | 2018-04-17 21:57:02 +0100 |
commit | d0e0eee15a0f02a35121bf1758547e01ce22d22a (patch) | |
tree | 616b54e33d26acb56952a49622e4631303b3ec4c /core | |
parent | 0c2a6b49ba7bdd050ec1fc5cb44b7c190cc8ccdc (diff) | |
download | troggle-d0e0eee15a0f02a35121bf1758547e01ce22d22a.tar.gz troggle-d0e0eee15a0f02a35121bf1758547e01ce22d22a.tar.bz2 troggle-d0e0eee15a0f02a35121bf1758547e01ce22d22a.zip |
Add CaveView spinny caves view to each troggle cave page
Diffstat (limited to 'core')
-rw-r--r-- | core/views_caves.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/core/views_caves.py b/core/views_caves.py index 2dcef5e..db3e52d 100644 --- a/core/views_caves.py +++ b/core/views_caves.py @@ -17,7 +17,7 @@ import re, urlparse from django.shortcuts import get_object_or_404 import settings -import Image, ImageDraw, ImageFont, string, os, sys +import Image, ImageDraw, ImageFont, string, os, sys, subprocess def getCave(cave_id): """Returns a cave object when given a cave name or number. It is used by views including cavehref, ent, and qm.""" @@ -58,12 +58,26 @@ def caveindex(request): caves1626.sort(caveCmp) return render_with_context(request,'caveindex.html', {'caves1623': caves1623, 'caves1626': caves1626, 'notablecaves':notablecaves, 'cavepage': True}) +def cave3d(request, cave_id): + cave = getCave(cave_id) + survexfilename = '/home/expo/loser/' + cave.survex_file + threedfilename = '/home/expo/expowebcache/3d/%s.3d' % cave_id + if True or os.path.getmtime(survexfilename) > os.path.getmtime(threedfilename): + subprocess.call(["cavern", "--output=%s" % threedfilename, survexfilename]) + test_file = open(threedfilename, 'rb') + response = HttpResponse(content=test_file, mimetype='application/3d')#mimetype is replaced by content_type for django 1.7 + response['Content-Disposition'] = 'attachment; filename=%s.3d' % cave_id + # response['X-Sendfile'] = "%s.3d" % cave_id + # It's usually a good idea to set the 'Content-Length' header too. + # You can also set any other required headers: Cache-Control, etc. + return response + def cave(request, cave_id='', offical_name=''): cave=getCave(cave_id) if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated(): - return render_with_context(request,'nonpublic.html', {'instance': cave, 'cavepage': True}) + return render_with_context(request,'nonpublic.html', {'instance': cave, 'cavepage': True, 'cave_id': cave_id}) else: - return render_with_context(request,'cave.html', {'settings': settings, 'cave': cave, 'cavepage': True}) + return render_with_context(request,'cave.html', {'settings': settings, 'cave': cave, 'cavepage': True, 'cave_id': cave_id}) def caveEntrance(request, slug): cave = Cave.objects.get(caveslug__slug = slug) @@ -202,7 +216,7 @@ def qm(request,cave_id,qm_id,year,grade=None): return HttpResponseRedirect(url) - + def ent(request, cave_id, ent_letter): cave = Cave.objects.filter(kataster_number = cave_id)[0] cave_and_ent = CaveAndEntrance.objects.filter(cave = cave).filter(entrance_letter = ent_letter)[0] |