def get_context_data(self, **kwargs): context = super(UserPageView, self).get_context_data(**kwargs) name = context.get('username', None) limit = 64 if name: user = other_user = get_object_or_404(User, username=name) else: user = other_user = self.request.user if self.request.user == other_user: context['is_me'] = True context['is_friend'] = False elif self.request.user.is_authenticated(): context['is_friend'] = Friendship.objects.are_friends(self.request.user, other_user) context['is_following'] = Following.objects.is_following(self.request.user, other_user) context['other_friends'] = Friendship.objects.friends_for_user(other_user) context['other_user'] = other_user tweets = [ TimeLineItem(item, item.sent, item.sender, "timeline/_tweet.html") for item in Tweet.objects.all().filter(sender_id=user.id, sender_type__model="user").order_by("-sent")[:limit] ] context['latest_blogs'] = Post.objects.all().filter(status=2, author=user).order_by("-publish")[:limit] posts = [ TimeLineItem(item, item.updated_at, item.author, "timeline/_post.html") for item in context['latest_blogs'] ] image_filter = Q(is_public=True, member=user) if self.request.user.is_authenticated(): image_filter = image_filter | Q(member=user, member__in=friend_set_for(self.request.user)) context['latest_photos'] = Image.objects.all().filter(image_filter).order_by("-date_added")[:limit] images = [ TimeLineItem(item, item.date_added, item.member, "timeline/_photo.html") for item in context['latest_photos'] ] context['latest_tracks'] = Track.objects.all().filter(user=user).order_by("-created_at")[:limit] tracks = [ TimeLineItem(item, item.updated_at, item.user, "timeline/_track.html") for item in context['latest_tracks'] ] comments = [ TimeLineItem(item, item.date_submitted, item.user, "timeline/_comment.html") for item in ThreadedComment.objects.all().filter(user=user).order_by("-date_submitted")[:limit] ] items = merge(tweets, images, posts, tracks, comments, field="date") for index, item in enumerate(items): item.index = index + 1 context['timelineitems'] = group_comments(items)[:limit] context['prefix_sender'] = True return context
def get_context_data(self, **kwargs): context = super(TagPageView, self).get_context_data(**kwargs) tag_instance = get_object_or_404(Tag, name__iexact=context.get("tagname")) context['tag'] = tag = tag_instance.name # ago = datetime.datetime.now() - datetime.timedelta(30) # limit = 64 tweets = [ TimeLineItem(item, item.sent, item.sender, "timeline/_tweet.html") for item in TaggedItem.objects.get_by_model(Tweet, tag).order_by("-sent") # [:limit] ] context['latest_blogs'] = TaggedItem.objects.get_by_model(Post, tag).filter(status=2).order_by("-publish") # [:limit] posts = [ TimeLineItem(item, item.updated_at, item.author, "timeline/_post.html") for item in context['latest_blogs'] ] image_filter = Q(is_public=True) if self.request.user.is_authenticated(): image_filter = image_filter | Q(member=self.request.user) | Q(member__in=friend_set_for(self.request.user)) context['latest_photos'] = TaggedItem.objects.get_by_model(Image, tag).filter(image_filter).order_by("-date_added") # [:limit] images = [ TimeLineItem(item, item.date_added, item.member, "timeline/_photo.html") for item in context['latest_photos'] ] context['latest_tracks'] = TaggedItem.objects.get_by_model(Track, tag).order_by("-created_at") tracks = [ TimeLineItem(item, item.created_at, item.user, "timeline/_track.html") for item in context['latest_tracks'] ] comments = [ TimeLineItem(item, item.date_submitted, item.user, "timeline/_comment.html") for item in TaggedItem.objects.get_by_model(ThreadedComment, tag).order_by("-date_submitted") ] # no tag for comment yet. so : no comment :) # Tag.objects.get_for_object(self.obj.resolve(context)) items = merge(tweets, images, posts, tracks, comments, field="date") for index, item in enumerate(items): item.index = index + 1 context['timelineitems'] = group_comments(items) context['prefix_sender'] = True return context
def get_context_data(self, **kwargs): context = super(HomePageView, self).get_context_data(**kwargs) # reduce the timeline items context['timelineitems'] = group_comments(context['timelineitems'][:16]) image_filter = Q(is_public=True) if self.request.user.is_authenticated(): image_filter = image_filter | Q(member=self.request.user) | Q(member__in=friend_set_for(self.request.user)) context['latest_photos'] = Image.objects.all().filter(image_filter).order_by("-date_added")[:16] context['latest_blogs'] = Post.objects.all().filter(status=2).order_by("-publish")[:10] context['latest_tracks'] = Track.objects.all().order_by("-created_at")[:6] return context
def get_context_data(self, **kwargs): context = super(TimeLineView, self).get_context_data(**kwargs) # TODO use a query parameter for the time delta. here is 3 months ago = datetime.datetime.now() - datetime.timedelta(90) tweets = [ TimeLineItem(item, item.sent, item.sender, "timeline/_tweet.html") for item in Tweet.objects.all().filter(sent__gte=ago).order_by("-sent") ] posts = [ TimeLineItem(item, item.updated_at, item.author, "timeline/_post.html") for item in Post.objects.all().filter(publish__gte=ago, status=2).order_by("-publish") ] image_filter = Q(is_public=True) if self.request.user.is_authenticated(): image_filter = image_filter | Q(member=self.request.user) | Q(member__in=friend_set_for(self.request.user)) images = [ TimeLineItem(item, item.date_added, item.member, "timeline/_photo.html") for item in Image.objects.all().filter(image_filter).filter(date_added__gte=ago).order_by("-date_added") ] tracks = [ TimeLineItem(item, item.updated_at, item.user, "timeline/_track.html") for item in Track.objects.all().filter(created_at__gte=ago).order_by("-created_at") ] comments = [ TimeLineItem(item, item.date_submitted, item.user, "timeline/_comment.html") for item in ThreadedComment.objects.all().filter(date_submitted__gte=ago).order_by("-date_submitted") ] items = merge(tweets, images, posts, tracks, comments, field="date") for index, item in enumerate(items): item.index = index context['timelineitems'] = group_comments(items) context['posts'] = posts context['prefix_sender'] = True return context
def get_context_data(self, **kwargs): context = super(FriendsPageView, self).get_context_data(**kwargs) # TODO use a query parameter for the time delta. here is 3 months ago = datetime.datetime.now() - datetime.timedelta(30) friends = friend_set_for(self.request.user) tweets = [ TimeLineItem(item, item.sent, item.sender, "timeline/_tweet.html") for item in Tweet.objects.all().filter(sent__gte=ago, sender_id__in=[user.id for user in friends], sender_type__model="user").order_by("-sent") ] posts = [ TimeLineItem(item, item.publish, item.author, "timeline/_post.html") for item in Post.objects.all().filter(publish__gte=ago, status=2, author__in=friends).order_by("-publish") ] images = [ TimeLineItem(item, item.date_added, item.member, "timeline/_photo.html") for item in Image.objects.all().filter(Q(is_public=True) | Q(member__in=friend_set_for(self.request.user))).filter(date_added__gte=ago, member__in=friends).order_by("-date_added") ] tracks = [ TimeLineItem(item, item.updated_at, item.user, "timeline/_track.html") for item in Track.objects.all().filter(created_at__gte=ago, user__in=friends).order_by("-created_at") ] comments = [ TimeLineItem(item, item.date_submitted, item.user, "timeline/_comment.html") for item in ThreadedComment.objects.all().filter(date_submitted__gte=ago, user__in=friends).order_by("-date_submitted") ] items = merge(tweets, images, posts, tracks, comments, field="date") for index, item in enumerate(items): item.index = index + 1 context['timelineitems'] = group_comments(items) context['prefix_sender'] = True return context
def get_context_data(self, **kwargs): context = super(UserHomePageView, self).get_context_data(**kwargs) other_friends = None username = name = context.get('username', None) if name: user = other_user = get_object_or_404(User, username=name) else: user = other_user = self.request.user if self.request.user == other_user: context['is_me'] = True is_friend = False elif self.request.user.is_authenticated(): is_friend = context['is_friend'] = Friendship.objects.are_friends(self.request.user, other_user) context['is_following'] = Following.objects.is_following(self.request.user, other_user) else: is_friend = False context['other_friends'] = Friendship.objects.friends_for_user(other_user) context['other_user'] = other_user tweets = [ TimeLineItem(item, item.sent, item.sender, "timeline/_tweet.html") for item in Tweet.objects.all().filter(sender_id=user.id, sender_type__model="user").order_by("-sent")[:32] ] context['latest_blogs'] = Post.objects.all().filter(status=2, author=user).order_by("-publish")[:32] posts = [ TimeLineItem(item, item.updated_at, item.author, "timeline/_post.html") for item in context['latest_blogs'] ] image_filter = Q(is_public=True, member=user) if self.request.user.is_authenticated(): image_filter = image_filter | Q(member=user, member__in=friend_set_for(self.request.user)) context['latest_photos'] = Image.objects.all().filter(image_filter).order_by("-date_added")[:32] images = [ TimeLineItem(item, item.date_added, item.member, "timeline/_photo.html") for item in context['latest_photos'] ] context['latest_tracks'] = Track.objects.all().filter(user=user).order_by("-created_at")[:32] tracks = [ TimeLineItem(item, item.updated_at, item.user, "timeline/_track.html") for item in context['latest_tracks'] ] comments = [ TimeLineItem(item, item.date_submitted, item.user, "timeline/_comment.html") for item in ThreadedComment.objects.all().filter(user=user).order_by("-date_submitted")[:32] ] items = merge(tweets, images, posts, tracks, comments, field="date")[:16] for index, item in enumerate(items): item.index = index + 1 context['timelineitems'] = group_comments(items) context['prefix_sender'] = True invite_form = None if is_friend: previous_invitations_to = None previous_invitations_from = None if self.request.method == "POST": if self.request.POST.get("action") == "remove": # @@@ perhaps the form should just post to friends and be redirected here Friendship.objects.remove(self.request.user, other_user) messages.add_message(self.request, messages.SUCCESS, ugettext("You have removed %(from_user)s from friends") % { "from_user": other_user } ) is_friend = False invite_form = InviteFriendForm(self.request.user, { "to_user": username, "message": ugettext("Let's be friends!"), }) else: if self.request.user.is_authenticated() and self.request.method == "POST": pass else: invite_form = InviteFriendForm(self.request.user, { "to_user": username, "message": ugettext("Let's be friends!"), }) previous_invitations_to = None previous_invitations_from = None context['invite_form'] = invite_form context['previous_invitations_to'] = previous_invitations_to context['previous_invitations_from'] = previous_invitations_from context['other_friends'] = other_friends return context