This idea was taken from a roundup users mailing list message posted by RalfSchlatterbeck. It adds a new link, close to the submit button, that launch a Create New Issue page filled with the current data already filled.
Edit the issue.item.html template. Look for the table cell:
<td colspan=3 tal:content="structure context/submit"> submit button will go here </td>
and after it add the following cell:
<td tal:condition="context/id"> <a i18n:translate="" tal:attributes="href python: 'issue?:template=item&' + '&'.join ([ '%s=%s' % (i [0], i [1]) for i in [ ('title', context.title) , ('priority', context.priority) , ('assignedto', context.assignedto) , ('topic', context.topic) , ('@note', 'This is a fork of issue'+context.id) ] ] )"> Copy item </a> </td>
That's it. Actually this snippet implements a fork rather than a strict cloning because it does not copy back history.
By the way, you may also want to edit the submit button cell and change``colspan=3`` to colspan=2.
RalfSchlatterbeck: I just found out in my tracker, that in the URL the title etc. should be quoted in the URL. So instead of
([ '%s=%s' % (i [0], i [1]) for i in ...
we quote the second part:
([ '%s=%s' % (i [0], utils.urlquote (str (i [1]))) for i in ...
and in some extension module, you should get the urlquote method from urllib.quote:
def init (instance) : from urllib import quote instance.registerUtil ('urlquote', quote)