fix 500
This commit is contained in:
parent
195a812f95
commit
82afed2ba4
9 changed files with 25 additions and 27 deletions
|
@ -167,7 +167,7 @@ def retrieve(request, id):
|
|||
else:
|
||||
mark_form = BookMarkForm(initial={
|
||||
'book': book,
|
||||
'visibility': request.user.preference.default_visibility if request.user.is_authenticated else 0,
|
||||
'visibility': request.user.get_preference().default_visibility if request.user.is_authenticated else 0,
|
||||
'tags': mark_tags
|
||||
})
|
||||
|
||||
|
|
|
@ -34,12 +34,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
@login_required
|
||||
def home(request):
|
||||
try:
|
||||
classic = request.user.preference.classic_homepage
|
||||
except ObjectDoesNotExist:
|
||||
Preference.objects.create(user=user)
|
||||
classic = request.user.preference.classic_homepage
|
||||
if classic:
|
||||
if request.user.get_preference().classic_homepage:
|
||||
return user_home(request, request.user.id)
|
||||
else:
|
||||
return user_timeline(request)
|
||||
|
|
|
@ -168,7 +168,7 @@ def retrieve(request, id):
|
|||
else:
|
||||
mark_form = GameMarkForm(initial={
|
||||
'game': game,
|
||||
'visibility': request.user.preference.default_visibility if request.user.is_authenticated else 0,
|
||||
'visibility': request.user.get_preference().default_visibility if request.user.is_authenticated else 0,
|
||||
'tags': mark_tags
|
||||
})
|
||||
|
||||
|
|
|
@ -388,11 +388,11 @@ def share_mark(mark):
|
|||
visibility = TootVisibilityEnum.DIRECT
|
||||
elif mark.visibility == 1:
|
||||
visibility = TootVisibilityEnum.PRIVATE
|
||||
elif user.preference.mastodon_publish_public:
|
||||
elif user.get_preference().mastodon_publish_public:
|
||||
visibility = TootVisibilityEnum.PUBLIC
|
||||
else:
|
||||
visibility = TootVisibilityEnum.UNLISTED
|
||||
tags = '\n' + user.preference.mastodon_append_tag.replace('[category]', str(mark.item.verbose_category_name)) if user.preference.mastodon_append_tag else ''
|
||||
tags = '\n' + user.get_preference().mastodon_append_tag.replace('[category]', str(mark.item.verbose_category_name)) if user.get_preference().mastodon_append_tag else ''
|
||||
stars = rating_to_emoji(mark.rating, MastodonApplication.objects.get(domain_name=user.mastodon_site).star_mode)
|
||||
content = f"{mark.translated_status}《{mark.item.title}》{stars}\n{mark.item.url}\n{mark.text}{tags}"
|
||||
response = post_toot(user.mastodon_site, content, visibility, user.mastodon_token)
|
||||
|
@ -415,11 +415,11 @@ def share_review(review):
|
|||
visibility = TootVisibilityEnum.DIRECT
|
||||
elif review.visibility == 1:
|
||||
visibility = TootVisibilityEnum.PRIVATE
|
||||
elif user.preference.mastodon_publish_public:
|
||||
elif user.get_preference().mastodon_publish_public:
|
||||
visibility = TootVisibilityEnum.PUBLIC
|
||||
else:
|
||||
visibility = TootVisibilityEnum.UNLISTED
|
||||
tags = '\n' + user.preference.mastodon_append_tag.replace('[category]', str(review.item.verbose_category_name)) if user.preference.mastodon_append_tag else ''
|
||||
tags = '\n' + user.get_preference().mastodon_append_tag.replace('[category]', str(review.item.verbose_category_name)) if user.get_preference().mastodon_append_tag else ''
|
||||
content = f"发布了关于《{review.item.title}》的评论\n{review.url}\n{review.title}{tags}"
|
||||
response = post_toot(user.mastodon_site, content, visibility, user.mastodon_token)
|
||||
if response and response.status_code in [200, 201]:
|
||||
|
|
|
@ -168,7 +168,7 @@ def retrieve(request, id):
|
|||
else:
|
||||
mark_form = MovieMarkForm(initial={
|
||||
'movie': movie,
|
||||
'visibility': request.user.preference.default_visibility if request.user.is_authenticated else 0,
|
||||
'visibility': request.user.get_preference().default_visibility if request.user.is_authenticated else 0,
|
||||
'tags': mark_tags
|
||||
})
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ def retrieve_song(request, id):
|
|||
else:
|
||||
mark_form = SongMarkForm(initial={
|
||||
'song': song,
|
||||
'visibility': request.user.preference.default_visibility if request.user.is_authenticated else 0,
|
||||
'visibility': request.user.get_preference().default_visibility if request.user.is_authenticated else 0,
|
||||
'tags': mark_tags
|
||||
})
|
||||
|
||||
|
@ -729,7 +729,7 @@ def retrieve_album(request, id):
|
|||
else:
|
||||
mark_form = AlbumMarkForm(initial={
|
||||
'album': album,
|
||||
'visibility': request.user.preference.default_visibility if request.user.is_authenticated else 0,
|
||||
'visibility': request.user.get_preference().default_visibility if request.user.is_authenticated else 0,
|
||||
'tags': mark_tags
|
||||
})
|
||||
|
||||
|
|
|
@ -47,12 +47,13 @@ from common.importers.douban import DoubanImporter
|
|||
@mastodon_request_included
|
||||
@login_required
|
||||
def preferences(request):
|
||||
preference = request.user.get_preference()
|
||||
if request.method == 'POST':
|
||||
request.user.preference.default_visibility = int(request.POST.get('default_visibility'))
|
||||
request.user.preference.classic_homepage = bool(request.POST.get('classic_homepage'))
|
||||
request.user.preference.mastodon_publish_public = bool(request.POST.get('mastodon_publish_public'))
|
||||
request.user.preference.mastodon_append_tag = request.POST.get('mastodon_append_tag', '').strip()
|
||||
request.user.preference.save(update_fields=['default_visibility', 'classic_homepage', 'mastodon_publish_public', 'mastodon_append_tag'])
|
||||
preference.default_visibility = int(request.POST.get('default_visibility'))
|
||||
preference.classic_homepage = bool(request.POST.get('classic_homepage'))
|
||||
preference.mastodon_publish_public = bool(request.POST.get('mastodon_publish_public'))
|
||||
preference.mastodon_append_tag = request.POST.get('mastodon_append_tag', '').strip()
|
||||
preference.save(update_fields=['default_visibility', 'classic_homepage', 'mastodon_publish_public', 'mastodon_append_tag'])
|
||||
return render(request, 'users/preferences.html')
|
||||
|
||||
|
||||
|
@ -61,8 +62,8 @@ def preferences(request):
|
|||
def data(request):
|
||||
return render(request, 'users/data.html', {
|
||||
'latest_task': request.user.user_synctasks.order_by("-id").first(),
|
||||
'import_status': request.user.preference.import_status,
|
||||
'export_status': request.user.preference.export_status
|
||||
'import_status': request.user.get_preference().import_status,
|
||||
'export_status': request.user.get_preference().export_status
|
||||
})
|
||||
|
||||
|
||||
|
|
|
@ -62,6 +62,12 @@ class User(AbstractUser):
|
|||
def __str__(self):
|
||||
return self.mastodon_username
|
||||
|
||||
def get_preference(self):
|
||||
pref = self.preference
|
||||
if not pref:
|
||||
pref = Preference.objects.create(user=self)
|
||||
return pref
|
||||
|
||||
def refresh_mastodon_data(self):
|
||||
""" Try refresh account data from mastodon server, return true if refreshed successfully, note it will not save to db """
|
||||
self.mastodon_last_refresh = timezone.now()
|
||||
|
|
|
@ -176,11 +176,7 @@ def home(request, id):
|
|||
for review in music_reviews:
|
||||
review.type = 'album' if review.__class__ == AlbumReview else 'song'
|
||||
|
||||
try:
|
||||
layout = user.preference.get_serialized_home_layout()
|
||||
except ObjectDoesNotExist:
|
||||
Preference.objects.create(user=user)
|
||||
layout = user.preference.get_serialized_home_layout()
|
||||
layout = user.get_preference().get_serialized_home_layout()
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
|
Loading…
Add table
Reference in a new issue