<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      xmlns:xi="http://www.w3.org/2001/XInclude">
<!--

 Copyright (c) 2007-2008 by nexB, Inc. http://www.nexb.com/ - All rights reserved.
 Author: Francois Granade - fg at nexb dot com
 Licensed under the same license as Trac - http://trac.edgewall.org/wiki/TracLicense

-->
  <xi:include href="layout.html" />
  <head>
    <title>チケットインポート</title>
  </head>

  <body>

<!--
<div id="ctxtnav" class="nav">
    <h2>Ticket import</h2>
    <ul>Importing tickets</ul>
</div>
-->    

<div id="content" class="report">
<h1>チケットインポート</h1>

<p>
このモジュールはチケットをExcelかカンマ区切りのファイル(CSV)から、チケットを一括でインポートします。
</p>
<p>
インポートするファイルもしくはワークシートは以下を含んでいる必要があります。
<ul>
<li>最初の行は、インポートするフィールドを列挙します</li>
<li>残りの行にはインポートするデータを記載します</li>
</ul>
</p>
<p>
フィールドはTracのフィールドである必要があります。このTracでの有効は
<py:for each="numfields, field in enumerate(fields)">
<b>${field}</b><py:choose test="numfields"><py:when test="len(fields) - 1">と</py:when><py:when test="len(fields)"></py:when><py:otherwise>, </py:otherwise></py:choose></py:for>です。フィールド名は大文字小文字を区別せず、例えば'summary', 'Summary', 'SUMMARY'は同じフィールドを示します。フィールドの並び順も自由です。Tracのフィールドでないカラムをインポートしようとすると、Tracのカスタムフィールドとして作成されます。(新しいフィールドの作成は簡単ですがTrac管理者によりTrac設定ファイルで設定されるべきです)
</p>
<p>必須のフィールドは、sumaryフィールドかticketフィールドのいずれかのみです。
<ul>
<li> <b>summary</b> もし同じsummaryが存在した場合は、チケットは追加されず、他のフィールドを変更もしくは追加する形でインポートします。もちろん置き換えられた値は変更履歴に残っています。
結果として、同じsummaryを持つ２つのチケットが出来ることはないようになっています。もしsummaryが既存のものと同一でなかった場合は、新規のチケットが作成されます。</li>
</ul>
<ul>
<li> <b>ticket</b> このフィールドにはチケット番号を含めます。もし同じ番号のチケットが見つかった場合は、上書きします。このカラムが空の場合は、新しいチケットとしてインポートします。これはexportして、Excel上で編集し、再インポートするような場合に有効です</li>
</ul>
</p>
<p>
最初に、変更のプレビュー画面が表示され、その後インポートの実行が可能になります。最初のステップ(アップロードとプレビュー)ではデータベースに変更は加えられません。
</p>
<p>
アップロードしたファイル中のComponentsやMilestone等がTracに存在しない場合は、追加されます。これらの項目は作業後にAdminセクションから変更することも出来ます。
</p>

<form id="importer" method="post" enctype="multipart/form-data" action="">
   <div class="field">
     <label for="import-file">インポートするファイルについて:</label>
       <input type="file" name="import-file" />
   </div>
   <br/>
   <div class="field">
     <label for="sheet">Excelファイルをアップロードする場合は、インポートするワークシートの番号(1番から開始)を指定してください。</label>
       <select name="sheet">
       <option value="1">1</option>
       <option value="2">2</option>
       <option value="3">3</option>
       <option value="4">4</option>
       <option value="5">5</option>
       <option value="6">6</option>
       <option value="7">7</option>
       <option value="8">8</option>
       <option value="9">9</option>
       </select>
       <i>注意：何もデータが含まれていないワークシートはカウントから除外します(訳注：csvファイルをアップロードする場合の文字コードはUTF8にすること)</i>
   </div>
  <div class="buttons">
   <input type="hidden" name="action" value="upload" />
   <input type="submit" value="プレビュー" />
<!--   <input type="submit" name="cancel" value="Cancel" /> -->
  </div>
 </form>
</div>
  </body>
</html>
