2008/10 15
チケット更新のタイミングでメールを飛ばすようにしたら、
飛び交うメールの量が劇的に増えて、
メールボックスがすぐ一杯になってしまうことが出てきた。
リリースが近いので、仕方ない部分もあるんだけど。
で、こちら を参考にして、チケットを登録したり更新したりするときに、チェックボックスで送信するかどうか指定できるようにした。
trac/ticket/web_ui.py
def _do_create(self, req, ticket): (略) # Notify try: -ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀtn = TicketNotifyEmail(self.env) -ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀtn.notify(ticket, newticket=True) +ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀif 'sendmail' in req.args: +ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ tn = TicketNotifyEmail(self.env) +ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ tn.notify(ticket, newticket=True) except Exception, e: (略) def _do_save(self, req, ticket, action): (略) try: -ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ tn = TicketNotifyEmail(self.env) -ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ tn.notify(ticket, newticket=False, modtime=now) +ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ if 'sendmail' in req.args: +ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ tn = TicketNotifyEmail(self.env) +ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ tn.notify(ticket, newticket=False, modtime=now) except Exception, e: (略)
あとは、チケットの編集画面のテンプレートにチェックボックスを付ける。
trac/ticket/templates/ticket.html
</td>
</py:for>
</tr>
</table>
</fieldset>
+ツꀀ ツꀀツꀀ ツꀀツꀀ <p class="mailcheckbox">
+ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ <label>
+ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ<input type="checkbox" name="sendmail" value="1"ツꀀ checked="checked" />
+ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀこの登録/変更をメールで通知します。(メール送信設定されているTracのみ有効)
+ツꀀ ツꀀツꀀ ツꀀツꀀ ツꀀ </label>
+ツꀀ ツꀀツꀀ ツꀀツꀀ </p>
<!--! Workflow support -->
<py:if test="ticket.id"> <!--! do not display the actions for New tickets -->
<fieldset id="action">
<legend>${_('Action')}</legend>
<div py:for="key, label, controls, hints in action_controls">
こんな感じでOK。
あとは、メールを送信する際の運用ルールを決めてやればうまく回ると思う。チケットを作るときとステータスを更新するときは必ずメール通知ONにする、とかね。
Recent Comments