summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activities/models/post.py1
-rw-r--r--activities/views/posts.py11
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("/")