示例#1
0
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)
    )
示例#2
0
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)
    )