kopia lustrzana https://gitlab.com/marnanel/chapeau
Content of statuses, and notes (bios) of users, are interpreted as markdown
and returned as HTML.trilby-heavy
rodzic
42909bb629
commit
3858c95426
|
@ -3,6 +3,7 @@ from kepi.trilby_api.models import *
|
|||
from rest_framework_recursive.fields import RecursiveField
|
||||
from oauth2_provider.models import Application
|
||||
import kepi.trilby_api.utils as trilby_utils
|
||||
import markdown
|
||||
|
||||
#########################################
|
||||
|
||||
|
@ -37,6 +38,14 @@ class UserSerializer(serializers.ModelSerializer):
|
|||
created_at = serializers.DateTimeField(
|
||||
)
|
||||
|
||||
note = serializers.SerializerMethodField()
|
||||
def get_note(self, user):
|
||||
result = markdown.markdown(user.note)
|
||||
return result
|
||||
def set_note(self, user, note):
|
||||
user.note = note
|
||||
|
||||
|
||||
note = serializers.CharField(
|
||||
)
|
||||
|
||||
|
@ -184,13 +193,17 @@ class StatusSerializer(serializers.ModelSerializer):
|
|||
|
||||
# "content" is read-only for HTML;
|
||||
# "status" is write-only for text (or Markdown)
|
||||
content = serializers.CharField(
|
||||
content = serializers.SerializerMethodField(
|
||||
read_only = True)
|
||||
|
||||
status = serializers.CharField(
|
||||
source='source_text',
|
||||
write_only = True)
|
||||
|
||||
def get_content(self, status):
|
||||
result = markdown.markdown(status.content)
|
||||
return result
|
||||
|
||||
created_at = serializers.DateTimeField(
|
||||
required = False,
|
||||
read_only = True)
|
||||
|
|
|
@ -35,7 +35,7 @@ ACCOUNT_SOURCE_EXPECTED = {
|
|||
|
||||
STATUS_EXPECTED = {
|
||||
'in_reply_to_account_id': None,
|
||||
'content': 'Hello world.',
|
||||
'content': '<p>Hello world.</p>',
|
||||
'emojis': [],
|
||||
'reblogs_count': 0,
|
||||
'favourites_count': 0,
|
||||
|
|
|
@ -116,7 +116,7 @@ class TestNotifications(TrilbyTestCase):
|
|||
self.assertDictContainsSubset(
|
||||
{
|
||||
'id': str(status.id),
|
||||
'content': 'Curiouser and curiouser!',
|
||||
'content': '<p>Curiouser and curiouser!</p>',
|
||||
},
|
||||
content[0]['status'],
|
||||
)
|
||||
|
|
|
@ -646,7 +646,7 @@ class TestGetStatus(TrilbyTestCase):
|
|||
|
||||
self.assertEqual(
|
||||
details['content'],
|
||||
'Daisies are our silver.',
|
||||
'<p>Daisies are our silver.</p>',
|
||||
)
|
||||
|
||||
def test_view_specific_status_404(self):
|
||||
|
|
|
@ -58,7 +58,7 @@ class TestTimelines(TrilbyTestCase):
|
|||
expected = []
|
||||
for (id, visibility, visible_in) in TIMELINE_DATA:
|
||||
if situation in visible_in:
|
||||
expected.append(id)
|
||||
expected.append(f'<p>{id}</p>')
|
||||
expected = sorted(expected)
|
||||
|
||||
details = sorted([x['content'] \
|
||||
|
|
Ładowanie…
Reference in New Issue