« 2006年8月 | トップページ | 2007年1月 »

2006/09/10

DiscussionPluginのトピック本文編集の件

ですが、trac-hacks.org にチケット書いたら作者の方からお答えいただきました。

どうやら、リクストメソッドをPOSTに変更するとViewTopicマクロが機能しなくなるらしいです(時間取れないので確かめてませんが)。

なので、昨日のblogに添付したeggはこの点をご了承の上、ご利用いただきたく。

あと、DiscussionPluginの日本語化とか怪しい修正したのは、うちのSubversionに置いてあります。日本語化と怪しい修正を一緒にコミットしちゃってあるので、日本語化だけほしい方には「なんじゃこれ」状態ですが。Tracも使えますんで、ご入用な方は(いないか。。。)適当に取捨選択して持っていってください(id: guest/pass: guest)。

| | コメント (0) | トラックバック (0)
|

昨日に引き続き

TracのDiscussionPluginに少し手を入れました。

今回もたいしたことじゃないんですが。。。
フォーラムで投稿に対して引用して返信を行う場合に、元メッセージに引用記号('>')を付けてくれるのですが、空行にも付けてくれちゃうので、Wiki的には全体が1パラグラフに表示されちゃうんですよね。これはどうかと思うので、

api.py(507行目あたり)
                for I in xrange(len(lines)):
                    lines[I] = '> %s' % (lines[I])

                for I in xrange(len(lines)):
                    # add quote marking
                    if lines[I] != '':
                        lines[I] = '> %s' % (lines[I])
                    else:
                        lines[I] = '[[BR]]>[[BR]]'

に修正。ほんとは空文字だけだったら'[[BR]]>[[BR]]'にしたかったんだけど、Pythonはよく分からないので。とりあえず簡単に。

diff

Index: trunk/discussion-ja/0.9/tracdiscussion/api.py
===================================================================
--- trunk/discussion-ja/0.9/tracdiscussion/api.py (revision 5)
+++ trunk/discussion-ja/0.9/tracdiscussion/api.py (revision 6)
@@ -506,5 +506,9 @@
                 lines = topic['body'].splitlines()
                 for I in xrange(len(lines)):
-                    lines[I] = '> %s' % (lines[I])
+                    # add quote marking
+     if lines[I] != '':
+                        lines[I] = '> %s' % (lines[I])
+                    else:
+                        lines[I] = '[[BR]]>[[BR]]'
                 req.hdf['args.body'] = '\n'.join(lines)

