Log note : Make it work with roundup 1.x
added:

From wiki Sat Feb 3 20:42:27 +1100 2007
From: wiki
Date: Sat, 03 Feb 2007 20:42:27 +1100
Subject: Make it work with roundup 1.x
Message-ID: <20070203204227+1100@www.mechanicalcat.net>

With some small changes, this works with Roundup 1.x, too:

- the "issue" class is changed in schema.py rather than dbinit.py

- the "!MergeAction" class is put in an existing or separate Python file in the "extensions" subdirectory

Restart the Roundup server to recognise the schema change and the new extension.

- to put the form for the merge action in the "issue.item.html" template, I did as follows:

  - added a slot to the "searchbox" div in page.html::

     <div id="searchbox">
       <form method="GET" action="issue" metal:define-slot="search-form">
         <!-- ... -->
       </form>
       <metal:slot define-slot="more-forms"/>
     </div>

  - filled this new slot in "issue.item.html"::

     <tal:if condition="context/is_edit_ok">
       <form metal:fill-slot="more-forms" tal:condition="not:context/merged"
             class="additional"
             method="POST"
             name="mergeForm">
         <input type="hidden" name="@action" value="merge">
         <label for="merge_into" i18n:translate="">Merge into</label>
         <input type="text" id="merge_into" name="merge_into" size="5">
         <span tal:replace="structure python:db.issue.classhelp('id,title', property='merge_into', inputtype='radio', form='mergeForm')" />
         <input type="submit" value="  Merge  " i18n:attributes="value">
       </form>
     </tal:if>

Of course, this can be improved further; there is no GUI method so far to undo a merge. You can restore and unmerge issueXXXX using the "roundup-admin" script, using the following commands::

 restore issueXXXX
 set issueXXXX merged=
 commit

The file attachments and messages will stay double-linked, but this might be ok and can be changed TTW.