summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-01-28 04:31:54 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-01-28 04:31:54 +0100
commit391ec2a2b189609e0bca254adf6106ca9c742c70 (patch)
tree30fad85dc3f11cdcd11cf1946bec55662bb2016d /ishtar/furnitures/views.py
parent2b38ecfdd7b351a61a0f340a2de3e34c04473e52 (diff)
downloadIshtar-391ec2a2b189609e0bca254adf6106ca9c742c70.tar.bz2
Ishtar-391ec2a2b189609e0bca254adf6106ca9c742c70.zip
Implement a file search mecanism (refs #142)
Diffstat (limited to 'ishtar/furnitures/views.py')
-rw-r--r--ishtar/furnitures/views.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py
index c9ea7a0fd..811618449 100644
--- a/ishtar/furnitures/views.py
+++ b/ishtar/furnitures/views.py
@@ -141,6 +141,43 @@ 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')
+ request_keys = {'town':'towns__pk',
+ 'operation_type':'operation_type__pk',
+ 'operation_code':'operation_code',
+ 'year':'year',
+ 'value':'name',
+ }
+ dct = {}
+ for k in request_keys:
+ q = request.GET.get(k)
+ if not q:
+ continue
+ dct[request_keys[k]] = q
+ if not dct:
+ return HttpResponse(mimetype='text/plain')
+ query = Q(**dct)
+ operations = models.Operation.objects.filter(query)
+ q = request.GET.get('sidx')
+ if q and q in request_keys:
+ k = request_keys[q]
+ if k.endswith("__pk"):
+ k = k[:-len("__pk")] + "__label"
+ q = request.GET.get('sord')
+ if q and q == u'desc':
+ k = "-" + k
+ operations.order_by(k)
+ 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')
+
def autocomplete_organization(request, orga_type=None):
if not request.GET.get('term'):
return HttpResponse(mimetype='text/plain')