1
#!/usr/bin/env python -tt
5
from forms import UploadMapForm, EditCommentForm
6
from django.shortcuts import render, get_object_or_404
7
from django.contrib.auth.decorators import login_required
8
from django.http import HttpResponseRedirect, HttpResponseNotAllowed, HttpResponse, HttpResponseBadRequest
9
from django.urls import reverse
11
from settings import MAPS_PER_PAGE
12
from wl_utils import get_real_ip
20
maps = models.Map.objects.all()
21
return render(request, 'wlmaps/index.html',
23
'maps_per_page': MAPS_PER_PAGE,
27
def download(request, map_slug):
28
"""Very simple view that just returns the binary data of this map and
29
increases the download count."""
30
m = get_object_or_404(models.Map, slug=map_slug)
32
file = open(m.file.path, 'rb')
34
filename = os.path.basename('%s.wmf' % m.name)
36
# Remember that this has been downloaded
38
m.save(update_fields=['nr_downloads'])
40
response = HttpResponse(data, content_type='application/octet-stream')
41
response['Content-Disposition'] = 'attachment; filename="%s"' % filename
46
def view(request, map_slug):
47
map = get_object_or_404(models.Map, slug=map_slug)
51
return render(request, 'wlmaps/map_detail.html',
56
def edit_comment(request, map_slug):
57
map = get_object_or_404(models.Map, slug=map_slug)
58
if request.method == 'POST':
59
form = EditCommentForm(request.POST)
61
map.uploader_comment = form.cleaned_data['uploader_comment']
62
map.save(update_fields=['uploader_comment'])
63
return HttpResponseRedirect(map.get_absolute_url())
65
form = EditCommentForm(instance=map)
67
context = {'form': form, 'map': map}
69
return render(request, 'wlmaps/edit_comment.html',
75
if request.method == 'POST':
76
form = UploadMapForm(request.POST, request.FILES)
78
map = form.save(commit=False)
79
map.uploader = request.user
81
return HttpResponseRedirect(map.get_absolute_url())
83
form = UploadMapForm()
85
context = {'form': form, }
86
return render(request, 'wlmaps/upload.html',