minor refactor of review model
This commit is contained in:
parent
5fac955067
commit
1eec5ef418
4 changed files with 16 additions and 21 deletions
|
@ -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"}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue