组织Trac的“可用项目”页面

时间:2015-10-21 14:52:56

标签: trac

有谁知道如何将“可用项目”页面上的项目列表拆分为活动和已归档项目列表?目前它们都列在一起,我有大量的项目,因此很难确定只有活跃的项目。

我不是网络开发人员或python专家,所以我很欣赏简单易懂的答案。

提前致谢。

1 个答案:

答案 0 :(得分:1)

项目索引can be customized。您需要一个标准,将项目分组为活动和存档。 Here您可以看到为每个项目列出的变量。您可以在config/trac.ini文件中为每个项目添加一个值,例如[project] archived = true,并在呈现项目索引时读取该值,以确定列出项目的组 - 活动与归档。可以使用env.config.get('project', 'archived')读取该值。

这是一个概念验证。

创建4个项目并将其中2个设置为 archived

$ mkdir projects && cd projects
$ virtualenv pve
$ source pve/bin/activate
$ pip install trac
$ mkdir environments && cd environments
$ for i in `seq 1 4`; do
    trac-admin env$i initenv "Project $i" sqlite:db/trac.db
  done
$ trac-admin env3 config set project archived true
$ trac-admin env4 config set project archived true

projects/index.html中添加以下内容:

<!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">
  <head>
    <title>Available Projects</title>
  </head>
  <body>
    <h1>Active Projects</h1>
    <ul>
      <li py:for="project in projects"
          py:if="not project.env.config.get('project', 'archived')"
          py:choose="">
        <a py:when="project.href" href="$project.href"
           title="$project.description">$project.name</a>
        <py:otherwise>
          <small>$project.name: <em>Error</em> <br /> ($project.description)</small>
        </py:otherwise>
      </li>
    </ul>
    <h1>Archived Projects</h1>
    <ul>
      <li py:for="project in projects"
          py:if="project.env.config.get('project', 'archived')"
          py:choose="">
        <a py:when="project.href" href="$project.href"
           title="$project.description">$project.name</a>
        <py:otherwise>
          <small>$project.name: <em>Error</em> <br /> ($project.description)</small>
        </py:otherwise>
      </li>
    </ul>
  </body>
</html>

运行TracStandalone:

$ cd projects
$ TRAC_ENV_INDEX_TEMPLATE=`pwd`/index.html tracd -r -p 8001 --env-parent-dir=environments

结果是:

Project Index