diff --git a/opentech/apply/funds/serializers.py b/opentech/apply/funds/serializers.py index e323fc5b0431b25ed128d752c0b4e6dada5b8fab..bd0a79964b08ab07e6e45627f33316cce73f697b 100644 --- a/opentech/apply/funds/serializers.py +++ b/opentech/apply/funds/serializers.py @@ -1,8 +1,12 @@ +import mistune from rest_framework import serializers +from django_bleach.templatetags.bleach_tags import bleach_value from opentech.apply.activity.models import Activity from .models import ApplicationSubmission, RoundsAndLabs +markdown = mistune.Markdown() + class ActionSerializer(serializers.Field): def to_representation(self, instance): @@ -108,11 +112,15 @@ class RoundLabSerializer(serializers.ModelSerializer): class CommentSerializer(serializers.ModelSerializer): user = serializers.StringRelatedField() + message = serializers.SerializerMethodField() class Meta: model = Activity fields = ('id', 'timestamp', 'user', 'submission', 'message', 'visibility') + def get_message(self, obj): + return bleach_value(markdown(obj.message)) + class CommentCreateSerializer(serializers.ModelSerializer): user = serializers.StringRelatedField() diff --git a/opentech/static_src/src/app/src/components/RichTextForm/index.js b/opentech/static_src/src/app/src/components/RichTextForm/index.js index 2e40618893868143ba52bd143bb280f52925134d..bf34961085c6a49962c5fadd78c6c89bc8b5894e 100644 --- a/opentech/static_src/src/app/src/components/RichTextForm/index.js +++ b/opentech/static_src/src/app/src/components/RichTextForm/index.js @@ -57,6 +57,6 @@ export default class RichTextForm extends React.Component { } handleSubmit = () => { - this.props.onSubmit(this.state.value.toString('markdown'), this.resetEditor); + this.props.onSubmit(this.state.value.toString('html'), this.resetEditor); } } diff --git a/opentech/static_src/src/app/src/containers/Note.js b/opentech/static_src/src/app/src/containers/Note.js index 58551e46f22ee5c19ebe6694e86e70938ff79d29..9f297145bc34b0939cef8354166084d8db41435d 100644 --- a/opentech/static_src/src/app/src/containers/Note.js +++ b/opentech/static_src/src/app/src/containers/Note.js @@ -2,7 +2,6 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import moment from 'moment'; -import { markdown } from 'markdown'; import { getNoteOfID } from '@selectors/notes'; import NoteListingItem from '@components/NoteListingItem'; @@ -21,7 +20,7 @@ class Note extends React.Component { return <NoteListingItem user={note.user} - message={markdown.toHTML(note.message)} + message={note.message} timestamp={moment(note.timestamp)} />; }