组织 Trac 的 'Available Projects' 页面

Organise Trac's 'Available Projects' page

有谁知道如何将 'Available Projects' 页面上的项目列表拆分为活动项目列表和已归档项目列表?目前它们都列在了一起,而且我有大量的项目,所以很难只确定活跃的项目。

我不是 Web 开发人员或 python 专家,所以我希望得到简单易懂的答案。

提前致谢。

项目索引can be customized. You'll need a criteria for grouping the projects into active and archived. 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

结果是: