minor refactor of review model

This commit is contained in:
Your Name 2023-12-27 17:29:21 -05:00 committed by Henri Dickson
parent 5fac955067
commit 1eec5ef418
4 changed files with 16 additions and 21 deletions

View file

@ -1,16 +1,11 @@
from datetime import datetime
from typing import List
from django.contrib.auth.decorators import login_required
from django.utils import timezone
from ninja import Field, Schema
from ninja.pagination import paginate
from ninja.security import django_auth
from oauth2_provider.decorators import protected_resource
from catalog.common.models import *
from common.api import *
from mastodon.api import boost_toot_later, share_review
from .models import Mark, Review, ShelfType, TagManager, q_item_in_category
@ -192,19 +187,15 @@ def review_item(request, item_uuid: str, review: ReviewInSchema):
item = Item.get_by_url(item_uuid)
if not item:
return 404, {"message": "Item not found"}
r, post = Review.update_item_review(
Review.update_item_review(
item,
request.user.identity,
review.title,
review.body,
review.visibility,
created_time=review.created_time,
share_to_mastodon=review.post_to_fediverse,
)
if post and review.post_to_fediverse:
if request.user.preference.mastodon_repost_mode == 1:
share_review(r)
else:
boost_toot_later(request.user, post.url)
return 200, {"message": "OK"}

View file

@ -9,6 +9,7 @@ from markdownify import markdownify as md
from markdownx.models import MarkdownxField
from catalog.models import Item
from mastodon.api import boost_toot_later, share_review
from users.models import APIdentity
from .common import Content
@ -95,6 +96,7 @@ class Review(Content):
body: str | None,
visibility=0,
created_time=None,
share_to_mastodon: bool = False,
):
from takahe.utils import Takahe
@ -116,4 +118,12 @@ class Review(Content):
item=item, owner=owner, defaults=defaults
)
post = Takahe.post_review(review, created)
return review, post
if post and share_to_mastodon:
if (
owner.user.preference.mastodon_repost_mode == 1
and owner.user.mastodon_site
):
share_review(review)
else:
boost_toot_later(owner.user, post.url)
return review

View file

@ -175,7 +175,7 @@ class MarkTest(TestCase):
self.assertEqual(mark.tags, [])
def test_review(self):
review, post = Review.update_item_review(
review = Review.update_item_review(
self.book1, self.user1.identity, "Critic", "Review"
)
mark = Mark(self.user1.identity, self.book1)

View file

@ -15,8 +15,6 @@ from django.views.decorators.http import require_http_methods
from catalog.models import *
from common.utils import AuthedHttpRequest, PageLinksGenerator, get_uuid_or_404
from journal.models.renderers import convert_leading_space_in_md, render_md
from mastodon.api import boost_toot_later, share_review
from users.models import User
from users.models.apidentity import APIdentity
from ..forms import *
@ -76,21 +74,17 @@ def review_edit(request: AuthedHttpRequest, item_uuid, review_uuid=None):
body = form.instance.body
if request.POST.get("leading_space"):
body = convert_leading_space_in_md(body)
review, post = Review.update_item_review(
review = Review.update_item_review(
item,
request.user.identity,
form.cleaned_data["title"],
body,
form.cleaned_data["visibility"],
mark_date,
form.cleaned_data["share_to_mastodon"],
)
if not review:
raise BadRequest()
if form.cleaned_data["share_to_mastodon"] and post:
if request.user.preference.mastodon_repost_mode == 1:
share_review(review)
else:
boost_toot_later(request.user, post.url)
return redirect(reverse("journal:review_retrieve", args=[review.uuid]))
else:
raise BadRequest()