组织 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
结果是:
有谁知道如何将 '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
结果是: