|
1 | 1 | from django.shortcuts import render_to_response |
2 | | -from django.http import HttpResponseBadRequest, JsonResponse |
| 2 | +from django.http import HttpResponseBadRequest, JsonResponse, HttpResponse |
3 | 3 | from django import forms |
4 | 4 | from django.template import RequestContext |
5 | 5 | import django_excel as excel |
| 6 | +from polls.models import Question, Choice |
6 | 7 | import pyexcel.ext.xls |
7 | 8 | import pyexcel.ext.xlsx |
8 | 9 | import sys |
@@ -37,6 +38,50 @@ def download(request, file_type): |
37 | 38 | sheet = excel.pe.Sheet(data) |
38 | 39 | return excel.make_response(sheet, file_type) |
39 | 40 |
|
| 41 | +def export_data(request, atype): |
| 42 | + if atype == "sheet": |
| 43 | + return excel.make_response_from_a_model(Question, 'csv') |
| 44 | + elif atype == "book": |
| 45 | + return excel.make_response_from_a_model([Question, Choice], 'csv') |
| 46 | + |
| 47 | +def import_data(request): |
| 48 | + if request.method == "POST": |
| 49 | + form = UploadFileForm(request.POST, request.FILES) |
| 50 | + def choice_func(row): |
| 51 | + print row[0] |
| 52 | + q = Question.objects.filter(slug=row[0])[0] |
| 53 | + row[0] = q |
| 54 | + return row |
| 55 | + if form.is_valid(): |
| 56 | + request.FILES['file'].save_book_to_database( |
| 57 | + models=[ |
| 58 | + (Question, ['question_text', 'pub_date', 'slug'], None, 0), |
| 59 | + (Choice, ['question', 'choice_text', 'votes'], choice_func, 0) |
| 60 | + ] |
| 61 | + ) |
| 62 | + return HttpResponse("OK") |
| 63 | + else: |
| 64 | + return HttpResponseBadRequest() |
| 65 | + else: |
| 66 | + form = UploadFileForm() |
| 67 | + return render_to_response('upload_form.html', {'form': form}, context_instance=RequestContext(request)) |
| 68 | + |
| 69 | + |
| 70 | +def import_dataa(request): |
| 71 | + if request.method == "POST": |
| 72 | + form = UploadFileForm(request.POST, request.FILES) |
| 73 | + if form.is_valid(): |
| 74 | + request.FILES['file'].save_to_database( |
| 75 | + model=(Question, |
| 76 | + ['question_text', 'pub_date'])) |
| 77 | + return HttpResponse("OK") |
| 78 | + else: |
| 79 | + return HttpResponseBadRequest() |
| 80 | + else: |
| 81 | + form = UploadFileForm() |
| 82 | + return render_to_response('upload_form.html', {'form': form}, context_instance=RequestContext(request)) |
| 83 | + |
| 84 | + |
40 | 85 | def exchange(request, file_type): |
41 | 86 | form = UploadFileForm(request.POST, request.FILES) |
42 | 87 | if form.is_valid(): |
|
0 commit comments