Trac でニコニコカレンダー - インストールで躓いた
NikoCaleMacro にある手順でインストールしてみると ↓ な感じでエラーが…。
2007-07-12 23:52:48,984 Trac[main] ERROR: global name 'sorted' is not defined Traceback (most recent call last): File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 406, in dispatch_request dispatcher.dispatch(req) File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 237, in dispatch resp = chosen_handler.process_request(req) File "/usr/lib/python2.3/site-packages/trac/wiki/web_ui.py", line 111, in process_request self._render_editor(req, db, page, preview=True) File "/usr/lib/python2.3/site-packages/trac/wiki/web_ui.py", line 385, in _render_editor info['page_html'] = wiki_to_html(page.text, self.env, req, db) File "/usr/lib/python2.3/site-packages/trac/wiki/formatter.py", line 1001, in wiki_to_html Formatter(env, req, absurls, db).format(wikitext, out, escape_newlines) File "/usr/lib/python2.3/site-packages/trac/wiki/formatter.py", line 795, in format self.handle_code_block(line) File "/usr/lib/python2.3/site-packages/trac/wiki/formatter.py", line 734, in handle_code_block self.out.write(to_unicode(self.code_processor.process( File "/usr/lib/python2.3/site-packages/trac/wiki/formatter.py", line 114, in process text = self.processor(req, text) File "/usr/lib/python2.3/site-packages/trac/wiki/formatter.py", line 102, in _macro_processor return self.macro_provider.render_macro(req, self.name, text) File "/var/lib/trac/practice/plugins/nikocale.py", line 121, in render_macro txt = nikocale.render(buf) File "/var/lib/trac/practice/plugins/nikocale.py", line 71, in render dates = sorted(dates) NameError: global name 'sorted' is not defined
sorted() は python 2.4 かららしいので次のように変更。
Index: 0.10/nikocale.py =================================================================== --- 0.10/nikocale.py (revision 2457) +++ 0.10/nikocale.py (working copy) @@ -68,7 +68,7 @@ for d in e: if not d in dates: dates.append(d) - dates = sorted(dates) + dates.sort() buf.write("<table style='border: 1px solid; border-collapse: collapse;'>\n") buf.write(" <tr>\n")
最初は全プロジェクトで有効にするために /usr/share/trac/plugins にコピーしたんだけど、それだと
No macro or processor named 'NikoCale' found
となってロードされないようなので {tracenv}/plugins にコピーして試しました。