def download(request, data_file=None): user = request.user try: profile = Profile.objects.get(user=user) except Profile.DoesNotExist: profile = Profile(user=request.user) profile.save() if not profile.data_agreement: # request.notifications.add("Please agree to the following licence before downloading the data") return HttpResponseRedirect(reverse('data_agreement_form')) if data_file: download_file = get_object_or_404(models.DataDownload, pk=data_file) f = open(download_file.file_path) file_mimetype = mimetypes.guess_type(download_file.file_path) response = HttpResponse(FileWrapper(f), content_type=file_mimetype[0]) response['Content-Disposition'] = 'attachment; filename="%s"' % \ download_file.file_path.split('/')[-1] return response files = models.DataDownload.objects.filter(public=True) return render_to_response('downloads.html', {'files': files}, context_instance=RequestContext(request) )
def data_agreement_form(request): try: profile = Profile.objects.get(user=request.user) if profile.data_agreement: return HttpResponseRedirect(reverse('download')) except Profile.DoesNotExist: p = Profile(user=request.user) p.save() if request.POST: form = DataAgreementForm(request.POST, instance=profile) if form.is_valid(): form.save() else: form = DataAgreementForm(instance=profile) return render_to_response('data_agreement_form.html', {'form': form}, context_instance=RequestContext(request) )