From 01e4827d80f38f5e1c92b9f10d28e67eab0ce248 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Thu, 19 Apr 2012 12:46:51 -0700 Subject: [PATCH] Stubbing in broken recommended users. --- apps/social/models.py | 19 +++++++++++++++++ templates/reader/feeds.xhtml | 2 ++ templates/reader/recommended_users.xhtml | 26 ++++++++++++++++++++++++ utils/templatetags/utils_tags.py | 12 ++++++++++- 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 templates/reader/recommended_users.xhtml diff --git a/apps/social/models.py b/apps/social/models.py index a9a820449..c30e27370 100644 --- a/apps/social/models.py +++ b/apps/social/models.py @@ -3,6 +3,7 @@ import zlib import hashlib import redis import re +import random import mongoengine as mongo from collections import defaultdict # from mongoengine.queryset import OperationError @@ -113,6 +114,24 @@ class MSocialProfile(mongo.Document): self.follow_user(self.user_id) self.count() + @classmethod + def recommended_users(cls, for_user_id): + profile_count = cls.objects.filter(**{ + 'shared_stories_count__gte': 1, + 'user_id__ne': for_user_id, + }).count() + profiles = [] + # for i in range(3): + # skip = random.randint(0, max(profile_count-2, 0)) + # profile = cls.objects.filter(**{ + # 'shared_stories_count__gte': 1, + # 'user_id__ne': for_user_id, + # }) + # if profile: + # profiles.append(profile[0]) + # profiles = sorted(profiles, key=lambda p: p.shared_stories_count) + return profiles + def count_stories(self): # Popular Publishers self.save_popular_publishers() diff --git a/templates/reader/feeds.xhtml b/templates/reader/feeds.xhtml index 15cf69729..9db24f01a 100644 --- a/templates/reader/feeds.xhtml +++ b/templates/reader/feeds.xhtml @@ -42,6 +42,8 @@ {% render_features_module %} {% endif %} + {% render_recommended_users %} + {% if recommended_feeds %} {% render_recommended_feed recommended_feeds %} {% endif %} diff --git a/templates/reader/recommended_users.xhtml b/templates/reader/recommended_users.xhtml new file mode 100644 index 000000000..f49bde47f --- /dev/null +++ b/templates/reader/recommended_users.xhtml @@ -0,0 +1,26 @@ +{% if recommended_users %} + + + +{% endif %} \ No newline at end of file diff --git a/utils/templatetags/utils_tags.py b/utils/templatetags/utils_tags.py index 8e059f2cc..9bf861c81 100644 --- a/utils/templatetags/utils_tags.py +++ b/utils/templatetags/utils_tags.py @@ -3,7 +3,7 @@ from django.conf import settings from django import template from apps.reader.forms import FeatureForm from apps.reader.models import Feature -from apps.social.models import MInteraction, MActivity +from apps.social.models import MInteraction, MActivity, MSocialProfile from vendor.timezones.utilities import localtime_for_timezone from utils.user_functions import get_user @@ -32,6 +32,16 @@ def render_features_module(context): 'feature_form': feature_form, } +@register.inclusion_tag('reader/recommended_users.xhtml', takes_context=True) +def render_recommended_users(context): + user = get_user(context['user']) + recommended_users = MSocialProfile.recommended_users(user.pk) + + return { + 'user': user, + 'recommended_users': recommended_users, + } + @register.inclusion_tag('reader/interactions_module.xhtml', takes_context=True) def render_interactions_module(context, page=1): user = get_user(context['user'])