= チケットシステム = #TheTracTicketSystem
[[TracGuideToc]]

Trac のチケットデータベースは、プロジェクトのチケットやバグについての、簡単で効果的なトラッキング機能を提供します。

Trac のプロジェクト管理機能の中枢である、チケットシステムは、 '''プロジェクトのタスク管理''', '''機能追加のリクエスト''', '''バグレポート''', '''ソフトウェアサポートの課題''' などに使用できます。

このサブシステムは TracWiki のように、ユーザのコントリビュートと参加をできるだけ簡単にするという目標で設計しています。バグを報告して、質問して、改良を提案するのはできるだけ簡単であるべきです。

チケットは、それを解決しなければならない人にすでにアサインされているか、あるいは解決可能な人に再アサインされます。
すべてのチケットは、いつでも、編集したり、注釈をしたり、アサインしたり、優先付けしたり、議論したりできます。

== チケット属性 == #TicketFields

チケットは、以下の情報を属性として含んでいます:
 
 * '''報告者 (Reporter)''' — チケットの作成者
 * '''分類 (Type)''' — チケットの本質 (例えば、不具合 (defect), 機能追加 (enhancement request) など)

 * '''コンポーネント (Component)''' — チケットが適用されるモジュールやサブシステム。
 * ''''バージョン (Version)''' — チケットが適用されるバージョン。
 * '''キーワード (Keywords)''' — チケットに付与するキーワード。検索や、レポートの生成で使用する。

 * '''優先度 (Priority)''' — ''trivial'' から ''blocker'' の範囲で示されるチケットの重要性。
 * '''マイルストーン (Milestone)''' — このチケットが少なくとも、いつまでに解決されなければならないか。
 * '''担当者 (Assigned to/Owner)''' — チケットの扱いに責任を持つ主たる人。
 * '''関係者 (Cc)''' — チケットに関係がある人または通知メール用の E-mail アドレスのカンマ区切りのリスト。 ''これは責任もいかなるポリシも意味していないことを注記しておく。''
 
 * '''解決方法 (Resolution)''' — チケットが解決された際の理由。{{{修正した(fixed)}}}、{{{無効なチケット(invalid)}}}、{{{修正しない(wontfix)}}}、{{{他のチケットと重複(duplicate)}}}、{{{再現しない(worksforme)}}}など。
 * '''ステータス (Status)''' — チケットの現在の状態。 {{{new}}}, {{{assigned}}}, {{{closed}}}, {{{reopened}}} のいずれか
 * '''概要 (Summary)''' — 問題点や、チケットについての簡単な説明。タイトル。
 * '''説明 (Description)''' — チケットの内容。 特定された状況について、詳しく記述され、的を絞った良い説明文を書いてください。

'''Note:''' バージョン 0.9 以前の Trac では ''分類 (Type)'' 属性がありませんでしたが、代わりに ''重要度 (Severity)'' 属性が提供されており、 ''優先度 (Priority)'' 属性のデフォルトの値も異なっていました。この変更を行ったのは、やや不鮮明な ''優先度 (Priority)'' と ''重要度 (Severity)'' の区別を排除し、チケットモデルを簡素化するためです。しかしながら以前のチケットモデルも利用可能です: 単に ''優先度 (Priority)'' と ''重要度 (Severity)'' のデフォルトの値を追加/変更し、必要なら ''分類 (Type)'' 属性の全ての値を削除してください。これらは [wiki:TracAdmin trac-admin] コマンドで出来ます。

