#1616 Search existing tickets for similar text/summary when creating new tickets, to reduce # of dupes

unreleased
open
nobody
pycon (30)
General
2016-03-17
2011-03-02
No

Search existing tickets for similar summary and description when creating new tickets, displaying a page asking the user if their ticket is a duplicate of one of the tickets returned (if a close enough match is found). If a match is found, open that ticket's page, pre-filling the comment box with the description from the aborted ticket creation, allowing the user to comment on the existing ticket without losing any typing they did.

Discussion


  • Rick Copeland
    2011-03-07

    • labels: --> pycon
     
  • Pranav Sharma
    Pranav Sharma
    2016-03-12

    • Reviewer: Dave Brondsema
     
  • Dave Brondsema
    Dave Brondsema
    2016-03-17

    Cool, this could be a really nice new feature :) I like how it works in general, but do have some ideas to make it a bit smoother. It might require some fairly big changes in how it works, so good that you have asked for an early check on the approach.

    I think it would be best if we could show the search results right away, using AJAX to fetch the data and show it on the page. That'll be nicer in general, and have these specific benefits:

    • people are used to "Save" actually saving it
    • if there are no search results, it can basically be skipped and not even seen
    • the secondary page styling looks a bit off (white background instead of gray), so that's avoided
    • the secondary page doesn't preserve the milestone, status, owner, or attachments. So if we don't do a secondary page, that problem is avoided.

    I'd suggest something like JS to handle "onblur" events of the summary and description field (description field might be a bit tricky since its the SimpleMDE rich editor?). That way as soon as a user is done typing and the "onblur" fires, we can do an AJAX call to get the HTML of the search results. Probably would work fine to fetch the regular /search?q=... page directly and grab just the search result table portion (jquery has a way to do that in its ajax methods) and insert the search result into the current page.