Fixes various issues with pinned posts - continued (#581)

This commit is contained in:
Christof Dorner 2023-05-15 17:36:33 +00:00 committed by GitHub
parent b2768e7f2e
commit cec04e8ddb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 8 deletions

View File

@ -771,7 +771,7 @@ class Identity(StatorModel):
if not isinstance(item, dict): if not isinstance(item, dict):
continue continue
post_obj: dict | None = item post_obj: dict | None = item
if item["type"] == "Create": if item["type"] in ["Create", "Update"]:
post_obj = item.get("object") post_obj = item.get("object")
if post_obj: if post_obj:
ids.append(post_obj["id"]) ids.append(post_obj["id"])

View File

@ -190,6 +190,7 @@ class IdentityService:
with transaction.atomic(): with transaction.atomic():
for object_uri in object_uris: for object_uri in object_uris:
try:
post = Post.by_object_uri(object_uri, fetch=True) post = Post.by_object_uri(object_uri, fetch=True)
PostInteraction.objects.get_or_create( PostInteraction.objects.get_or_create(
type=PostInteraction.Types.pin, type=PostInteraction.Types.pin,
@ -197,6 +198,9 @@ class IdentityService:
post=post, post=post,
state__in=PostInteractionStates.group_active(), state__in=PostInteractionStates.group_active(),
) )
except Post.DoesNotExist:
# ignore 404s...
pass
for removed in PostInteraction.objects.filter( for removed in PostInteraction.objects.filter(
type=PostInteraction.Types.pin, type=PostInteraction.Types.pin,
identity=self.identity, identity=self.identity,