forked from 0x2620/pandora
update place/event matches on change
This commit is contained in:
parent
9cc90ec245
commit
4d06bacfc4
2 changed files with 17 additions and 7 deletions
|
@ -87,9 +87,12 @@ class Annotation(models.Model):
|
|||
self.layer: False
|
||||
}).update(**{self.layer: True})
|
||||
|
||||
#how expensive is this?
|
||||
#update_matching_events.delay(self.value)
|
||||
#update_matching_places.delay(self.value)
|
||||
if filter(lambda l: l['type'] == 'place' or l.get('hasPlaces'),
|
||||
settings.CONFIG['layers']):
|
||||
update_matching_places.delay(self.id)
|
||||
if filter(lambda l: l['type'] == 'event' or l.get('hasEvents'),
|
||||
settings.CONFIG['layers']):
|
||||
update_matching_events.delay(self.id)
|
||||
|
||||
def json(self, layer=False, keys=None):
|
||||
j = {
|
||||
|
|
|
@ -2,26 +2,33 @@
|
|||
# vi:si:et:sw=4:sts=4:ts=4
|
||||
from celery.task import task
|
||||
|
||||
import models
|
||||
|
||||
|
||||
@task(ignore_resulsts=True, queue='default')
|
||||
def update_matching_events(value):
|
||||
def update_matching_events(id):
|
||||
from event.models import Event
|
||||
annotation = models.Annotation.objects.get(pk=id)
|
||||
for e in annotation.events.all():
|
||||
e.update_matches()
|
||||
ids = [e['id'] for e in Event.objects.all().values('id')]
|
||||
for i in ids:
|
||||
e = Event.objects.get(pk=i)
|
||||
for name in [e.name] + list(e.alternativeNames):
|
||||
if name in value:
|
||||
if name in annotation.value:
|
||||
e.update_matches()
|
||||
break
|
||||
|
||||
@task(ignore_resulsts=True, queue='default')
|
||||
def update_matching_places(value):
|
||||
def update_matching_places(id):
|
||||
from place.models import Place
|
||||
annotation = models.Annotation.objects.get(pk=id)
|
||||
for p in annotation.places.all():
|
||||
p.update_matches()
|
||||
ids = [e['id'] for e in Place.objects.all().values('id')]
|
||||
for i in ids:
|
||||
e = Place.objects.get(pk=i)
|
||||
for name in [e.name] + list(e.alternativeNames):
|
||||
if name in value:
|
||||
if name in annotation.value:
|
||||
e.update_matches()
|
||||
break
|
||||
|
|
Loading…
Reference in a new issue