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)


subtopics: