Opened 22 months ago

Last modified 4 months ago

#13720 accepted task

Convert templates to Jinja2

Reported by: Steffen Hoffmann Owned by: Ryan J Ollos
Priority: high Component: AccountManagerPlugin
Severity: normal Keywords: jinja2
Cc: Trac Release: 1.4


Support for Genshi has been dropped after Trac v1.3.1 and plugins must adopt the change.

Development for AccountManagerPlugin needs to follow, for the plugin to stay in top position for recent Trac 1.4 and later.

Attachments (0)

Change History (9)

comment:1 Changed 22 months ago by Steffen Hoffmann

I've seen issues with Genshi in my fresh Trac 1.4 install inside a docker container and will follow-up with code to make the needed changes happen shortly.

comment:2 Changed 20 months ago by boris.horner@…


I've just upgraded a testing environment from trac 1.2 to 1.4, with TracAccountManager 0.5.0 installed. After the update, most seems to work, but I can't log in any more - I get the following message:

Fehler: Not Found
No handler matched request to /login

when I try to access the URL


("Fehler" is German for "error").


  • Could this be due to the incompatibility between version 0.5.0 and trac 1.4?
  • Is there a workaround I could apply, before a real fix is available? Since this seems to be a show-stopper, I guess I must postpone the upgrade of trac to version 1.4 otherwise...

Any help would be appreciated. Thanks a lot!

comment:3 in reply to:  2 Changed 20 months ago by Ryan J Ollos

Replying to boris.horner@…:

I've just upgraded a testing environment from trac 1.2 to 1.4, with TracAccountManager 0.5.0 installed.

Please install 0.6dev directly from the trunk:

$ pip install svn+

comment:4 Changed 20 months ago by boris.horner@…

Thanks, this helped, I was able to update from 0.5.0 to 0.6.0. Here's the documentation I worked out while doing this:

NOTE: trac 1.4 is not supported by TracAccountManager 0.5.0. An update in dev status is available.

  • Download TracAccountManager 0.6.0 from the trunk:
    pip install svn+
  • Identify the path where the data was stored from the response of the command.

    The path is typically similar to this:

  • Rename the previous version of TracAccountManager so that trac does no longer load it:
    mv /path/to/trac/plugins/TracAccountManager-0.5.0-py2.7.egg /path/to/trac/plugins/
  • Move the files loaded from the source repository to the trac plugins directory (change the source path if it is other than shown here):
    mv /usr/local/lib/python2.7/dist-packages/acct_mgr /path/to/trac/plugins
    mv /usr/local/lib/python2.7/dist-packages/TracAccountManager-0.6.dev0-py2.7.egg-info /path/to/trac/plugins
  • Edit the file /path/to/trac/conf/trac.ini
  • Add the folloeing line to the [components] section:
    acct_mgr.db.sessionstore = enabled

comment:5 Changed 18 months ago by Ryan J Ollos

Cc: Ryan J Ollos removed

comment:6 Changed 17 months ago by Ryan J Ollos

Status: assignedaccepted

comment:7 Changed 14 months ago by Ryan J Ollos

Summary: Port templates to Jinja for Trac > 1.3.1Convert templates to Jinja2

comment:8 Changed 12 months ago by Ryan J Ollos

In 17867:

TracAccountManager 0.6dev: Trac 1.5dev is not yet supported

Refs #13720, #13881.

comment:9 Changed 4 months ago by Niels Sascha Reedijk

I have worked on some getting the plugin ready for Trac 1.5.x and 1.6, since we rely on it on our installation and I want to be able to update that when the time comes. I have made a series of patches available on Github. If wanted, I can attach them here.

Some notes about the patches:

  • I have provisionally given it the 0.8 version, and it supports Trac>=1.5.3 and Trac<1.7, though it is mostly tested on Trac 1.5.4.
  • I have done some manual testing, but not all features have been tested. The automated test suite passes now.
  • For the password stores and the hashing functions, I have added type hints. Mostly to be able to use my IDE's tools to find errors.
  • The jinja2 templates use four spaces instead of two. It was just easier to work with.
  • I cleaned up the python code that my IDE flagged as being outdated. In the process, I also removed some workarounds for older Python and/or Trac versions. I have not done a full audit of the code to see if there is some reliance on no longer supported behaviour of the old APIs.
  • Finally, I ignored any i18n. The templates need another pass on this.

I hope this helps to get this plugin ready for Trac 1.6.

Modify Ticket

Change Properties
Set your email in Preferences
as accepted The owner will remain Ryan J Ollos.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.