This commit is contained in:
j 2011-05-28 15:57:47 +02:00
parent a0c49f7344
commit c0d654b141
4 changed files with 34 additions and 16 deletions

View file

@ -5,6 +5,7 @@ from __future__ import division, with_statement
from django.db import models from django.db import models
from django.contrib.auth.models import User, Group from django.contrib.auth.models import User, Group
import ox
from ox.django import fields from ox.django import fields
import managers import managers
@ -46,11 +47,16 @@ class Event(models.Model):
self.name_find = self.name + '||'.join(self.alternativeNames) self.name_find = self.name + '||'.join(self.alternativeNames)
super(Event, self).save(*args, **kwargs) super(Event, self).save(*args, **kwargs)
def json(self): def get_id(self):
return { return ox.to32(self.id)
'name': self.name,
'alternativeNames': self.alternativeNames, def json(self, user=None):
'start': self.start, j = {
'end': self.end, 'id': self.get_id(),
'type': self.type 'user': self.user.username,
} }
for key in ('created', 'modified',
'name', 'alternativeNames', 'start', 'end',
'type'):
j[key] = getattr(self, key)
return j

View file

@ -89,7 +89,7 @@ def removeEvent(request):
actions.register(removeEvent, cache=False) actions.register(removeEvent, cache=False)
def findEvent(request): def findEvents(request):
''' '''
param data param data
{'query': query, 'sort': array, 'range': array} {'query': query, 'sort': array, 'range': array}
@ -128,4 +128,4 @@ Positions
for p in models.Event.objects.find(data['query']): for p in models.Event.objects.find(data['query']):
response['data']['events'].append(p.json()) response['data']['events'].append(p.json())
return render_to_json_response(response) return render_to_json_response(response)
actions.register(findEvent) actions.register(findEvents)

View file

@ -19,7 +19,7 @@ class Place(models.Model):
user = models.ForeignKey(User, null=True, related_name='places') user = models.ForeignKey(User, null=True, related_name='places')
name = models.CharField(max_length=1024) name = models.CharField(max_length=1024)
aliases = fields.TupleField(default=[]) alternativeNames = fields.TupleField(default=[])
name_sort = models.CharField(max_length=200) name_sort = models.CharField(max_length=200)
name_find = models.TextField(default='', editable=False) name_find = models.TextField(default='', editable=False)
@ -36,7 +36,7 @@ class Place(models.Model):
east = models.FloatField(default=0) east = models.FloatField(default=0)
lat = models.FloatField(default=0) lat = models.FloatField(default=0)
lng = models.FloatField(default=0) lng = models.FloatField(default=0)
size = models.FloatField(default=0) area = models.FloatField(default=0)
matches = models.IntegerField(default=0) matches = models.IntegerField(default=0)
@ -62,9 +62,9 @@ class Place(models.Model):
'user': self.user.username, 'user': self.user.username,
} }
for key in ('created', 'modified', for key in ('created', 'modified',
'name', 'aliases', 'geoname', 'countryCode', 'name', 'alternativeNames', 'geoname', 'countryCode',
'south', 'west', 'north', 'east', 'south', 'west', 'north', 'east',
'lat', 'lng', 'size', 'matches', 'type'): 'lat', 'lng', 'area', 'matches', 'type'):
j[key] = getattr(self, key) j[key] = getattr(self, key)
return j return j
@ -72,13 +72,13 @@ class Place(models.Model):
if not self.name_sort: if not self.name_sort:
self.name_sort = self.name #', '.join(self.name) self.name_sort = self.name #', '.join(self.name)
self.geoname_sort = ', '.join(reversed(self.geoname.split(', '))) self.geoname_sort = ', '.join(reversed(self.geoname.split(', ')))
self.name_find = '|%s|'%'|'.join([self.name]+list(self.aliases)) self.name_find = '|%s|'%'|'.join([self.name]+list(self.alternativeNames))
#update center #update center
#self.lat = ox.location.center(self.south, self.north) #self.lat = ox.location.center(self.south, self.north)
#self.lng = ox.location.center(self.east, self.west) #self.lng = ox.location.center(self.east, self.west)
#update area #update area
#self.size = ox.location.area(self.south, self.west, self.north, self.east) #self.area= ox.location.area(self.south, self.west, self.north, self.east)
super(Place, self).save(*args, **kwargs) super(Place, self).save(*args, **kwargs)

View file

@ -2,6 +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
import ox import ox
from ox.utils import json from ox.utils import json
@ -29,7 +31,7 @@ def addPlace(request):
east: float, east: float,
lat: float, lat: float,
lng: float, lng: float,
size: float, area: float,
} }
''' '''
data = json.loads(request.POST['data']) data = json.loads(request.POST['data'])
@ -221,5 +223,15 @@ Positions
response['data']['positions'] = utils.get_positions(ids, query['ids']) response['data']['positions'] = utils.get_positions(ids, query['ids'])
else: else:
response['data']['items'] = qs.count() response['data']['items'] = qs.count()
'''
r = qs.aggregate(
Min('south'),
Min('west'),
Max('north'),
Max('east'),
)
print r
'''
response['data']['area'] = {'south': -180.0, 'west': -180.0, 'north': 180.0, 'east': 180.0}
return render_to_json_response(response) return render_to_json_response(response)
actions.register(findPlaces) actions.register(findPlaces)