add getPlaceNames/getEventNames api

This commit is contained in:
j 2012-01-14 18:13:40 +05:30
parent 9b556c2765
commit ed37cd6924
2 changed files with 63 additions and 1 deletions

View file

@ -2,6 +2,9 @@
# vi:si:et:sw=4:sts=4:ts=4 # vi:si:et:sw=4:sts=4:ts=4
from __future__ import division from __future__ import division
from django.db.models import Max, Min, Count
from django.conf import settings
import ox import ox
from ox.utils import json from ox.utils import json
from ox.django.decorators import login_required_json from ox.django.decorators import login_required_json
@ -213,3 +216,32 @@ Positions
return render_to_json_response(response) return render_to_json_response(response)
actions.register(findEvents) actions.register(findEvents)
def getEventNames(request):
'''
param data {
}
return {
status: {
code: int,
text: string
},
data: {
items: [
{name:, matches}
]
}
}
'''
response = json_response({})
layers = [l['id'] for l in filter(lambda l: l['type'] == 'event',
settings.CONFIG['layers'])]
items = models.Annotation.objects.filter(layer__in=layers,
events__id=None).order_by('value')
items = items.values('value').annotate(Count('value'))
response['data']['items'] = [{
'name': i['value'],
'matches': i['value__count']
} for i in items]
return render_to_json_response(response)
actions.register(getEventNames)

View file

@ -2,7 +2,8 @@
# vi:si:et:sw=4:sts=4:ts=4 # vi:si:et:sw=4:sts=4:ts=4
from __future__ import division from __future__ import division
from django.db.models import Max, Min from django.db.models import Max, Min, Count
from django.conf import settings
import ox import ox
from ox.utils import json from ox.utils import json
@ -278,3 +279,32 @@ Positions
) )
return render_to_json_response(response) return render_to_json_response(response)
actions.register(findPlaces) actions.register(findPlaces)
def getPlaceNames(request):
'''
param data {
}
return {
status: {
code: int,
text: string
},
data: {
items: [
{name:, matches}
]
}
}
'''
response = json_response({})
layers = [l['id'] for l in filter(lambda l: l['type'] == 'place',
settings.CONFIG['layers'])]
items = models.Annotation.objects.filter(layer__in=layers,
places__id=None).order_by('value')
items = items.values('value').annotate(Count('value'))
response['data']['items'] = [{
'name': i['value'],
'matches': i['value__count']
} for i in items]
return render_to_json_response(response)
actions.register(getPlaceNames)