• 
      

    Fixed issues saving Markdown data in certain cases.

    Review Request #4945 — Created Nov. 12, 2013 and submitted — Latest diff uploaded

    Information

    Review Board
    master

    Reviewers

    Fixed issues saving Markdown data in certain cases.

    There were two known bugs with saving data in Markdown.

    One was specific to review replies, and was on the JavaScript side of
    things. We weren't setting rich_text=true when making requests to the
    server, but we had it set client-side. This produced an interesting mix
    of Markdown rendering and escaping that was clearly very wrong.
    Now we set rich_text= on all requests.

    Server-side, we had problems when making an API request setting text
    without specifying a rich_text=, when the object server-side already had
    rich_text=true set. It would assume all incoming text was going to be in
    valid Markdown. That was a problem when updating published review
    requests/drafts. It also affected comments, reviews and replies (if done
    via the API outside of the Review Board web UI).

    For the API, we now have a nice MarkdownFieldsMixin that offers a
    centralized function for normalizing fields based on the request data.
    It handles the escaping/unescaping of all necessary fields (if passing
    rich_text=), as before, and will now also handle escaping provided
    fields if the object has rich_text=true and the request doesn't specify
    a rich_text=.

    Tested running rbt post -g -r <id> after making some changes to a
    review request (turning rich text on) and publishing. Previously, my
    commit message would be interpreted as valid Markdown, instead of being
    escaped. This no longer happened after this change.

    Tested replying to a review with Markdown content. The Markdown properly
    rendered without being escaped.

    Unit tests pass.