あー、でも、これだと引用の引用はやっぱりおかしなことになっちゃうなあ。。。(^^;;;;

| | コメント (0) | トラックバック (0)
|

DiscussionPluginで長文のトピック本文が編集できない件について

DiscussionPlugin、よくできていると思うのですが。

トピックの本文になが~~い文章を書くと、後で修正しようと思っても編集できなくなります。トピック作成の時はPOSTで送ってるのに、なぜか編集の時はGETで送ってるんですよね。で、なが~~い文だと「414 Request-URI Too Long」になっちゃうんですね。トピック編集だけじゃなくて、返信もそう。

簡単には直せないんだろうなと思ったのですが、message-list.csのフォームをmethod='post'にしたらあっさり直りました。ついでに、メッセージを日本語化。

ざっとテストしてみたけど、大丈夫みたい。でも、ほんとにこんなんでいいんだろうか。そもそもなぜgetになっていたんだろう。なにか深いわけがあるのかも。

とりあえず、eggをUPしてみます。よかったら持っていって試してみてください。単純に既存のを置き換えればOKだと思います。あ、Trac0.9用です。

「TracDiscussion-0.5-py2.3.egg」をダウンロード

------

(9/10 追記)
やっぱりリクエストメソッドをPOSTに変更すると副作用があるらしいです。詳しくはTrac Hacksのチケットをご参照ください。

| | コメント (0) | トラックバック (0)
|

2006/09/04

アカウント管理系プラグイン3本

この週末は、なんかやる気がでなくてごろごろ。で、こんな時間になんとなくやる気になって。。。あー、また寝不足の月曜日(^^;;

今日はTrac君にアカウント管理系のプラグインを3つばかり入れてみました。ユーザ追加のたびにサーバにログインして、htpasswd叩くのメンドイから。

1. AccountManagerPlugin
このプラグインを入れると未ログイン状態でRegisterメニューが表示され、アカウント作成画面からアカウントを作成できます。

インストールは、コマンド一発。

easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.9

で、trac.iniに以下の設定を追加。

[components]
acct_mgr.web_ui.registrationmodule = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.htfile.abstractpasswordfilestore = enabled
acct_mgr.htfile.htdigeststore = enabled  <--htdigest形式のパスワードファイルを使う場合
acct_mgr.htfile.htpasswdstore = enabled  <--htpasswd形式のパスワードファイルを使う場合
trac.web.auth.loginmodule = disabled <--Tracのデフォルトログインモジュールを無効に

htpasswdの場合

[account-manager]
password_format = htpasswd
password_file = /var/trac/trac.htpasswd <-- パスワードファイルの場所

htdigestの場合
[account-manager]
password_format = htdigest
password_file = /var/trac/trac.htdigest <--パスワードファイルの場所
htdigest_realm = TracRealm

さらに、HTTP認証を有効にしている場合は、無効にします。わたしの場合は、/etc/httpd/conf.d/python.confを修正。

これでApacheを再起動すればOK。

2. WebAdminUsersPlugin

このプラグインを入れると、WebAdminの画面でユーザの追加/削除/パスワードの変更ができるようになります。WebAdminPluginAccountManagerPluginが入ってないと使えないです。

# svn co http://trac-hacks.org/svn/webadminusersplugin
# cd webadminusersplugin
# python setup.py install

でインストールできるはずなんですが、なぜかこける。

Traceback (most recent call last):
  File "setup.py", line 3, in ?
    import ez_setup.py
ImportError: No module named ez_setup.py

こんなエラーが出ちゃうんです。。。よくわかんないけど、

import ez_setup.py
ez_setup.use_setuptools()

の2行をコメントアウトしたらインストールできた。(webadminuserspluginをチェックアウトしたディレクトリでpython ez_setup.py installすればよかったらしい。9/5追記)

あとは、TracのWebAdminのプラグイン設定画面でWebAdminUsersを有効にすればOK。WebAdminのメニューにUser Accountメニューが追加されて、ユーザの追加/削除/パスワード変更ができるようになります。

3. AuthzWebadminPlugin

WebAdminの画面上でSubversionのauthzファイルを編集できるようにするプラグイン。

# svn co http://trac-hacks.org/svn/authzwebadminplugin
# cd authzwebadminplugin/0.9/
# python setup.py install

インストールしたらtrac.iniを編集。

[trac]
authz_file = /path/to/subversion.authz <-- Subversionのauthzファイルのパス

[components]
webadmin_authz.authz.authzmanager = enable

WebAdminの画面にAuthz Controlメニューが追加されます。テキストエリアに現在のauthzファイルの中身が表示されて、編集できるってだけなんですけどね。ブラウザからできるのは便利かな。

| | コメント (0) | トラックバック (2)
|

2006/09/01

DiscussPluginのインストール

会社のTracはやはりSwigとSubversionのSwigバインディングが入っていなかったようで、それらをインストールして無事使えるようになりました。会社のはSubversionのロック方式の競合解決が欲しかったのでソースからビルドしたのですが、前提条件の確認不足でした。自宅ではyumでロック方式サポート前の1.1.4を入れてたのでうっかりでした。インストールについては、もう一度検証して、きちんとまとめたのを週末にでもアップしたいと思います。

今日は、Wikiではやりにくい他部署との連携に便利そうなDiscussionPluginを入れてみました。

Discussionプラグインのインストール

trac-hacks.orgにあるDiscussionPluginのページから、discussionplugin.zipをダウンロードします。
最初は、WebAdminプラグインと同じように拡張子を.eggに替えて、/usr/lib/python2.3/site-packages/に置いてみたんだけど動かない。unzipして中を見てみたら、ソースコードそのままでeggパッケージになってるわけではないらしい。なので、

# unzip discussionplugin.zip
# cd discussionplugin/0.9/
# python setup.py install

を実行してインストールしたあと、

# /etc/rc.d/init.d/httpd restart

でApacheを再起動したら、WebAdminのプラグイン画面に'TracDiscussion 0.5'が表示されました。あとは、'TracDiscussion 0.5'のリンクをクリックして、Discussionプラグインの設定画面を出して機能を有効にします。[Apply changes]をクリックしたとたんにInternal Server Errorが表示されますが、慌てなくて大丈夫。

# trac-admin /home/trac/projects/trac/ upgrade

を実行し、リロードすればインストール完了です。メニューバーの一番右側に[Discussion]ボタンが表示されるはず。それとともにWebAdminのメニューにDiscussion Systemのメニューが表示されます。

WebAdminが入っていない場合は、<trac_env_dir>/conf/trac.iniに以下の設定を記述して、upgradeを実行すればいいみたいです。ただ、フォーラムの管理を考えるとWebAdminは入っていたほうが便利だと思います。

[discussion]
title = Discussion

[components]
tracdiscussion.init.discussioninit = enabled
tracdiscussion.timeline.discussiontimeline = enabled
tracdiscussion.wiki.discussionwiki = enabled
tracdiscussion.admin.discussionwebadmin = enabled
tracdiscussion.core.discussioncore = enabled

| | コメント (0) | トラックバック (0)
|

« 2006年8月 | トップページ | 2007年1月 »