re-parse mentions on display name change
This commit is contained in:
@@ -17,6 +17,8 @@ from ..auth import (
|
||||
from ..models import Users, Posts, Reactions, Threads, Avatars, PostHistory, Mentions, BookmarkCollections
|
||||
from ..constants import PermissionLevel, InfoboxKind
|
||||
from ..util import get_form_checkbox
|
||||
from ..lib.babycode import babycode_to_html
|
||||
from ..db import db
|
||||
import math
|
||||
import os
|
||||
import time
|
||||
@@ -388,11 +390,28 @@ def set_personalization(username):
|
||||
session['sort_by'] = request.form.get('sort_by', 'activity')
|
||||
session['dont_subscribe_by_default'] = not get_form_checkbox('subscribe_by_default')
|
||||
|
||||
old_display_name = user.display_name
|
||||
new_display_name = parse_display_name(request.form.get('display_name', ''))
|
||||
|
||||
user.update({
|
||||
'status': request.form.get('status', '')[:100],
|
||||
'display_name': parse_display_name(request.form.get('display_name', ''))
|
||||
'display_name': new_display_name
|
||||
})
|
||||
|
||||
if old_display_name != new_display_name:
|
||||
# re-parse posts with mentions
|
||||
q = """SELECT DISTINCT m.revision_id FROM mentions m
|
||||
JOIN post_history ph ON m.revision_id = ph.id
|
||||
JOIN posts p ON p.current_revision_id = ph.id
|
||||
WHERE m.mentioned_user_id = ?"""
|
||||
mentions = db.query(q, int(user.id))
|
||||
with db.transaction():
|
||||
for mention in mentions:
|
||||
rev = PostHistory.find({'id': int(mention['revision_id'])})
|
||||
parsed_content = babycode_to_html(rev.original_markup).result
|
||||
rev.update({'content': parsed_content})
|
||||
|
||||
|
||||
flash('Personalization settings updated.', InfoboxKind.INFO)
|
||||
return redirect(url_for('.settings', username=username))
|
||||
|
||||
|
||||
@@ -848,7 +848,7 @@ a.mention {
|
||||
padding: var(--base-padding);
|
||||
background-color: var(--mention-color);
|
||||
color: black;
|
||||
border: 1px dashed;
|
||||
border: 1px solid hsl(from var(--mention-color) h s 55%);
|
||||
|
||||
&:hover {
|
||||
background-color: var(--hover-color);
|
||||
|
||||
Reference in New Issue
Block a user