Edgewall Software

Opened 11 years ago

Last modified 10 years ago

#11138 closed defect

Data attribute inconsitency in trac.wiki.model.WikiPage while renaming a page — at Initial Version

Reported by: Steffen Hoffmann Owned by:
Priority: normal Milestone: 0.12.6
Component: wiki system Version:
Severity: minor Keywords: listener resource
Cc: ryan.j.ollos@… Branch:
Release Notes:
API Changes:
Internal Changes:

Description

When implementing an IWikiChangeListener for th:wiki:VotePlugin the initial draft didn't work as expected.

By comparing to known-good code for th:wiki:TagsPlugin I noticed, that there the new name is taken from page.name, while now I relied on the Resource object page.resource alone.

I feel that the current method WikiPage.rename is flawed since the initial commit in r9362 where it is updating only page.name but leaving page.resource unchanged. The WikiPage object passed to change listeners has both, the old and new name, and this is certainly unintended. However, it is easy to fix:

  • trac/wiki/model.py

    diff -u trac/wiki/model.py trac/wiki/model.py
    a b  
    189189            Attachment.reparent_all(self.env, 'wiki', old_name, 'wiki',
    190190                                    new_name)
    191191
    192         self.name = new_name
     192        self.resource.id = self.name = new_name
    193193        self.env.log.info('Renamed page %s to %s', old_name, new_name)
    194194       
    195195        for listener in WikiSystem(self.env).change_listeners:

I propose to fix it in stable and old-stable too.

Change History (0)

Note: See TracTickets for help on using tickets.