「Trac」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
(未顯示同一使用者於中間所作的 3 次修訂)
行 11: 行 11:
 除了基本安裝外,還會安裝這些套件:
 除了基本安裝外,還會安裝這些套件:
* [https://trac-hacks.org/wiki/GraphvizPlugin GraphvizPlugin – Trac Hacks - Plugins Macros etc.]
* [https://trac-hacks.org/wiki/GraphvizPlugin GraphvizPlugin – Trac Hacks - Plugins Macros etc.]
** Graphviz可以拿來畫各類圖,我自己最常用的是Dot圖。
* [https://trac-hacks.org/wiki/SubticketsPlugin SubticketsPlugin – Trac Hacks - Plugins Macros etc.]
* [https://trac-hacks.org/wiki/SubticketsPlugin SubticketsPlugin – Trac Hacks - Plugins Macros etc.]
** 子母票的延伸套件,基本上是必備項目。
* [https://trac-hacks.org/wiki/TracCronPlugin TracCronPlugin – Trac Hacks - Plugins Macros etc.]
* [https://trac-hacks.org/wiki/TracCronPlugin TracCronPlugin – Trac Hacks - Plugins Macros etc.]
** 定時跑任務,但其實沒很好用... 目前主要是拿來每天寄信通知有哪些票過期。
* [https://trac-hacks.org/wiki/TracDragDropPlugin TracDragDropPlugin – Trac Hacks - Plugins Macros etc.]
** 拖拉就可以上傳附件的套件。
* [https://trac-hacks.org/wiki/TracWysiwygPlugin TracWysiwygPlugin – Trac Hacks - Plugins Macros etc.]
** 可以針對Textarea區塊使用WYSIWYG界面,對於非技術類的使用者來說會方便不少(因為不需要學Trac的Wiki語法)。另外有不少文件可以直接剪下貼上(雖然還是會掉不少效果,但比起完全不能剪下貼上來說已經方便不少)。
* [https://trac-hacks.org/wiki/XmlRpcPlugin XmlRpcPlugin – Trac Hacks - Plugins Macros etc.]
* [https://trac-hacks.org/wiki/XmlRpcPlugin XmlRpcPlugin – Trac Hacks - Plugins Macros etc.]
** 讓使用者可以透過API操作Trac。
以前會安裝的:
* [https://trac-hacks.org/wiki/DefaultCcPlugin DefaultCcPlugin – Trac Hacks - Plugins Macros etc.]
** 針對不同的Component設定Cc列表,對於企業內還蠻有用的。像是專案可以開<code>Proj.</code>開頭的Component,而組織可以開<code>Org.</code>開頭的Component,這些類型可以設定對應的Cc列表。
看過但還沒用過的:
* [https://trac-hacks.org/wiki/AccountManagerPlugin AccountManagerPlugin – Trac Hacks - Plugins Macros etc.]
** 說明提到可以吃HTML Form Login,而不侷限在HTTP authentication。


== 設定 ==
== 設定 ==

於 2018年2月20日 (二) 18:41 的修訂

Trac是一套問題追蹤系統英語:Issue tracking system)。

簡介

優點

  • 簡單,專住在事情的記錄上,而不是限制行為上。

缺點

  • 目前還是不支援Python 3。

安裝

除了基本安裝外,還會安裝這些套件:

以前會安裝的:

  • DefaultCcPlugin – Trac Hacks - Plugins Macros etc.
    • 針對不同的Component設定Cc列表,對於企業內還蠻有用的。像是專案可以開Proj.開頭的Component,而組織可以開Org.開頭的Component,這些類型可以設定對應的Cc列表。

看過但還沒用過的:

設定

templates/site.html裡做了一些事情。

JavaScript的部份:

  • 用JavaScript針對今天到期以及過期的票增加CSS。
  • 將票裡的attachments與modify內容展開。

CSS的部份:

  • 全部使用sans-serif字型。
  • 修正button因為CSS效果而有時會按不到的問題。
  • 針對今天到期與過期的票用不同的標示標出。
  • 將已經關掉的票變淡。
  • 讓編輯區域使用等寬字型。
  • 讓可用範圍變寬。
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      py:strip="">

  <!--! Add site-specific style sheet -->
  <head py:match="head" py:attrs="select('@*')">
    ${select('*|comment()|text()')}
    <style type="text/css">
    <!--
    body, th, tr {
        font-family: sans-serif;
    }
    input[type=button]:active, input[type=submit]:active,
    input[type=reset]:active {
        position: relative;
        top: 0;
        left: 0;
    }
    table.tickets tr.duedate_overdue {
        font-weight: bold;
    }
    table.tickets tr.duedate_today {
        border: 2px solid;
    }
    table.subtickets tr.ticket_closed, .closed.ticket {
        opacity: 0.5;
    }
    textarea {
        font-family: monospace;
    }
    #content.ticket {
        width: 78em;
    }
    -->
    </style>
  </head>

  <body py:match="body" py:attrs="select('@*')">
    ${select('*|text()')}

    <script>
    <!--
    (function() {
        var d = new Date();
        var today = (new Date(d.getTime() - d.getTimezoneOffset() * 60000)).toISOString().slice(0, 10);

        document.querySelectorAll('table.tickets td.due_date').forEach(function(el) {
            var due = el.innerText.trim();
            if (due < today) {
                el.parentElement.classList.add('duedate_overdue');
            } else if (due === today) {
                el.parentElement.classList.add('duedate_today');
            }
        });

        jQuery('tr:has(a.closed)').addClass('ticket_closed');
    })();

    jQuery(function() {
        jQuery('#attachments').removeClass('collapsed');
        jQuery('#modify').parent().removeClass('collapsed');
    });
    //-->
    </script>
  </body>
</html>

外部連結