« Trac:通知メール送信の条件を追加 | Main | BatchModifyPlugin »

2008.09.02

Tracの通知メールを編集

参考:tracの通知メールをカスタマイズしてみる にも書かれていますが、通知メールのカスタマイズって、あまり見あたらないっぽいんですよね・・・。まぁ、多くの場合はデフォルトのままでもさほど困らないのかも知れませんが。

今回の目的は、通知メールの内容をシンプルにすること。PC宛に送信するのなら今のままでも問題ないのですが、携帯宛にも通知する場合、段組(?)の部分がかなり見にくくなってしまうので。
本来ならメールアドレス毎にメールのテンプレートを切り替えることができればいいんでしょうけど、さすがにそこまでPythonの知識があるわけではないので、ざっくりと書き換え。PCに送信した場合でも、それなりに内容がわかるから問題ないでしょう、ってことで(笑

今回修正したファイルは、ticket/notification.pyと、ticket/ticket_notify_email.txtの2ファイル。

1.段組表示をやめる場合は、notifycation.pyのformat_props(self)の以下の部分をコメントアウト。

width = [0, 0, 0, 0]
i = 0
for f in [f['name'] for f in fields if f['type'] != 'textarea']:
    if not tkt.values.has_key(f):
        continue
    fval = tkt[f]
    if fval.find('\n') != -1:
        continue
    idx = 2 * (i % 2)
    if len(f) > width[idx]:
    width[idx] = len(f)
    if len(fval) > width[idx + 1]:
    width[idx + 1] = len(fval)
    i += 1
format = ('%%%is: %%-%is | ' % (width[0], width[1]),
        ' %%%is: %%-%is%s' % (width[2], width[3], CRLF))
l = (width[0] + width[1] + 5)
sep = l * '-' + '+' + (self.COLS - l) * '-'
txt = sep + CRLF

 代わりに、txt = CRLFという行を追加(txtを初期化しておく必要があるので)。また、以下の部分もコメント化(あるいは変更)。
txt += format[i % 2] % (fname.capitalize(), fval)
i += 1
txt += fname.capitalize() + ' : ' + fval + CRLF
のように書き換え。

if i % 2:
    txt += CRLF
⇒コメント化
txt += sep
⇒コメント化

2.メールに含める属性を限定する場合、以下のような感じで処理対象とする属性以外の場合は処理を行わないようにする(太字の部分を追加)。

target = [ 'reporter','owner','type','status' ]
for f in [f for f in fields if f['name'] != 'description']:
    fname = f['name']
    if not tkt.values.has_key(fname):
        continue
    if not fname in target:
        continue

3.メールのフッターを変更する場合、例えばtemplate/ticket_notify_email.txtの

$project.name <${project.url or abs_href()}>
$project.descr

の2行を削除。

ってな感じでやっていけば、メールのテキストをそれなりにシンプルなものにできる・・・かも知れません(^^;

#なお、カスタムプロパティでtextareaがあった場合の挙動は確認していません。

|

« Trac:通知メール送信の条件を追加 | Main | BatchModifyPlugin »

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Tracの通知メールを編集:

« Trac:通知メール送信の条件を追加 | Main | BatchModifyPlugin »