Add the self-view timeline event on post

Makes it show up for you immediately
This commit is contained in:
Andrew Godwin 2022-11-22 18:51:01 -07:00
parent 7b867b229d
commit e52c7df498
2 changed files with 10 additions and 2 deletions

View File

@ -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,

View File

@ -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("/")