diff --git a/apps/functions/model_mixin.py b/apps/functions/model_mixin.py index a85dcbb9..1b40725c 100644 --- a/apps/functions/model_mixin.py +++ b/apps/functions/model_mixin.py @@ -178,22 +178,20 @@ class EventMixin(object): result = [] tags = list(self.tag.all().values_list('pk', flat=True)) themes = list(self.theme.all().values_list('pk', flat=True)) - top_paid = list( + top_expos = list( model.objects.filter( - Q( - top__isnull=False, - theme__in=themes, - top__fr__lte=date.today(), - top__to__gte=date.today() - ) | - Q( - paid_new__isnull=False, - theme__in=themes, - top__fr__lte=date.today(), - top__to__gte=date.today() - ) - ).filter( - is_published=True + top__isnull=False, + theme__in=themes, + top__fr__lte=date.today(), + top__to__gte=date.today() + ).order_by('?') + ) + paid_expos = list( + model.objects.filter( + paid_new__isnull=False, + theme__in=themes, + top__fr__lte=date.today(), + top__to__gte=date.today() ).order_by('?') ) qs = model.objects.language().filter(country_id=self.country_id) @@ -202,9 +200,9 @@ class EventMixin(object): qs = model.objects.language() r, e = self.get_recommend_expos_incl(qs, tags, themes, exclude) result += r - result = top_paid + result + result = list(set(top_expos + paid_expos + result)) if len(result) < 5: - self._recommend_expos = result[:3] + self._recommend_expos = result[:2] else: self._recommend_expos = result[3:5] return self._recommend_expos