チケットのメールに添付ファイルのリンクをつける
sirasaraさん
もしパッチをお持ちであれば、添付して頂けますでしょうか?
よろしくおねがいします。
メールのテンプレートに、「$attachment」を追加していただけると、そこにファイルへのパスが表示されます。
\trac\ticket\templates\ticket_notify_email.txt
パッチ作りが初めてなので、おかしな所がありましたらご指摘ください。
ありがとうございます。3点コメントさせてください。
# 下記のコメントで、気分を害したらすみません。Pythonのコーディングのためのアドバイスだと思ってください。
+ ticketId = '%s' % tktid ... + attachments = attachments + link + '/raw-attachment/ticket/' + ticketId + '/' + row[0] + '\n' + for row in cursor.fetchall(): + attachments = attachments + link + '/raw-attachment/ticket/' + ticketId + '/' + row[0] + '\n'
Int型を文字列に変換してURLを作っているのだと思いますが、
+ attachments = attachments + link + '/raw-attachment/ticket/' + str(tktid) + '/' + row[0] + '\n'のようなコードでInt型から文字列型へ変換できます。
+ link = self.env.abs_href() ... + attachments = attachments + link + '/raw-attachment/ticket/' + ticketId + '/' + row[0] + '\n'
linkという変数名は、直感的にbase_urlを表していると思います。base_urlという変数名にするのは如何でしょうか?
上記の2を踏まえて
attachments + '%s/raw-attachment/ticket/%s/%s\n' % (base_url ,tktid, row[0])のようにした方が分かり易いと思います。(strによる変換は不要になりますが)
以上、お手数ですが、修正したコードを添付して頂けますでしょうか?
よろしくお願いいたします。
TracLightning2.5.0alpha4で対応しました。ご確認ください。
試してみました。 添付のファイル名に空白や日本語が含まれているとそれでリンクが切れてしまいます。
添付ファイル一覧: http://localhost/trac/SampleProject/raw-attachment/ticket/1/Optimizing MySQL Performance with ZFS Presentation.pdf http://localhost/trac/SampleProject/raw-attachment/ticket/1/カスタムクエリ.txt
それでちゃんとした URL を出力するとファイル名が encode されて解らないでしょうから、 こういう感じのテキストを生成するのがよいかと思うのですが、どうでしょうか。
添付ファイル一覧: * Optimizing MySQL Performance with ZFS Presentation.pdf http://localhost/trac/SampleProject/raw-attachment/ticket/1/Optimizing%20MySQL%20Performance%20with%20ZFS%20Presentation.pdf * カスタムクエリ.txt http://localhost/trac/SampleProject/raw-attachment/ticket/1/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%82%AF%E3%82%A8%E3%83%AA.txt
御意。
comment:2810:21223:1272111923 の内容になるようにパッチを作りました。
TracLightning-2.5.0beta2 に同梱されている Trac に対するパッチになっています。
怠け者ですみません(汗 コードもエレガントになってますね。ありがとうございます。
登録したチケットに添付をつけた場合、その添付ファイルへのリンクをメールの内容につけていただけたらと思います。 本当はファイルそのものをつけたらよいかと思いましたが、更新の度に添付ファイルがつくのは鬱陶しいかとおもいまして、リンクのみで。
パスは「attachment」ではなく、「raw-attachment」で直接ダウンロード出来る感じに。