From e52c7df498c5f52b9ba9a2ab854d6f06a9b140d7 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Tue, 22 Nov 2022 18:51:01 -0700 Subject: Add the self-view timeline event on post Makes it show up for you immediately --- activities/models/post.py | 1 + activities/views/posts.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/activities/models/post.py b/activities/models/post.py index 378de91..876d422 100644 --- a/activities/models/post.py +++ b/activities/models/post.py @@ -50,6 +50,7 @@ class PostStates(StateGraph): subject_post=post, ) # And one for themselves if they're local + # (most views will do this at time of post, but it's idempotent) if post.author.local: await FanOut.objects.acreate( identity_id=post.author_id, diff --git a/activities/views/posts.py b/activities/views/posts.py index de11a09..7950093 100644 --- a/activities/views/posts.py +++ b/activities/views/posts.py @@ -3,7 +3,12 @@ from django.shortcuts import get_object_or_404, redirect, render from django.utils.decorators import method_decorator from django.views.generic import FormView, TemplateView, View -from activities.models import Post, PostInteraction, PostInteractionStates +from activities.models import ( + Post, + PostInteraction, + PostInteractionStates, + TimelineEvent, +) from core.models import Config from users.decorators import identity_required from users.shortcuts import by_handle_or_404 @@ -155,10 +160,12 @@ class Compose(FormView): return form def form_valid(self, form): - Post.create_local( + post = Post.create_local( author=self.request.identity, content=form.cleaned_data["text"], summary=form.cleaned_data.get("content_warning"), visibility=form.cleaned_data["visibility"], ) + # Add their own timeline event for immediate visibility + TimelineEvent.add_post(self.request.identity, post) return redirect("/") -- cgit v1.2.3