nearest event recommendation fix

remotes/origin/stage6
Alexander Burdeinyi 9 years ago
parent 16310ccf07
commit 49f7dcec06
  1. 12
      functions/model_mixin.py

@ -127,12 +127,12 @@ class EventMixin(object):
events_m = []
events = []
for params in [{'tag__in': tags}, {'theme__in': themes}]:
qs = _qs.filter(**params).order_by('data_begin')
events_m2.extend(qs.filter(data_begin__gte=month2).exclude(pk__in=exclude_pks)[:3])
qs = _qs.filter(**params).order_by('data_begin').distinct()
events_m2.extend(list(qs.filter(data_begin__gte=month2).exclude(pk__in=exclude_pks)[:3]))
exclude_pks.update([x.pk for x in events_m2])
events_m.extend(qs.filter(data_begin__gte=month).exclude(pk__in=exclude_pks)[:3])
events_m.extend(list(qs.filter(data_begin__gte=month).exclude(pk__in=exclude_pks)[:3]))
exclude_pks.update([x.pk for x in events_m])
events.extend(qs.filter(data_begin__gte=now).exclude(pk__in=exclude_pks)[:3])
events.extend(list(qs.filter(data_begin__gte=now).exclude(pk__in=exclude_pks)[:3]))
exclude_pks.update([x.pk for x in events])
return (list(
sorted(list(chain(*zip(*[x for x in [events_m2, events_m, events] if x])))[:3], key=lambda x: x.data_begin)),
@ -142,8 +142,8 @@ class EventMixin(object):
if getattr(self, '_nearest_events', None) is None:
model = self.__class__
result = []
tags = self.tag.all().values_list('pk', flat=True)
themes = self.theme.all().values_list('pk', flat=True)
tags = list(self.tag.all().values_list('pk', flat=True))
themes = list(self.theme.all().values_list('pk', flat=True))
qs = model.objects.language().filter(country_id=self.country_id)
result, exclude = self.get_nearest_events_incl(qs, tags, themes)
if len(result) > 3:

Loading…
Cancel
Save