'''Note:''' [http://trac.edgewall.org/wiki/TicketTypes 分類 (type)], [http://trac.edgewall.org/wiki/TicketComponent コンポーネント (component)], バージョン (version), 優先度 (priority), 重要度 (severity) の各フィールドは [wiki:TracAdmin trac-admin] か [http://trac.edgewall.org/wiki/WebAdmin WebAdmin プラグイン] を使用して管理することができます。

'''Note:''' ''優先度 (Priority)'' のデフォルト値についての説明は [http://trac.edgewall.org/wiki/TicetTypes#Whyistheseverityfieldgone TicketTypes] に書かれています。

== チケットの更新や注釈 == #ChangingandCommentingTickets

ひとたびチケットが Trac に投入されると、あとはいつでもチケットに '''注釈''' することで
情報を変更することができます。つまり、チケットへの更新やコメントは、
チケットそのものの一部として記録されます。

チケットの閲覧画面では、更新履歴は、メインの表示領域の下に表示されます。

''Trac 自身の開発では、チケットのコメントは問題点やタスクについてディスカッションに
使っています。これによって、設計や実装上の選択の背後にある動機の理解が簡単になり、
後で思い出しやすくなります。''

'''Note:''' チケットの説明や、コメントでは、 TracLinks と WikiFormatting を
使用することができます。これは重要な機能です。 TracLinks によって、
他の課題や、チェンジセット、ファイルへのリンクをチケットに設定できるので、
チケットを明確にしたり、理解しやすくしたりできます。

'''Note:''' チケットの更新を email で通知する設定をする方法は TracNotification に記述しています。

'''Note:''' ステータスの遷移 (チケットのライフサイクル) をカスタマイズする方法は TracWorkflow に記述しています。

== ドロップダウン形式の属性のデフォルト値 == #DefaultValuesforDrop-DownFields

ドロップダウン形式のチケット属性では、デフォルトで選択される値を [wiki:TracIni trac.ini] の `[ticket]` セクションで指定できます:

 * `default_component`: デフォルトで選択されているコンポーネント名
 * `default_milestone`: デフォルトのマイルストーン
 * `default_priority`: デフォルトの優先度
 * `default_severity`: デフォルトの重要度
 * `default_type`: デフォルトのチケットの分類
 * `default_version`: デフォルトのバージョン
 * `default_owner`: デフォルトの担当者 ( ''コンポーネントの担当者が設定されていない場合に使用'' )

これらのオプションが設定されていない場合、デフォルト値はリストの 1 番目の項目になるか、空の値が使用されます。これは、問題となるフィールドが必須項目かどうかで異なります。これらのオプションのいくつかは、 [trac:WebAdmin WebAdmin] プラグインの "チケットシステム" セクションを通じて選択できます (その他のものは、 "trac.ini" セクションで設定できます) 。チケットのデフォルトの担当者はコンポーネントの担当者になります。もしチケットの担当者が設定されなかったら、 コンポーネントの担当者または `default_owner` が使用されます。


== 属性を非表示にする、またはカスタム属性を追加する == #HidingFieldsandAddingCustomFields

デフォルトで用意されているチケット属性の多くは、 [wiki:TracAdmin trac-admin] で全ての値を削除すると、チケットの Web インタフェース上で非表示にすることが出来ます。これが出来るのは ''分類 (Type)'', ''優先度 (Priority)'', ''重要度 (Severity)'', ''コンポーネント (Component)'', ''バージョン (Version)'', ''マイルストーン (Milestone)'' などドロップダウン形式のチケット属性だけです。

Trac は新しいチケット属性を追加することが出来ます。詳しくは TracTicketsCustomFields を参照してください。


== 担当者をドロップダウンリストにする == #Assign-toasDrop-DownList

チケットの担当者になりうる人数が限られている場合、 "担当者 (Assigned-To)" 属性をテキスト入力からドロップダウンリストに変更することが出来ます。 [wiki:TracIni trac.ini] で `[ticket]` セクションの `restrict_owner` オプションを "true" に設定してください。この場合 Trac は、プロジェクトにアクセスした全てのユーザのリストを使用し、ドロップダウンリストに表示します。

ドロップダウンリストに表示されるために、ユーザはプロジェクトに登録する必要があります。 ''例として'' ユーザのセッション情報がデータベースの中に存在すべきことがあげられます。セッション情報はユーザがそのプロジェクトで最初にデータベースを更新したときに自動的に生成されます。例えば、 ''ユーザ設定'' のページでユーザの詳細情報を編集したときや、認証ユーザがログインしたときなどです。また、ユーザは `TICKET_MODIFY` [TracPermissions パーミッション] が必要です。

'''Note:''' [http://pacopablo.com/wiki/pacopablo/blog/set-assign-to-drop-down ドロップダウンリストにアサインを載せる] に、データベースのレベルで、ユーザのエントリを追加する方法が記載されています。

'''Note 2:''' 柔軟性が必要で、自分自身でコーディングをすることをいとわないならば、 [http://trac-hacks.org/wiki/FlexibleAssignToPlugin FlexibleAssignTo] を参照してみてください。 (ネタばれ: 私が作者です)

'''Note 3:''' このオプションを有効にするとパフォーマンスが低下する原因となるかもしれません。 [trac:TracPerformance#Configuration Trac の性能] にさらに詳しい情報があります。

== 新規チケット登録時に、 URL で値を設定する == #PresetValuesforNewTickets

値が設定されたチケット登録フォームへのリンクを作成するには、 /newticket? に続いて、 パラメータ=値 を & でつないだ形式の URL を呼び出します。

値を設定できるパラメータ:

 * '''type''' — ドロップダウンリストのタイプ
 * '''reporter''' — 報告者の名前
 * '''summary''' — チケットの概要
 * '''description''' — チケットの完全な説明
 * '''component''' — コンポーネント
 * '''version''' — バージョン
 * '''severity''' — 重要度
 * '''keywords''' — キーワード 
 * '''priority''' — 優先度
 * '''milestone''' — マイルストーン
 * '''owner''' — チケットを解決できそうな人
 * '''cc''' — チケットが更新されたときに email で通知する人のリスト。

'''例:''' ''/trac/newticket?summary=Compile%20Error&version=1.0&component=gui''[[BR]]

----
See also:  TracGuide, TracWiki, TracTicketsCustomFields, TracNotification, TracReports, TracQuery