summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/views.py')
-rw-r--r--ishtar/furnitures/views.py59
1 files changed, 45 insertions, 14 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py
index 041ebfb76..3b6263517 100644
--- a/ishtar/furnitures/views.py
+++ b/ishtar/furnitures/views.py
@@ -21,7 +21,10 @@
Furnitures views
"""
+import csv
import json
+import datetime
+
from django.http import HttpResponse
from django.template import RequestContext
from django.shortcuts import render_to_response, redirect
@@ -120,9 +123,9 @@ def autocomplete_file(request):
for file in files])
return HttpResponse(data, mimetype='text/plain')
-def json_file(request):
- if not request.GET:
- return HttpResponse(mimetype='text/plain')
+def get_file(request, type='json'):
+ if not type:
+ type = 'json'
request_keys = {'town':'towns__pk',
'file_type':'file_type__pk',
'year':'year',
@@ -135,14 +138,14 @@ def json_file(request):
continue
dct[request_keys[k]] = q
if not dct:
- if 'json_file' in request.session:
- dct = request.session['json_file']
+ if 'get_file' in request.session:
+ dct = request.session['get_file']
elif 'file' in request.session:
dct = {"pk":request.session['file']}
if not dct:
return HttpResponse(mimetype='text/plain')
else:
- request.session['json_file'] = dct
+ request.session['get_file'] = dct
query = Q(**dct)
files = models.File.objects.filter(query)
q = request.GET.get('sidx')
@@ -157,13 +160,27 @@ def json_file(request):
sign + 'numeric_reference')
else:
files = files.order_by(sign + k)
- data = json.dumps({
+ data = None
+ if type == "json":
+ data = json.dumps({
"records":len(files),
"rows":[{"id":unicode(fle.pk),
"cell":(unicode(fle.pk), unicode(fle),
unicode(fle.file_type), unicode(fle.year))}
for fle in files]
})
+ return HttpResponse(data, mimetype='text/plain')
+ elif type == "csv":
+ response = HttpResponse(mimetype='text/csv')
+ n = datetime.datetime.now()
+ filename = u'files_%s.csv' % n.strftime('%Y%m%d-%H%M%S')
+ response['Content-Disposition'] = 'attachment; filename=%s' % filename
+ writer = csv.writer(response)
+ for fle in files:
+ writer.writerow([unicode(fle).encode('utf-8'),
+ unicode(fle.file_type).encode('utf-8'),
+ unicode(fle.year).encode('utf-8')])
+ return response
return HttpResponse(data, mimetype='text/plain')
def autocomplete_operation(request, non_closed=True):
@@ -187,9 +204,9 @@ def autocomplete_operation(request, non_closed=True):
for operation in operations])
return HttpResponse(data, mimetype='text/plain')
-def json_operation(request, non_closed=True):
- if not request.GET:
- return HttpResponse(mimetype='text/plain')
+def get_operation(request, type='json', non_closed=True):
+ if not type:
+ type = 'json'
request_keys = {'town':'towns__pk',
'operation_type':'operation_type__pk',
'operation_code':'operation_code',
@@ -203,14 +220,14 @@ def json_operation(request, non_closed=True):
continue
dct[request_keys[k]] = q
if not dct:
- if 'json_operation' in request.session:
- dct = request.session['json_operation']
+ if 'get_operation' in request.session:
+ dct = request.session['get_operation']
elif 'operation' in request.session:
dct = {"pk":request.session['operation']}
if not dct:
return HttpResponse(mimetype='text/plain')
else:
- request.session['json_operation'] = dct
+ request.session['get_operation'] = dct
query = Q(**dct)
operations = models.Operation.objects.filter(query)
q = request.GET.get('sidx')
@@ -226,13 +243,27 @@ def json_operation(request, non_closed=True):
sign + 'operation_code')
else:
operations = operations.order_by(sign + k)
- data = json.dumps({
+ data = None
+ if type == 'json':
+ data = json.dumps({
"records":len(operations),
"rows":[{"id":unicode(operation.pk),
"cell":(unicode(operation.pk), unicode(operation),
unicode(operation.operation_type), unicode(operation.year))}
for operation in operations]
})
+ return HttpResponse(data, mimetype='text/plain')
+ elif type == "csv":
+ response = HttpResponse(mimetype='text/csv')
+ n = datetime.datetime.now()
+ filename = 'operations_%s.csv' % n.strftime('%Y%m%d-%H%M%S')
+ response['Content-Disposition'] = 'attachment; filename=%s' % filename
+ writer = csv.writer(response)
+ for ope in operations:
+ writer.writerow([unicode(ope).encode('utf-8'),
+ unicode(ope.operation_type).encode('utf-8'),
+ unicode(ope.year).encode('utf-8')])
+ return response
return HttpResponse(data, mimetype='text/plain')
def autocomplete_organization(request, orga_type=None):